31. oktober 2004 - 18:02Der er
20 kommentarer og 1 løsning
Msgbox til udskrivning af udvalgte ark
Jeg har brug for en makro, der via en msgbox giver mulighed for at vælge hvilke ark der skal udskrives. Det forslår jeg man gør via Afkrydsningsfelter i msgboxen.
Når de ønskede ark vælges skal der indsættes "Bilag "x"" på bilagene i Celle. Jeg har i dag mulighed for at skrive et enkelt ark ud med Bilag "x" på vha. følgende makro:
Private Sub CommandButton1_Click() Dim navn As String svar = InputBox("Indtast bilagsnr.:", "Bilagsnummer") If svar <> Empty Then navn = "Bilag " & svar Range("H1") = navn ActiveSheet.PrintOut End If End Sub
Jeg ved ikke helt hvor ark der er men hvis du laver et eksempel 3 ark, kan jeg jo selv bygge videre på det.
Hvis ark 1 + 3 vælges skal ark 1 have Bilag 1 og ark 3 Bilag 2 hvis ark 3 vælges skal arket have Bilag 1 osv.
Lav en userform. Smid checkboks på den - lige så mange checkboxe som der er ark. Smid en OK knap på I OK-knappens Click event læser du alle checkboxene, og er de "tjekkede" bruger du den kode du allerede har:
cmdOK_Click Dim navn As String dim i as long
if Check1.cheked = True then i = i+1 navn = "Bilag " & i Sheets("Ark1").Range("H1") = navn ActiveSheet.PrintOut End If
Martin Moth 02/11-2004 06:39:33> Der er stadig fejl i metoden..
Kabbak 01/11-2004 21:22:44> Så vidt jeg kan se, så har du lavet det sådan, at jeg selv skal indtaste bilagsnummer: svar = InputBox("Indtast bilagsnr.:", "Bilagsnummer") Det har jeg ikke brug for - Det virker faktisk heller ikke! Jeg har brug for, at den selv vælger hvilket bilagsnummer den enkelte udskrift skal have, sådan at den første IF-sætning der er "True" får Bilagsnummer 1 og 2. Bilag 2 osv.
Private Sub CommandButton1_Click() Dim navn As String, i as long
i =1 if Check1 = True then ' glemte at rette navn = "Bilag " & i Sheets("Girokort").Range("J38") = navn Sheets("Girokort").select ' mon ikke denne linie skal med ActiveSheet.PrintOut i = i+1 End If 'osv.
Martin Moth 02/11-2004 06:39:33> Der er stadig fejl i metoden..
Det er fordi der skal stå .Value
Du kan selv se hvilke metoder der er tilgængelige for diverse objekter, idet VB(A) viser de mulige metoder i en dropdown når du har skrevet objektnavn efterfulgt af punktum
martin_moth 03/11-2004 07:23:00> Jeg får stadig fejl..... Har du prøvet og tjekke det inden du giver mig svaret? Det kan jo være min opsætning af Excel - Eller hvad? Jeg kender godt dropdown.
kabbak> Det virker ikke. Jeg når jeg klikker på OK efter at haver markeret en checkbox, sker der ikke noget!
Her har du hele makroen. håber du kan finde en løsning! En anden ting. Jeg kan ikke forstå at i ALTID er = 1 og at der skal ligges 1 til i hver gang. Giver det ikke bilagsnummer 1 hver gang?
Private Sub cmdOK_Click() Dim navn As String, i As Long
i = 1 If cdGirokort = True Then navn = "Bilag " & i Sheets("Girokort").Range("J38") = navn Sheets("Girokort").Select ActiveSheet.PrintOut i = i + 1 End If
If cdKontantrabatter = True Then navn = "Bilag " & i Sheets("Kontantrabatter").Range("E28") = navn Sheets("Kontantrabatter").Select ActiveSheet.PrintOut i = i + 1 End If
If cdValørtabValørgevinst = True Then navn = "Bilag " & i Sheets("Valørtab-valørgevinst").Range("J36") = navn Sheets("Valørtab-valørgevinst").Select ActiveSheet.PrintOut i = i + 1 End If
If cdFakturaBetingelser = True Then navn = "Bilag " & i Sheets("Faktura betingelser").Range("L21") = navn Sheets("Faktura betingelser").Select ActiveSheet.PrintOut i = i + 1 End If
If cdTotalOversigt = True Then navn = "Bilag " & i Sheets("Total oversigt").Range("E19") = navn Sheets("Total oversigt").Select ActiveSheet.PrintOut i = i + 1 End If
martin_moth 03/11-2004 07:23:00> Du får også lige hele makroen. Håber du kan finde fejlen!
Private Sub cmdOK_Click() Dim navn As String Dim i As Long
If cdGirokort.Value = True Then i = i + 1 navn = "Bilag " & i Sheets("Girokort").Range("J38") = navn ActiveSheet.PrintOut End If
If cdKontantrabatter.Value = True Then i = i + 1 navn = "Bilag " & i Sheets("Kontantrabatter").Range("E28") = navn ActiveSheet.PrintOut End If
If cdValørtabValørgevinst.Value = True Then i = i + 1 navn = "Bilag " & i Sheets("Valørtab-valørgevinst").Range("J36") = navn ActiveSheet.PrintOut End If
If cdFakturaBetingelser.Value = True Then i = i + 1 navn = "Bilag " & i Sheets("Faktura betingelser").Range("L21") = navn ActiveSheet.PrintOut End If
If cdTotalOversigt.Value = True Then i = i + 1 navn = "Bilag " & i Sheets("Total oversigt").Range("E19") = navn ActiveSheet.PrintOut End If
Ok har fundet fejlen.......... Jeg skal jo stave navnene rigtigt begge steder! Det virker ok, men hvad er det for en metode jeg skal bruge for at få formularen lukket efter jeg har trykket ok? Jeg har prøvet med .close og .cancel. Ikke noget af det virker! Hvis jeg vil anuller udskrivningen hvad skal jeg så skrive. Kabbak gi´ et svar, så får du dine point - igen!
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.