Macro geeft foutmelding

Status
Niet open voor verdere reacties.

Tweety1

Gebruiker
Lid geworden
6 mrt 2013
Berichten
637
Ik wil graag de macro gaan gebruiken die ik gevonden heb op de volgende website

http://www.cpearson.com/excel/GetPrinters.aspx

Alleen loopt de macro vast tijdens het uitvoeren op het volgende stukje
Application.ActivePrinter = .List(.ListIndex)

Ik gebruik excel 2013.

Hoe kan ik dit oplossen.

mvg
Kasper
 
Wel handig om ook even de betreffende foutmelding erbij te vertellen.
 
Hierbij de foutmelding
Knipsel.JPG
 

Bijlagen

  • Knipsel.PNG
    Knipsel.PNG
    10,4 KB · Weergaven: 28
En wat doe je precies? Als ik het voorbeeldje van Chip download en open, doet de macro het prima in Excel 2010. Of heb je alleen de code gekopieerd?
 
Dat is wel een ongelooflijke overdosis aan code voor een simpele taak:

Code:
Sub M_printers()
  For Each pr In CreateObject("Wscript.network").EnumPrinterConnections
    if j Mod 0 = 0 then c00 = pr
    If j Mod 2 = 1 Then c01 = c01 & "|" & c00 & iif(instr(application.activeprinter," on "," on "," op ") & pr
    j = j + 1
  Next
' msgbox c00  
  listbox1.List = Split(mid(c00,2), "|")
End Sub

Private Sub Listbox1_change()
   If listbox1.ListIndex > -1 Then Application.ActivePrinter = listbox1.Value
End Sub
 
Laatst bewerkt:
Maar Chip houdt van code kloppen :) En die code is ook nog eens gebaseerd op Engelse/Amerikaanse Windows versies, dus je moet wel een regeltje aanpassen in de functie.
Code:
        'English versions
        ''Printers(PNdx) = ValueName & " on " & ValueValueS
        'Dutch versions
        Printers(PNdx) = ValueName & " op " & ValueValueS
 
Ik probeer het stukje macro toe te voegen alleen wordt de volgende tekst rood

If j Mod 2 = 1 Then c01 = c01 & "|" & c00 & iif(instr(application.activeprinter," on "," on "," op ") & pr
 
Tel eens het aantal haakjes openen en het aantal haakjes sluiten....

Code:
If j Mod 2 = 1 Then c01 = c01 & "|" & c00 & iif(instr(application.activeprinter," on ")=0," op "," on ") & pr
 
Deze macro kun je overal gebruiken.

Waarom ben je hiermee dan überhaupt bezig ??
 
Ik heb de macro in een nieuwe Excel bestand geplakt
Alleen krijg nu een foutmelding
Fout 11 tijdens uitvoering:
Delen door nul

Ik wil dit koppelen aan print knop waardoor ik een aantal tabbladen kan printen ipv 1 voor een
 
Ik hoop dat je begreep dat je die hele code van cpearson beter kon vergeten ?

Weet je wat een ListBox is ?

Om alle werkbladen af te drukken heb je deze code helemaal niet nodig.
 
Laatst bewerkt:
Ik hat wel begrepen dat ik de code van cpearson niet meer moest gebruiken.
Ik heb wel eens in het verleden met Listbox gewerkt.

Ondertussen heb ik van een collega een Makro gekregen die werkt.
Alleen zou ik daar 1 aanpassing in willen.
Bij de gedeelte waar je een printer kan selecteren kan je kiezen uit 3 knoppen.
Zodra ik op annuleren druk gaat de macro door hoe wijzig ik dit zodat de macro niet verder gaat (exit Sub).

Code:
Sub showSelPDialog()
'Run from Standard Module, like: Module1.
Dim selPrinter As Boolean, pResp As Boolean
Dim activPNm$, pMsg$, pStyle$, pTitle$

activPNm = Application.ActivePrinter
pMsg = "You currently print to:" & vbLf & vbLf & _
activPNm & vbLf & vbLf & _
"Do you want to select a different printer?"
pStyle = vbYesNo + vbInformation + vbDefaultButton2
pTitle = "Get Printer?"

pResp = msgbox(pMsg, pStyle, pTitle)

If pResp = True Then
selPrinter = Application.Dialogs(xlDialogPrinterSetup).Show

If (selPrinter = True And activPNm <> Application.ActivePrinter) Then
msgbox "You will now Print to:" & vbLf & vbLf & _
Application.ActivePrinter
End If
End If
msgbox "Macro"

End Sub
 
Ok.

Ik heb zelf ook nog wat zitten proberen en kwam op het volgende (en een stuk kleiner) wat volgens mij ook werkt

Code:
Sub Test()
 If Application.Dialogs(xlDialogPrinterSetup).Show Then
    
        msgbox "Macro"
    End If
End Sub

msgbox "Macro" wordt dan vervangen door stukje macro waarvoor ik het wil gebruiken.
 
Ik zou 'm zo doen:
Code:
Sub showSelPDialog()
    Dim selPrinter As Boolean
    Dim pResp As Long
    Dim activPNm As String
    Dim pMsg As String
    Dim pStyle As String
    Dim pTitle As String

    activPNm = Application.ActivePrinter
    pMsg = "You currently print to:" & vbLf & vbLf & _
    activPNm & vbLf & vbLf & _
    "Do you want to select a different printer?"
    pStyle = vbYesNo + vbInformation + vbDefaultButton2
    pTitle = "Get Printer?"
    
    pResp = MsgBox(pMsg, pStyle, pTitle)
    If pResp = vbNo Then Exit Sub
    
    selPrinter = Application.Dialogs(xlDialogPrinterSetup).Show
    If (selPrinter = True And activPNm <> Application.ActivePrinter) Then
        MsgBox "You will now Print to:" & vbLf & vbLf & _
        Application.ActivePrinter
    End If
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan