Gosub

P

pierrot

Guest
Bojour à tous.
J'ai voulu créer une routine d'impression, avec la fonction gosub return, mais elle ne fonctionne pas, je pensais qu'après le routine en line, on revenait au Gosub et que le programme continuait à s'exécuter.
Si quelqu'un peut m'aider, Merci d'avance.

Private Sub LancementImpression (Nbrecopie, page)
page.Activate
With page
If PageGarde = True Then
.Range("X1:AE59").Select
'--- checkbox PageGarde remise à zéro
PageGarde = False
GoSub Line1
ElseIf PageQ = True Then
GoSub Line2
ElseIf PageRL = True And PageMSP = True Then
.Range("AF1:Ak59").Select
PageRL = False And PageMSP = False
GoSub Line1
ElseIf PageRL = True Then
.Range("AF15:AK59").Select
PageRL = False
GoSub Line1
ElseIf PageMSP = True Then
.Range("AF1:Ak13").Select
PageMSP = False
GoSub Line1
End If
Exit Sub
End With

Line1:
Selection.PrintOut Copies:=Nbrecopie
Return
 
T

Ti

Guest
évite plutôt les gosub. Un programme structuré ne devrait jamais utiliser les goto, gosub qui datent d'un autre âge (à part pour gérer les erreurs avec l'instruction On error goto). Remplace tes labels par des procédures indépendantes, comme par ex:

sub Imprime(NbreCopie as long)
Selection.PrintOut Copies:=Nbrecopie
end sub

et dans ton programme, au lieu de faire gosub line1, tu écris tout simplement :

imprime NbreCopie

et voilà
 

Discussions similaires

Réponses
19
Affichages
2 K
Réponses
8
Affichages
667

Statistiques des forums

Discussions
312 329
Messages
2 087 334
Membres
103 519
dernier inscrit
Thomas_grc11