USF impression : selectionner et imprimer les onglets choisit par l'utilisateur

optimus38

XLDnaute Nouveau
Bonjour,

J'ai crée une USF pour gérer mes impressions.
Il y a une CheckBox pour chaque onglet.
En gros, on sélectionne les onglets voulu via les CheckBox, on clic sur le bouton imprimé (que j'ai crée) et c'est parti!

J'ai joins une exemple. Il marche bien, mais le problème est que mon code imprime les onglets les uns après les autres (il vas sur ma feuilA et imprime la feuilA, il vas sur la feuilB et imprime la feuilB, etc ...).

Ce que je voudrais, c'est pouvoir sélectionner tous les onglets désirés d'un seul coup et pouvoir lancer mon impression d'un seul coup (comme ça je pourrais avoir un aperçu complet avant impression, et je pourrais créer un pdf complet rapidement).

Comment créer une macro qui sélectionne les onglets que l'on veut ?? (sachant que le nombre n'est jamais le même)

Merci d'avance
 

Pièces jointes

  • Exemple.xlsm
    26.1 KB · Affichages: 96
  • Exemple.xlsm
    26.1 KB · Affichages: 93
  • Exemple.xlsm
    26.1 KB · Affichages: 102

Robert

XLDnaute Barbatruc
Repose en paix
Re : USF impression : selectionner et imprimer les onglets choisit par l'utilisateur

Bonjour Optimus, bonjour le forum,

Peut-être comme ça :
Code:
Private Sub cmb_imprimer_Click()
Dim os() As String 'déclare le tableau de variable os (Onglet Sélectionné)
Dim i As Byte 'déclare la variable i (Incrément)
Dim n As Byte 'déclare la variable n (Nombre de cases cochées)

For Each ctrl In Me.Controls 'boucle sur tous les contrôles de l'userform
    If TypeOf ctrl Is MSForms.CheckBox Then 'condition 1 : si le type de contrôle est une checkbox
        If ctrl = True Then 'condition 2 : si le contrôle est "coché"
            ReDim Preserve os(i) 'redimensionne le tableau de variables os
            os(i) = Right(ctrl.Name, 1) 'définit la variable indéxée os(i) du tableau os (le dernier caractère du nom du contrôle)
            i = i + 1 'incrémente i
        End If 'fin de la condition 2
    End If 'fin de la condition 1
Next ctrl 'prochain contrôle de la boucle
On Error Resume Next 'gestion des erreurs
n = Application.CountA(os) 'définit la variable n (génère une erreur si aucune case n'est cochée)
If Err <> 0 Then 'condition : si une ereur a été générée
    Err = 0 'annule l'erreur
    MsgBox "Aucun onglet n'a été sélectionné !" 'message
    Exit Sub 'sort de la procédure
End If 'fin de la condition
On Error GoTo 0 'annule la gestion des erreurs
Sheets(os).Select 'sélectionne les onglets du tableau de variable os
ActiveWindow.SelectedSheets.PrintOut Copies:=1
For i = LBound(os, 1) To UBound(os, 1) 'boucle sur les onglets sélectionnés
'enlève les pointiller des sauts de page
    Sheets(os(i)).DisplayAutomaticPageBreaks = False
Next i 'prochain onglet de la boucle
Sheets("General").Select 'Ça plante et je ne sais pas pourquoi
Unload Me
End Sub

Je ne comprends pas pourquoi après ça plante quand on veut sélectionner l'onglet General à la fin...
 

optimus38

XLDnaute Nouveau
Re : USF impression : selectionner et imprimer les onglets choisit par l'utilisateur

MERCI cela marche nickel !
J'ai juste pas encore tout compris aux fonctions utilisés ... Mais je vais m'y mettre.

Désolé pour les remerciements tardifs, mais j'ai été absent un petit moment !
 

degap05

XLDnaute Impliqué
Re : USF impression : selectionner et imprimer les onglets choisit par l'utilisateur

Bonjour,
Juste une modification pour sélectionner l'imprimante avec le bouton "Imprimer".
La feuille 1 est bien sélectionnée en fin de processus.
A+
 

Pièces jointes

  • imp.xls
    56 KB · Affichages: 80
  • imp.xls
    56 KB · Affichages: 84
  • imp.xls
    56 KB · Affichages: 88

luke3300

XLDnaute Impliqué
Re : USF impression : selectionner et imprimer les onglets choisit par l'utilisateur

Bonsoir le forum,

Dans le fichier de degap05 nommé imp.xls, serait-il possible d'inclure en regard des Feuil A, B et C dans le UerForm, un espace pour indiquer le nombre de copie que l'on désire?
Merci à tous et bonne soirée.
 

Yaloo

XLDnaute Barbatruc
Re : USF impression : selectionner et imprimer les onglets choisit par l'utilisateur

Bonsoir luke,

Avec un TextBox, tu auras le même nombre de copie pour tous tes onglets.

A+

Martial
 

Pièces jointes

  • imp.xls
    58.5 KB · Affichages: 46
  • imp.xls
    58.5 KB · Affichages: 62
  • imp.xls
    58.5 KB · Affichages: 60

Discussions similaires

Réponses
23
Affichages
2 K

Statistiques des forums

Discussions
312 435
Messages
2 088 396
Membres
103 838
dernier inscrit
noureddine