12. februar 2004 - 11:35Der er
16 kommentarer og 1 løsning
Opstille en makro i excel regneark!
Jeg skal have lavet en makro i et excel regneark der gør sådan at når man åbner for regnearket så skal der først poppe en boks frem (hvis muligt) og spørge efter navn og dernæst skal regnearket selv generere et tal startene fra et tal som fx 1 og næste gang det bliver åbnet skal tallet være 2 osv osv..
Er der nogen der kender et sted hvor der er en guide til hvordan jeg laver det eller er der nogen der hurtig kan krible nogle linjer ned?
AgainIfEmpty: sAnswer = InputBox("Indtast dit navn", "Bruger sprøgsmål")
If Not (sAnswer = "") Then With Worksheets("Ark1") .Range("A65536").End(xlUp).Value = _ .Range("A65536").End(xlUp).Offset(-1, 0).Value + 1 .Range("A65536").End(xlUp).Offset(-1, 1).Value = sAnswer End With Else GoTo AgainIfEmpty End If
End Sub
Brugeren vil så blive ved med at få dette sprøgsmål indtil han/hun skriver noget. Prøv i et tomt regneark og udskift "Ark1" med navnet på det regneark, hvor du gerne vil have din lille log-fil.
Denne sættes i modulet This workbook Den skriver i det første ark og nedefter A kolonnen = Tallet B kolonnen = navnet
Du kan skjule arket, så er der ingen der kan se det.
Private Sub Workbook_Open() Dim Navn As String Navn = InputBox("Indtast navn", "Navn") If Navn = "" Then MsgBox " Navn skal intastes", vbOKOnly, "Fejl" Call Workbook_Open End If
If Sheets(1).Range("A1") = "" Then Sheets(1).Range("A1") = 1 Sheets(1).Range("B1") = Navn Else Sheets(1).Range("A65536").End(xlUp).Offset(1, 0) = Sheets(1).Range("A65536").End(xlUp) + 1 Sheets(1).Range("b65536").End(xlUp).Offset(1, 0) = Navn End If End Sub
Hvilken del af koden er det der gør at der bliver genereret et tal startene fra 1 i et felt i regnearket og næste gang regnearket bliver åbnet står der 2 osv osv??
Kan man skrue det sådan sammen at efter boksen er kommet frem hvor man har tastet navnet så kommer navnet frem i fx celle c4 bagefter tallet. Så når man har tastet navnet kommer der til at stå: Platapus - 1 og næste gang man så åbner dokumentet hvor man har skrevet "Platapus" i navne boksen står der så i samme celle som første gang: Platapus - 2
nej han skal også komme frem i samme celle, det er sådan så man kan se hvem der har oprettet dokumentet denne gang! Det er et dokument der skal udfyldes med nogle data'er hvor 3 forskellige personer laver dem, så navnet skal være med for nemhedsskyld ved arkivering!
Her skriver den Altid tallet i Ark1 celle A1 og navnet i Ark1 celle B1
Private Sub Workbook_Open() Dim sAnswer As String
AgainIfEmpty: sAnswer = InputBox("Indtast dit navn", "Bruger sprøgsmål")
If Not (sAnswer = "") Then With Worksheets("Ark1") .Range("A1").Value = Range("A1").Value + 1 .Range("B1").Value = sAnswer End With Else GoTo AgainIfEmpty End If
Når jeg nu har lavet makroen færdig hvordan får jeg den så til at kører automatisk hver gang dokumentet bliver åbnet? Den popper også den der boks op hvor den siger disable/enable makros, hvordan fjerner man den?
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.