• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Blad toevoegen in een macro

Status
Niet open voor verdere reacties.

Robjuh20

Gebruiker
Lid geworden
3 mei 2012
Berichten
28
Beste HelpMij'ers,

Ik heb een vraag. Ik heb nu deze code in een macro van Excel:

Sub Macro2()
'
' Macro2 Macro
'
Workbooks.Open Filename:= _
"G:\Bestelbon naar factuur\Klantfacturatie\_SJABLOON.xlsx", UpdateLinks:=3
ActiveWindow.SelectedSheets.PrintOut ActivePrinter:="Canon MP600R Printer", Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
ActiveWorkbook.Close (False)

Windows("_SJABLOON (prijs).xlsm").Activate
End Sub



Nu wil ik hier toevoegen dat ik ook een blad (= sheet volgens mij) kan selecteren in het bestand "G:\Bestelbon naar factuur\Klantfacturatie\_SJABLOON.xlsx". Hoe kan ik deze hier toevoegen? Alvast bedankt!
 
En waar moet ik deze code tussen zetten? Maakt dat wat uit? Zou je deze kunnen toevoegen in mijn code? Super bedankt!
 
Code:
Sub Macro2()
 '
 ' Macro2 Macro
 '
 Workbooks.Open Filename:= _
 "G:\Bestelbon naar factuur\Klantfacturatie\_SJABLOON.xlsx", UpdateLinks:=3
 Sheets("[COLOR="#FF0000"]Zet hier je bladnaam[/COLOR]").PrintOut ActivePrinter:="Canon MP600R Printer", Copies:=1, Collate:=True, _
 IgnorePrintAreas:=False
 ActiveWorkbook.Close (False)

 Windows("_SJABLOON (prijs).xlsm").Activate
 End Sub

Vervang de rode tekst door de naam van je blad.
 
Hartstikke bedankt! Nu heb ik eigenlijk nog een probleem. Ik moet deze macro dus 52 keer gaan maken (het betreft iedere week van het jaar). maar zoals je wel kan zien, gaat het hier om een sjabloon. Deze naam gaat dus veranderd worden. Dat wil dus zeggen dat ik in mijn macro ook het pad 52 keer moet veranderen. Is hier een snelle manier voor, dat het pad doorgelinkt wordt aan bijv. de eerste macro?
 
Je kan bv in je eerste bestand een validatielijst zetten met alle 52 namen. Selecteer hierin dan een naam en gebruik dan die celwaarde om een bepaald blad af te drukken.
Je krijgt dan iets zoals onderstaande.
Code:
Sub Macro2()
 '
 ' Macro2 Macro
 '
[COLOR="#FF0000"]fName = thisworkbook.range("A1").value[/COLOR] 'zet hier de cel met je validatielijst
 Workbooks.Open Filename:= _
 "G:\Bestelbon naar factuur\Klantfacturatie\_SJABLOON.xlsx", UpdateLinks:=3
 Sheets([COLOR="#FF0000"]fName[/COLOR])PrintOut ActivePrinter:="Canon MP600R Printer", Copies:=1, Collate:=True, _
 IgnorePrintAreas:=False
 ActiveWorkbook.Close (False)

 Windows("_SJABLOON (prijs).xlsm").Activate
 End Sub
 
Dus als ik het goed begrijp, dan moet ik een extra tabblad maken waar ik in A1 "week 1" zet, A2 "week 2", enz. En dan pakt hij altijd het eerste tabblad waar dit in vermeld is? En kan ik dit hetzelfde doen met de plaats na "Workbooks.Open Filename:="?
 
Ik volg niet goed meer. Je hebt dus een basisbestand van waaruit je de macro start. Je hebt een sjabloon dat je 52 keer kopieërt (per week). Nu wil je vanuit het eerste bestand elke week kunnen openen om een pagina af te drukken.
Pas dan het systeem v/d validatielijst toe met alle weeknamen in die lijst en selecteer er 1 van. In de macro wordt dit dan
Code:
Workbooks.Open filename:= "G:\Bestelbon naar factuur\Klantfacturatie\" & range("A1").value & ".xlsx"
Dit geldt dan als je lijst in A1 staat, en zorg er ook voor dat het laatste teken bij het pad een backslash is \
 
Beste Rudi,

Het is me inmiddels gelukt. Dit is de uiteindelijke code geworden:

Sub Printen()

fName = "week " & Range("B6")
Workbooks.Open Filename:="H:\Bestelbon naar factuur\Klantfacturatie\" & Range("E33").Value & ".xlsx", UpdateLinks:=3
Sheets(fName).PrintOut ActivePrinter:="Canon MP600R Printer", Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
ActiveWorkbook.Close (False)

Windows("_SJABLOON (prijs).xlsm").Activate
End Sub


Allemaal super bedankt voor het helpen!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan