31. maj 2005 - 15:26Der er
14 kommentarer og 1 løsning
Husk dagen i regneark? makro?
Jeg har en liste over fødselsdage, som jeg burde huske i et excel regneark - kan man lave en makro (eller noget andet) som løber posterne igennem og ser om der er nogen der matcher i dag og så kommer med en besked hvis der er?
Jeg vil da foreslå, at du smider datoerne over i Outlooks kalenderfunktion i stedet for. Den kan jo automatisk poppe op med en besked på bestemte datoer.
Hvis det skal være i Excel, så kan du lege videre med denne makro. Jeg er enig i at Outlook vil være et mere naturligt sted at placere dine fødselsdage, men hvis det er sjovere at lege med Excel, så er dette en mulighed.
I et ark med navnet "Fødselsdage" har jeg flg. kolonner:
Dim i, antalFdg, allePers As Integer Dim idag, FDag As String Dim Medd As String Dim arrHilsenTil() As String
allePers = Range("A65000").End(xlUp).row ReDim arrHilsenTil(1 To allePers, 1)
idag = Format(Now, "dd-mm") With Sheets("Fødselsdage") For i = 1 To allePers FDag = Mid(.Cells(i, 2).Value, 1, 5) If FDag = idag Then .Cells(i, 3).Value = Year(Now) - Format(.Cells(i, 2).Value, "yyyy") antalFdg = antalFdg + 1 arrHilsenTil(i, 0) = .Cells(i, 1).Value arrHilsenTil(i, 1) = .Cells(i, 3).Value End If Next i End With
If antalFdg = 0 Then Medd = "Ingen fødselsdage idag" Else Medd = "Idag har flg. fødselsdag: " & vbCrLf & vbCrLf
For i = 1 To allePers If Not arrHilsenTil(i, 0) = "" Then Medd = Medd & arrHilsenTil(i, 0) & ", som fylder " & arrHilsenTil(i, 1) & " år." & vbCrLf End If Next i End If
Denne makro forudsætter at du har Navne i A og Fødlsesdage i B:
Private Sub Workbook_Open() For Each c In Range("b1:a100").Cells If DatePart("d", c.Value) = DatePart("d", Date) _ And DatePart("m", c.Value) = DatePart("m", Date) Then MsgBox c.Offset(0, -1).Value & " har fødselsdag i dag" End If Next c End Sub
Ret selv området i kolonner mm. til det rigtige. Læ koden i projektmappens kodeark ("ThisWorkbook"), så adspilles den automatisk hver kan du åbner filen.
Det bliver nok lidt umuligt. Essensen i det du ønsker, er, at der skal laves en datokontrol til en liste du har. Men listen må ikke åbnes...... hvordan skal kontrollen så lige foregå?
Hvis det er fordi, du ikke ønsker at køre flere programmer, vil jeg da igen henvise til min oprindelige kommentar. Langt de fleste har alligevel Outlook kørende, og her er det nemt at lægge mærkedagene ind. Også for mange år ad gangen.
Helt enig med b_hansen.l Du kan ikke kontrollere listen, hvis ikke den er åben. Hvis det er fordi du ikke vil se arket, kan du evt. åbne mappen skjult.
b_hansen: Outlook lider af den skavank, at programmet ikke kan finde ud af, hvor gamle folk er :-)
jkrons> Hvis det drejer sig om kvinder, er det vel osse kun en fordel. Så kan man indtaste en fast tekst i stil med "25 år".... *GG* Men ellers har du selvfølgelig ret. Outlook kan ikke regne, men det står der vel egentlig heller ikke noget om i opgavebeskrivelsen.
Jeg beklager at have været til besvær, men nu har jeg konverteret min excel-fil til csv og derefter importeret den i en mysql-database, lavet et php-dokument der laver det jeg ville have haft makroen til og lagt .php filen i computerens opstarts-mappe.... TADAAA!!!
Nå, men jeg ville jo egentlig gerne dele nogle point ud alligevel, så hvis I lige vil smide svar...
og min løsning var jo ikke rigtigt en del af spørgsmålet, så ingen kunne jo have givet det svar jeg endte med at bruge - ergo bliver jeg nødt til at acceptere de svar der svarer på det konkrete spørgsmål jeg har stillet..
Ved godt det er en gammel tråd, men den har været brugbar for mig :-)
Tak for det..
Hvis jeg ikke ønsker at få en meddelelse når der ikke er nogle der har fødselsdag, men kun ved fødselsdage...
Håber på et svar, på forhånd tak
Søren A.
Synes godt om
Ny brugerNybegynder
Din løsning...
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.