02. september 2009 - 11:19Der er
14 kommentarer og 1 løsning
Fejl i VBA / Makro??
Hejsa,
Jeg har lavet en makro der kun fungerer til dels. Håber at der er nogle eksperter der kan hjælpe mig?:
Jeg har denne makro, der skal hente data fra hvert nyt ark der bliver oprettet, og lægge data i arket "udskrift". Men jeg har fået lavet det sådan at også arket "udskrift" ændre navn (lige som de øvrige der skifter navn for hver ny faktura). Det er sikker meget enkelt det jeg gør forker :-S ...
Sub ListArk() Dim i As Long, so As Object Sheets("Udskrift").Range("A:A").ClearContents i = 0 For Each so In Sheets i = i + 1 Sheets("Udskrift").Cells(i, 1).Value = so.Name Sheets("Udskrift").Cells(i, 2).Value = so.Range("B7") Sheets("Udskrift").Cells(i, 3).Value = so.Range("F3") Sheets("Udskrift").Cells(i, 4).Value = so.Range("F34") Sheets("Udskrift").Cells(i, 5).Value = so.Range("B41") Next End Sub
Er ikke helt sikker på at jeg forstår, men prøv med følgende
For Each so In Sheets If so.Name <> "Udskrift"" Then i = i + 1 Sheets("Udskrift").Cells(i, 1).Value = so.Name Sheets("Udskrift").Cells(i, 2).Value = so.Range("B7") Sheets("Udskrift").Cells(i, 3).Value = so.Range("F3") Sheets("Udskrift").Cells(i, 4).Value = so.Range("F34") Sheets("Udskrift").Cells(i, 5).Value = so.Range("B41") End If Next
Den giver mig en fejl på: - hvad gør jeg forkert?:-S
Sub ListArk() Dim i As Long, so As Object Sheets("Udskrift").Range("A:A").ClearContents i = 0 For Each so In Sheets If so.Name <> "Udskrift" Then i = i + 1 Sheets("Udskrift").Cells(i, 1).Value = so.Name Sheets("Udskrift").Cells(i, 2).Value = so.Range("B7") Sheets("Udskrift").Cells(i, 3).Value = so.Range("F3") Sheets("Udskrift").Cells(i, 4).Value = so.Range("F34") Sheets("Udskrift").Cells(i, 5).Value = so.Range("B41") End If Next End Sub
Ved du hva'. Det er mig der kolvner! Den fungerer fint nu. Ponits på vej til dig! Blot en lille ting mere, hvis du har tid? Det er vedr =IDAG() - som i "udskrift" gerne skal være fast og ikke ændre sig. Er det mon muligt når data hentes fra et ark?
IDAG () har jeg i alle de øvrige atk der opsummeres i "udskrift" Det er F3 i nedenstående:
Sub ListArk() Dim i As Long, so As Object Sheets("Udskrift").Range("A:A").ClearContents i = 0 For Each so In Sheets If so.Name <> "Udskrift" Then i = i + 1 Sheets("Udskrift").Cells(i, 1).Value = so.Name Sheets("Udskrift").Cells(i, 2).Value = so.Range("B7") Sheets("Udskrift").Cells(i, 3).Value = so.Range("F3") Sheets("Udskrift").Cells(i, 4).Value = so.Range("F34") Sheets("Udskrift").Cells(i, 5).Value = so.Range("B41") End If Next End Sub
Jo, F3 er =idag() eller =todag()(i,3) og det fungerer. Problemet er at datoen på "udskrift"-arket skifter hver dag - men den skulle jo gerne forblive den dato som jeg oprettede fakturaen. Giver det mening?
Har testet din kode i Office 2003 og i arket "Udskrift" får jeg en dato værdi men ikke =Idag() selv om det er hvad der står på de andre ark. Du må gerne sende mig dit ark, hvis jeg skal kigge mere påd et.
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.