Avatar billede h_s Forsker
31. oktober 2004 - 18:02 Der 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.

Håber I kan hjælpe mig!
Avatar billede kabbak Professor
31. oktober 2004 - 23:57 #1
hvordan vælger du flere ark
Avatar billede martin_moth Mester
01. november 2004 - 15:57 #2
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

  'osv.
End Sub
Avatar billede h_s Forsker
01. november 2004 - 18:44 #3
Jeg har problemer med .cheked - Jeg får at vide at metoden ikke findes! Hvad skal der stå?
Avatar billede kabbak Professor
01. november 2004 - 18:49 #4
if Check1 then

du behøver ikke det andet
Avatar billede kabbak Professor
01. november 2004 - 18:51 #5
men ellers er det
if Check1 = true then
Avatar billede h_s Forsker
01. november 2004 - 20:25 #6
Tak kabak :-)

Der er også noget galt med Sheets("Ark1").Range("H1") = navn

Jeg har godt nok ændret det til: Sheets("Girokort").Range("J38") = navn

Hvor "Girokort" er arknavn og "J38" er den celle, hvor der skal stå Bilag 1.

Er det ikke rigtigt forstået?
Avatar billede kabbak Professor
01. november 2004 - 21:21 #7
Private Sub CommandButton1_Click()
Dim navn As String, i as long
svar = InputBox("Indtast bilagsnr.:", "Bilagsnummer")

i = val(svar)

if Check1.cheked = True then
  navn = "Bilag " & i
  Sheets("Girokort").Range("J38") = navn
  ActiveSheet.PrintOut
  i = i+1
  End If
  'osv.


End Sub

noget i den retning, jeg tror du savnede inputboxen
Avatar billede kabbak Professor
01. november 2004 - 21:22 #8
Private Sub CommandButton1_Click()
Dim navn As String, i as long
svar = InputBox("Indtast bilagsnr.:", "Bilagsnummer")

i = val(svar)

if Check1 = True then ' glemte at rette
  navn = "Bilag " & i
  Sheets("Girokort").Range("J38") = navn
  ActiveSheet.PrintOut
  i = i+1
  End If
  'osv.


End Sub

noget i den retning, jeg tror du savnede inputboxen
Avatar billede martin_moth Mester
02. november 2004 - 06:39 #9
"Jeg har problemer med .cheked - Jeg får at vide at metoden ikke findes! Hvad skal der stå?"

.Checked - der var en stavefejl.

Skriv checked - det giver lidt pænere programmering, og det er lettere at læse koden
Avatar billede h_s Forsker
02. november 2004 - 22:09 #10
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.
Avatar billede kabbak Professor
02. november 2004 - 22:14 #11
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
  ActiveSheet.PrintOut
  i = i+1
  End If
  'osv.


End Sub
Avatar billede kabbak Professor
02. november 2004 - 22:19 #12
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.


End Sub
Avatar billede martin_moth Mester
03. november 2004 - 07:23 #13
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
Avatar billede h_s Forsker
06. november 2004 - 08:56 #14
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.
Avatar billede h_s Forsker
06. november 2004 - 09:18 #15
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
 
End Sub
Avatar billede h_s Forsker
06. november 2004 - 09:20 #16
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

End Sub
Avatar billede kabbak Professor
06. november 2004 - 18:49 #17
Kommentar: h_s
06/11-2004 09:18:39

Har testet koden og det virker fint.
Avatar billede h_s Forsker
08. november 2004 - 15:48 #18
kabbak> kan det være fordi jeg har kaldt checkboxene cdGirokort, cdKontantrabatter osv. Så er det vel rigtigt, at jeg skal ændre dine Check1 til det?
Avatar billede kabbak Professor
08. november 2004 - 16:22 #19
jeg har brugt dine navne, så det er ok
Avatar billede h_s Forsker
08. november 2004 - 18:14 #20
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!
Avatar billede kabbak Professor
08. november 2004 - 18:51 #21
afslut med

Unload Me
End Sub


og et svar
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester