Jeg kan ikke få excel til at ændre ordrenummeret, feks. fra 1001 til 1002 og vidre. Det skal den gøre hver gang jeg ændre, gemmer eller udskriver arket. Håber der er nogle der kan hjælpe, tak.
Private Sub Workbook_BeforePrint(Cancel As Boolean) Sheets(1).Range("ordernummer") = Sheets(1).Range("ordernummer") + 1 End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Sheets(1).Range("ordernummer") = Sheets(1).Range("ordernummer") + 1 End Sub
Uden at jeg skal blande mig i procedurenm er det så ikke upraktisk at ordrenummeret ændres ved alle disse handlinger.
Du åbner et dokument, og ændrer i det. Ordrenummeret øges med 1. Så gemmer du ændringerne, ordrenummeret øges igen med 1. Så udskriver du, og ordrenummeret øges med 1. Så opdager du, at der var fejl i det udskrivne, ændrer i regnearket, gemmer og udskriver igen, og i alt er ordrenummeret blevet øges med 6 for at udskrive en enkelte ændring?
Nu må du lige bære lidt over med mig, jeg er ikke god til script.. Jeg har lagt det ind i min workbook, men hvordan får jeg det til at virke på det felt som jeg ønsker, og skal det ikke aktiveres..?
Det er jo også kun meningen den skal ændre ordrenummeret 1 gang. Jeg skal ikke bruge en gemt kopi af det udskrevne, men bare have den til at skrive arket ud med de ændringer jeg har lavet. Samtidigt med at jeg skal gemme arket uden ændringer, men ordrenummert skal også øges med 1, sådan at jeg står med et uændret ark, blot med en øgning af ordrenummeret. Sådan at arket er klar til at udfylde/ændre og udskrive igen, men med et forhøjet ordrenummer
Gem en textfil hvor du kun skriver det tal du vil starte med. F.eks. 1000 Gem som f.eks rap.txt Gem din ordreseddel som en skabelon (ordreseddel.xlt) Feltet hvor ordrenummeret skal sættes ind SKAL være tomt, når du gemmer den første gang. Du skal indsætte følgende i et modul:
Sub RapNr() Dim RapFil Dim NyNr Dim GlNr
RapFil = "c:\rap.txt" 'eller hvor du har lagt den Open RapFil For Input As #1 Line Input #1, GlNr Close #1 Open RapFil For Output As #1 NyNr = Val(GlNr) + 1 Print #1, NyNr Close #1 Range("a1").Value = NyNr '(kan ændres, hvis det ikke skal være A1) End Sub
I ThisWorkBook sætter du følgende kode ind:
Private Sub Workbook_Open() If Sheets("Ordreseddel").Range("a1") > 1 Then Exit Sub RapNr End Sub
Lav en genvej til skabelonen, så den åbner som xls. Så skulle den være der.
Jeg har oprettet en txt. fil, og lavet det andet. Men hvad mener du med at, jeg skal lave en genvej til skabelonen..? Jeg kan ikke få det til at virke, jeg har ellers gjort som du har skrevet.
Undskyld jeg har været væk så længe. Håber du enten har fundet ud af det, eller er meget tålmodig.
Løsning: På skrivebordet Højreklik Vælg ny Vælg genvej Marker din skabelon Så skal du bare klikke på genvejen til din skabelon, og den åbner excel filen.
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.