11. juli 2006 - 12:10Der er
9 kommentarer og 1 løsning
Macro i excel med auto save/gem
Har fået en macro der indsætter automatisk fakturanr. og opdatere dato, den macro virker. Men bare ikke når man skal lave mange fakura, da jeg efter print skal sidde og slette alle data, før jeg kan lave en ny. Har nogen gode forslag og har lyst til at hjælpe: mit forslag lyder på, man indstætter en linie i, der gør den automatisk gemmer dokument efter indsat faknr og dato, er dette muligt?
forresten, der er jo osse det med automatisk fakturanr + auto. opdatering af dato på faktura og den skulle gerne huske fakturanr.
Synes godt om
Slettet bruger
11. juli 2006 - 13:45#4
Kan du sende din workbook eller smide den kode, der genererer fakturaen her, så jeg ved lidt om, hvad der skal resettes mm - evt. lidt hjælp til selvhjælp så du også lærer noget af det selv.
Hvis du vil sende til mig er adressen mathias.bogsted_at_gmail.com <- Erstat _at_ med @.
Skal det hele foregår i en makro eller skal der brugerinput (tryk på knap) mellem hver action?
Jeg prøver at lære om det, men er lige begyndt. Men jeg har sendt workbook til dig
Synes godt om
Slettet bruger
11. juli 2006 - 14:45#6
Dette skal ind i din kode. Jeg skal bare vide, hvad der skal resettes. Som det er nu bliver kun A19:L47 slettet, men jeg går ud fra at adressen, deres ref. mm også skal resettes. Jeg skal bare vide hvilke celler det er.
'Tjekker om filen allerede er gemt (hvis du har åbnet en gammel faktura). 'Hvis det er en gammel faktura overskrives denne bare. 'Hvis det er en ny faktura gemmes en kopi i undermappen faktura If ActiveWorkbook.Name = Range("H14") & ".xls" Then ActiveWorkbook.Save Else ActiveWorkbook.SaveCopyAs ActiveWorkbook.Path & "\Faktura\" & Range("H14") & ".xls" End If
B2->B5 D12 & D14 og så dem du allerede har noteret A19-> L47
:-) Du skriver dette:'Hvis det er en gammel faktura overskrives denne bare. hvis den er lavet til den skal automatisk opdatere fakt.nr.Vil den så osse overskrive fakturanr. med nyt???
Synes godt om
Slettet bruger
12. juli 2006 - 08:10#9
Faktura nummeret vil være det samme.. med overskrive mener jeg at den gemmer ændringer.
Her er så det færdige resultat. Jeg har også sendt det til din mail.
Private Sub Workbook_BeforePrint(Cancel As Boolean) Dim Ny, Svar Sheets("Faktura").Activate If Range("H14") = "" Or Right(Range("H14"), 2) <> Format(Now(), "yy") Then Range("H14").Value = "0001 - " & Format(Now(), "yy") End If Ny = Format(Left(Range("H14"), 4) + 1, "0000") & " - " & Format(Now(), "yy") Svar = MsgBox("Indsæt nyt Faktura nr. ", vbOKCancel) If Svar = 1 Then Range("H14").Value = Ny Range("L14").Value = Now()
'Tjekker om filen allerede er gemt (hvis du har åbnet en gammel faktura). 'Hvis det er en gammel faktura overskrives gemmes ændringer. 'Hvis det er en ny faktura gemmes en kopi i undermappen faktura If ActiveWorkbook.Name = Range("H14") & ".xls" Then ActiveWorkbook.Save Else ActiveWorkbook.SaveCopyAs ActiveWorkbook.Path & "\Faktura\" & Range("H14") & ".xls" End If
'Resetter workbooken Range("A19:L47").ClearContents Range("D12").ClearContents Range("D14").ClearContents Range("B2").Value = "NAVN" Range("B3").Value = "ADRESSE" Range("B4").Value = "By & POST NR" End Sub
/1.
Synes godt om
Slettet bruger
13. juli 2006 - 10:59#10
Jeg tænkte mig ikke lige om med hensyn til det var beforepring makroen blev kørt.
Derfor skal der resten af scriptet køres efter print (save_and_reset skal lægges i et separat module - ikke workbook module:
Private Sub Workbook_BeforePrint(Cancel As Boolean) Dim Ny, Svar Sheets("Faktura").Activate If Range("H14") = "" Or Right(Range("H14"), 2) <> Format(Now(), "yy") Then Range("H14").Value = "0001 - " & Format(Now(), "yy") End If Ny = Format(Left(Range("H14"), 4) + 1, "0000") & " - " & Format(Now(), "yy") Svar = MsgBox("Indsæt nyt Faktura nr. ", vbOKCancel) If Svar = 1 Then Range("H14").Value = Ny Range("L14").Value = Now()
Application.OnTime Now, "save_and_reset" End Sub
Function save_and_reset() 'Tjekker om filen allerede er gemt (hvis du har åbnet en gammel faktura). 'Hvis det er en gammel faktura overskrives gemmes ændringer. 'Hvis det er en ny faktura gemmes en kopi i undermappen faktura If ActiveWorkbook.Name = Range("H14") & ".xls" Then ActiveWorkbook.Save Else ActiveWorkbook.SaveCopyAs ActiveWorkbook.Path & "\Faktura\" & Range("H14") & ".xls" End If
'Resetter workbooken Range("A19:L47").ClearContents Range("D12").ClearContents Range("D14").ClearContents Range("B2").Value = "NAVN" Range("B3").Value = "ADRESSE" Range("B4").Value = "By & POST NR" End Function
/1
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.