15. marts 2002 - 12:04Der er
18 kommentarer og 1 løsning
Hjælp til msg-box ved indtastning af ferie.
Hej Derude.
Jeg har en kunde der gerne vil anvende Excel til at styre en ferieliste. Problemet er at hun har lavet en kolonne for hver ugedag, og der er jo kun 255 at gøre godt med, så jeg overvejer en løsning, hvor hun i stedet bruger én kolonne per.uge. Jeg forstiller mig så, at hvis man vil indtaste noget i ferielisten, så kan kan udfylde ugedag, og en kode for aktiviteten, eks. f for ferie, k for kursus osv. Ved I hajer om det er muligt at få en messagebox til at poppe op ved klik på cellerne, og pladcere koden korrekt i cellen, alt efter ugedagen der er indtastet. Her vist eksempel:
Måned Januar Uge Uge 1 Uge 2 Uge 3 Uge 4 Ugedag M|T|O|T|F Jette Jan Tommy
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
På selve arkets faneblad højreklikes og vælges vis kode. Her placeres f.eks. koden (ret selv området til)
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim rInputRange As Range ' Det område der skal påvirkes Set rInputRange = Range("B2:h366")
If Not Intersect(Target, rInputRange) Is Nothing Then Target.Value = InputBox("Indtast K eller F", "Indtastning") End If End Sub
Flemming - makroen er fin til den ene del. Jeg ønsker den således, at når man har angivet ugedagen i msg-boxen, så placerer den k´et eller F´et på et bestemt sted i cellen, der svarer til - under:
M|T|O|T|F
Altså så Eks. F´et stiller sig under M´et hvis der er indtastet mandag..
Forstår jeg det rigtigt, at du vil bruge nogle mellemrum mv. til at finde den rigtige plads ? Hvis det er tilfældet, mener jeg, at det er en skod løsning. Specielt når der anden gang skrives i samme celle!!! Det kan selvfølgelig laves, så det fungerer, but not in my sparetime.
Alternativt kunne laves noget med, at der kun kan planlægges et vist antal uger frem (rest kolonner / 5 arbejdsdage) - eks kolonne B-IV -> 255/5=51 uger. Så kunne en makro slette kolonnerne med en gammel uge og tilføje en ny i slutningen ! Nu har du et system der virker løbende også henover årsskiftet mv.
Ja - du har sgu nok ret, jeg havde ikke tænkt på det med flere indtastninger. Ville det være bøvlet at lave en makro der sletter gamle uger og indsætter nye ???
Nej. Jeg har faktisk lave noget ligenede før. Booking-system for en hundepension. Gad vide om ikke jeg kan finde den i aften. Smid mig en mail fd@win-consult.com så mailer jeg et eller andet senere (vises også her)
Her er mit bud på en makro - hele regnearket kan fåes, hvis du skriver til mig på fd@smartoffice.dk og beder om SmartOffice - DayPlaner.xls (er sendt til MILE)
Private Sub cmdWeekRotate_Click() Dim rStartCell As Range Dim iDays As Long Dim sTemp As String Dim iCount As Integer
Do Until IsNumeric(sTemp) Or sTemp = "" sTemp = InputBox("Indtast ANTAL uger du vil slette / indsætte", "Ugenummer skift") If Not (IsNumeric(sTemp) Or sTemp = "") Then MsgBox "Du indtastede ikke et tal!!! Prøv igen", vbCritical, "Brugerfejl" End If Loop
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim sInputCells As Range Set sInputCells = Range("B3:IV50")
If Not Intersect(Target, sInputCells) Is Nothing Then Dim sTemp As String sTemp = InputBox("Indtast S (syg), K (kursus) eller F (ferie)", "Indtastning") If Len(sTemp) = 1 Then Target.Value = UCase(sTemp) Else MsgBox "Du har indtastet mere end en karakter - dur ikke", vbCritical, "Brugerfejl" End If End If
Flemming tak for koden og rettelsen vedr. ugenummer. Du får pointsene. Jan dit var også skidegodt (dette kan jeg sagtens bruge i anden sammenhæng). Håber at det er OK at du bliver tilskrevet lidt på den alternative konto
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.