Variabel printen met variabele op het te printen blad

Status
Niet open voor verdere reacties.

AmaProg

Gebruiker
Lid geworden
10 sep 2012
Berichten
29
Beste,

Ik heb al overal op internet gezocht maar ben er nog niet veel wijzer door geworden. Mijn probleem is namelijk hetvolgende:

In excel heb ik een werkblad dat bestemd is voor verschillende diensten. In een tabelletje naast het te printen werkblad staat hoeveel copies ik per dienst nodig heb.
Per copie zou rechtsonderaan moeten vermeld worden voor welke dienst het bestemd is. In bijlage kan u een vereenvoudigde versie zien. Bekijk bijlage Voorbeeld File.xlsx


Hopelijk kan iemand mij helpen, alvast dank bij voorbaat.

Groetjes
AmaProg
 
Laatst bewerkt:
Het is niet helemaal duidelijk wat je bedoelt.. maar dit misschien?

Code:
Sub koster()

With Sheets("Blad1")
                    .Range("L55") = .Range("R6")
                    .PrintOut Copies:=.Range("S6").Value, Collate:=True, IgnorePrintAreas:=False
                    .Range("L55") = .Range("R7")
                    .PrintOut Copies:=.Range("S7").Value, Collate:=True, IgnorePrintAreas:=False
                    .Range("L55") = .Range("R8")
                    .PrintOut Copies:=.Range("S8").Value, Collate:=True, IgnorePrintAreas:=False
                    .Range("L55") = .Range("R9")
                    .PrintOut Copies:=.Range("S9").Value, Collate:=True, IgnorePrintAreas:=False
                    .Range("L55") = ""

End With
End Sub
 

Bijlagen

Dag Koster,

We zijn al op goede weg... maar krijg nog een foutmelding. Aangezien het gewenste aantal kopies in het werkelijke programma een formule is kan de uitkomst
hiervan ook 0 zijn. Bij 0 kopies geeft hij dus een foutmelding terwijl het de bedoeling is dat hij dan automatisch naar hetvolgende gaat.

Groetjes
 
Voeg het roodgemarkeerde toe aan je code:

Code:
Sub koster()

[COLOR="#FF0000"]On Error Resume Next[/COLOR]
With Sheets("Blad1")
                    .Range("L55") = .Range("R6")
                    .PrintOut Copies:=.Range("S6").Value, Collate:=True, IgnorePrintAreas:=False
                    .Range("L55") = .Range("R7")
                    .PrintOut Copies:=.Range("S7").Value, Collate:=True, IgnorePrintAreas:=False
                    .Range("L55") = .Range("R8")
                    .PrintOut Copies:=.Range("S8").Value, Collate:=True, IgnorePrintAreas:=False
                    .Range("L55") = .Range("R9")
                    .PrintOut Copies:=.Range("S9").Value, Collate:=True, IgnorePrintAreas:=False
                    .Range("L55") = ""

End With
End Sub
 
Code:
Sub WB()
For Each it In Array("R6", "R7", "R8", "R9")
    With Sheets("Blad1")
        If .Range(it).Offset(, 1).Value <> 0 Then
            .Range("L55") = .Range(it).Value
            .PrintOut Copies:=.Range(it).Offset(, 1).Value, Collate:=True, IgnorePrintAreas:=False
        End If
    End With
Next
End Sub
 
Thx Koster je bent TOP :thumb:

Warme bakkertje ook bedankt voor de poging! Heb jouw versie eveneens geprobeerd maar op het geprinte document verschijnt niet voor welke dienst het bestemd is.
 
Als je in jouw voorbeeldbestand de waarde in L55 bedoelt, bij mij iig bij elke loop.
Echter als de langere code voor jou werkt dan kan je uiteraard daarmee verder.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan