Bonjour,
j'ai ce code qui me permet d'imprimer tous mes onglets, du n°17 au dernier,
avec une condition.
Comment prévoir plutot, une impression de l'onglet "DA" au dernier ?
comme ça, si je dois rajouter un onglet avant "DA", mon impression ne
plantera pas.
Merci de votre aide.
YANN
----
Case "Le dossier de contrôle + les FTS + la balance"
'Imprime le dossier de contrôle annuel + balance + fiches suiveuse, de la
page 17 à la dernière page
ActiveWorkbook.Unprotect
Application.Dialogs(xlDialogPrinterSetup).Show 'lance la boite de dialogue
Choix de l'imprimante
NP = Worksheets.Count
For I = 17 To NP 'imprime les onglets 17 au dernier, supposant que le 17 est
l'onglet DA
Set Sh = Sheets(I)
If Not UCase(Trim(Sh.Cells(4, 1).Value)) = "NA" Then
Debug.Print Sh.Name
memVisible = Sh.Visible
Sh.Visible = True
Sh.PrintOut
Sh.Visible = memVisible
End If
Next
Unload Me
ActiveWorkbook.Protect Structure:=True ', Windows:=True 'protection du
classeur
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Daniel.C
Bonjour. Non testé :
Case "Le dossier de contrôle + les FTS + la balance" 'Imprime le dossier de contrôle annuel + balance + fiches suiveuse, de la page 17 à la dernière page ActiveWorkbook.Unprotect Application.Dialogs(xlDialogPrinterSetup).Show 'lance la boite de dialogue Choix de l'imprimante NP = Worksheets.Count For I = shets("DA").Index To NP 'imprime les onglets 17 au dernier, supposant que le 17 est l 'onglet DA Set Sh = Sheets(I) If Not UCase(Trim(Sh.Cells(4, 1).Value)) = "NA" Then Debug.Print Sh.Name memVisible = Sh.Visible Sh.Visible = True Sh.PrintOut Sh.Visible = memVisible End If Next Unload Me ActiveWorkbook.Protect Structure:=True ', Windows:=True 'protection du classeur
Cordialement. Daniel
Bonjour, j'ai ce code qui me permet d'imprimer tous mes onglets, du n°17 au dernier, avec une condition. Comment prévoir plutot, une impression de l'onglet "DA" au dernier ? comme ça, si je dois rajouter un onglet avant "DA", mon impression ne plantera pas. Merci de votre aide. YANN
---- Case "Le dossier de contrôle + les FTS + la balance" 'Imprime le dossier de contrôle annuel + balance + fiches suiveuse, de la page 17 à la dernière page ActiveWorkbook.Unprotect Application.Dialogs(xlDialogPrinterSetup).Show 'lance la boite de dialogue Choix de l'imprimante NP = Worksheets.Count For I = 17 To NP 'imprime les onglets 17 au dernier, supposant que le 17 est l'onglet DA Set Sh = Sheets(I) If Not UCase(Trim(Sh.Cells(4, 1).Value)) = "NA" Then Debug.Print Sh.Name memVisible = Sh.Visible Sh.Visible = True Sh.PrintOut Sh.Visible = memVisible End If Next Unload Me ActiveWorkbook.Protect Structure:=True ', Windows:=True 'protection du classeur
-------
Bonjour.
Non testé :
Case "Le dossier de contrôle + les FTS + la balance"
'Imprime le dossier de contrôle annuel + balance + fiches suiveuse, de
la page 17 à la dernière page
ActiveWorkbook.Unprotect
Application.Dialogs(xlDialogPrinterSetup).Show 'lance la boite de
dialogue Choix de l'imprimante
NP = Worksheets.Count
For I = shets("DA").Index To NP 'imprime les onglets 17 au dernier,
supposant que le 17 est l 'onglet DA
Set Sh = Sheets(I)
If Not UCase(Trim(Sh.Cells(4, 1).Value)) = "NA" Then
Debug.Print Sh.Name
memVisible = Sh.Visible
Sh.Visible = True
Sh.PrintOut
Sh.Visible = memVisible
End If
Next
Unload Me
ActiveWorkbook.Protect Structure:=True ', Windows:=True 'protection du
classeur
Cordialement.
Daniel
Bonjour,
j'ai ce code qui me permet d'imprimer tous mes onglets, du n°17 au dernier,
avec une condition.
Comment prévoir plutot, une impression de l'onglet "DA" au dernier ?
comme ça, si je dois rajouter un onglet avant "DA", mon impression ne
plantera pas.
Merci de votre aide.
YANN
----
Case "Le dossier de contrôle + les FTS + la balance"
'Imprime le dossier de contrôle annuel + balance + fiches suiveuse, de la
page 17 à la dernière page
ActiveWorkbook.Unprotect
Application.Dialogs(xlDialogPrinterSetup).Show 'lance la boite de dialogue
Choix de l'imprimante
NP = Worksheets.Count
For I = 17 To NP 'imprime les onglets 17 au dernier, supposant que le 17 est
l'onglet DA
Set Sh = Sheets(I)
If Not UCase(Trim(Sh.Cells(4, 1).Value)) = "NA" Then
Debug.Print Sh.Name
memVisible = Sh.Visible
Sh.Visible = True
Sh.PrintOut
Sh.Visible = memVisible
End If
Next
Unload Me
ActiveWorkbook.Protect Structure:=True ', Windows:=True 'protection du
classeur
Case "Le dossier de contrôle + les FTS + la balance" 'Imprime le dossier de contrôle annuel + balance + fiches suiveuse, de la page 17 à la dernière page ActiveWorkbook.Unprotect Application.Dialogs(xlDialogPrinterSetup).Show 'lance la boite de dialogue Choix de l'imprimante NP = Worksheets.Count For I = shets("DA").Index To NP 'imprime les onglets 17 au dernier, supposant que le 17 est l 'onglet DA Set Sh = Sheets(I) If Not UCase(Trim(Sh.Cells(4, 1).Value)) = "NA" Then Debug.Print Sh.Name memVisible = Sh.Visible Sh.Visible = True Sh.PrintOut Sh.Visible = memVisible End If Next Unload Me ActiveWorkbook.Protect Structure:=True ', Windows:=True 'protection du classeur
Cordialement. Daniel
Bonjour, j'ai ce code qui me permet d'imprimer tous mes onglets, du n°17 au dernier, avec une condition. Comment prévoir plutot, une impression de l'onglet "DA" au dernier ? comme ça, si je dois rajouter un onglet avant "DA", mon impression ne plantera pas. Merci de votre aide. YANN
---- Case "Le dossier de contrôle + les FTS + la balance" 'Imprime le dossier de contrôle annuel + balance + fiches suiveuse, de la page 17 à la dernière page ActiveWorkbook.Unprotect Application.Dialogs(xlDialogPrinterSetup).Show 'lance la boite de dialogue Choix de l'imprimante NP = Worksheets.Count For I = 17 To NP 'imprime les onglets 17 au dernier, supposant que le 17 est l'onglet DA Set Sh = Sheets(I) If Not UCase(Trim(Sh.Cells(4, 1).Value)) = "NA" Then Debug.Print Sh.Name memVisible = Sh.Visible Sh.Visible = True Sh.PrintOut Sh.Visible = memVisible End If Next Unload Me ActiveWorkbook.Protect Structure:=True ', Windows:=True 'protection du classeur
-------
FFO
Salut à toi
Dans les lignes d'instruction : NP = Worksheets.Count For I = 17 To NP
Tu considères des numéros d'onglets et donc logiquement dire du 17° au dernier
Lorque tu veux réaliser la même démarche en te basant sur les noms des Onglets tu pourras difficilement dire de l'onglet "DA" au dernier : dernier est une position numérique dans une série "DA" est un nom d'onglet
La seule possibilité et de repartir du code :
For I = 17 To NP 'imprime les onglets 17 au dernier, supposant que le 17 est l'onglet DA
et d'exclure ou de n'accepter que certains en fonction de leur nom :
Set Sh = Sheets(I) If Sheets(I).Name = "DA" (Onglet portant le nom "DA") Ou If Sheets(I).Name Like "DA*" (Onglet dont le nom commence par "DA") Ou If Sheets.Name Like "*DA*" (Onglet dont le nom contient "DA") Ou If Sheets(I).Name Like "*DA" (Onglet dont le nom se termine par "DA")
Etc....
Ou les énumerer ainsi :
If Sheets(I).Name = "DA" or Sheets(I).Name = "DB" or Sheets(I).Name = "DC" etc....
A toi de voir mais on ne peux pas mélanger une logique numérique avec des noms
Salut à toi
Dans les lignes d'instruction :
NP = Worksheets.Count
For I = 17 To NP
Tu considères des numéros d'onglets et donc logiquement dire du 17° au dernier
Lorque tu veux réaliser la même démarche en te basant sur les noms des
Onglets tu pourras difficilement dire de l'onglet "DA" au dernier : dernier
est une position numérique dans une série "DA" est un nom d'onglet
La seule possibilité et de repartir du code :
For I = 17 To NP 'imprime les onglets 17 au dernier, supposant que le 17 est
l'onglet DA
et d'exclure ou de n'accepter que certains en fonction de leur nom :
Set Sh = Sheets(I)
If Sheets(I).Name = "DA" (Onglet portant le nom "DA")
Ou
If Sheets(I).Name Like "DA*" (Onglet dont le nom commence par "DA")
Ou
If Sheets.Name Like "*DA*" (Onglet dont le nom contient "DA")
Ou
If Sheets(I).Name Like "*DA" (Onglet dont le nom se termine par "DA")
Etc....
Ou les énumerer ainsi :
If Sheets(I).Name = "DA" or Sheets(I).Name = "DB" or Sheets(I).Name = "DC"
etc....
A toi de voir mais on ne peux pas mélanger une logique numérique avec des noms
Dans les lignes d'instruction : NP = Worksheets.Count For I = 17 To NP
Tu considères des numéros d'onglets et donc logiquement dire du 17° au dernier
Lorque tu veux réaliser la même démarche en te basant sur les noms des Onglets tu pourras difficilement dire de l'onglet "DA" au dernier : dernier est une position numérique dans une série "DA" est un nom d'onglet
La seule possibilité et de repartir du code :
For I = 17 To NP 'imprime les onglets 17 au dernier, supposant que le 17 est l'onglet DA
et d'exclure ou de n'accepter que certains en fonction de leur nom :
Set Sh = Sheets(I) If Sheets(I).Name = "DA" (Onglet portant le nom "DA") Ou If Sheets(I).Name Like "DA*" (Onglet dont le nom commence par "DA") Ou If Sheets.Name Like "*DA*" (Onglet dont le nom contient "DA") Ou If Sheets(I).Name Like "*DA" (Onglet dont le nom se termine par "DA")
Etc....
Ou les énumerer ainsi :
If Sheets(I).Name = "DA" or Sheets(I).Name = "DB" or Sheets(I).Name = "DC" etc....
A toi de voir mais on ne peux pas mélanger une logique numérique avec des noms
Sunburn
Impecable, j'ai testé et cela fonctionne.
Merci. YANN
Case "Le dossier de contrôle + les FTS + la balance" ActiveWorkbook.Unprotect Application.Dialogs(xlDialogPrinterSetup).Show 'lance la boite de dialogue Choix de l'imprimante NP = Worksheets.Count For I = sheets("DA").Index To NP Set Sh = Sheets(I) If Not UCase(Trim(Sh.Cells(4, 1).Value)) = "NA" Then Debug.Print Sh.Name memVisible = Sh.Visible Sh.Visible = True Sh.PrintOut Sh.Visible = memVisible End If Next Unload Me ActiveWorkbook.Protect Structure:=True ', Windows:=True 'protection du classeur
Impecable, j'ai testé et cela fonctionne.
Merci.
YANN
Case "Le dossier de contrôle + les FTS + la balance"
ActiveWorkbook.Unprotect
Application.Dialogs(xlDialogPrinterSetup).Show 'lance la boite de
dialogue Choix de l'imprimante
NP = Worksheets.Count
For I = sheets("DA").Index To NP
Set Sh = Sheets(I)
If Not UCase(Trim(Sh.Cells(4, 1).Value)) = "NA" Then
Debug.Print Sh.Name
memVisible = Sh.Visible
Sh.Visible = True
Sh.PrintOut
Sh.Visible = memVisible
End If
Next
Unload Me
ActiveWorkbook.Protect Structure:=True ', Windows:=True 'protection du
classeur
Case "Le dossier de contrôle + les FTS + la balance" ActiveWorkbook.Unprotect Application.Dialogs(xlDialogPrinterSetup).Show 'lance la boite de dialogue Choix de l'imprimante NP = Worksheets.Count For I = sheets("DA").Index To NP Set Sh = Sheets(I) If Not UCase(Trim(Sh.Cells(4, 1).Value)) = "NA" Then Debug.Print Sh.Name memVisible = Sh.Visible Sh.Visible = True Sh.PrintOut Sh.Visible = memVisible End If Next Unload Me ActiveWorkbook.Protect Structure:=True ', Windows:=True 'protection du classeur