impression via userforme

pougnarette

XLDnaute Nouveau
bonjour a tous
certain d'entre vous n'ont aidé sur un projet que je voudrais améliorer
j'ouvre un userforme et j'ai la liste des feuilles de mon classeur
je coche pour imprimer ...... ça marche
dans la liste des feuilles , il y en a certaines que je ne vais jamais imprimer
je voudrais donc qu'elles n'apparaissent pas pour alléger mon document
par exemple ne pas faire apparaite les feuilles 3 . 6 .8
merci à vous
pougnarette
 

Pièces jointes

  • impression via useform.xlsm
    628 KB · Affichages: 40

phlaurent55

Nous a quittés en 2020
Repose en paix
Bonjour pougnarette,

remplace ton code par celui-ci (les ajouts sont en bleu)

Private Sub UserForm_Initialize()
Dim FFF(), i&

ReDim FFF(0 To 0): FFF(0) = ActiveSheet.Name
For i = 1 To Sheets.Count
If Sheets(i).Name <> FFF(0) Then
If Sheets(i).Name = "Feuil3" Or Sheets(i).Name = "Feuil6" Or Sheets(i).Name = "Feuil8" Then GoTo suite
ReDim Preserve FFF(0 To UBound(FFF) + 1)
FFF(UBound(FFF)) = Sheets(i).Name
suite:
End If
Next i
ListBox1.List = FFF
ListBox1.Selected(0) = True
End Sub

à+
Philippe
 

pilou76

XLDnaute Occasionnel
Bonjour,
Pour ne pas faire apparaitre feuil 3, 6 & 8
Private Sub UserForm_Initialize()
Dim FFF(), i&
ReDim FFF(0 To 0): FFF(0) = ActiveSheet.Name
For i = 1 To Sheets.Count
If Sheets(i).Name <> FFF(0) And Sheets(i).Name <> "Feuil3" And Sheets(i).Name <> "Feuil6" And Sheets(i).Name <> "Feuil8" Then
ReDim Preserve FFF(0 To UBound(FFF) + 1)
FFF(UBound(FFF)) = Sheets(i).Name
End If
Next i
ListBox1.List = FFF
ListBox1.Selected(0) = True
End Sub
 

pougnarette

XLDnaute Nouveau
Bonjour pougnarette,

remplace ton code par celui-ci (les ajouts sont en bleu)

Private Sub UserForm_Initialize()
Dim FFF(), i&

ReDim FFF(0 To 0): FFF(0) = ActiveSheet.Name
For i = 1 To Sheets.Count
If Sheets(i).Name <> FFF(0) Then
If Sheets(i).Name = "Feuil3" Or Sheets(i).Name = "Feuil6" Or Sheets(i).Name = "Feuil8" Then GoTo suite
ReDim Preserve FFF(0 To UBound(FFF) + 1)
FFF(UBound(FFF)) = Sheets(i).Name
suite:
End If
Next i
ListBox1.List = FFF
ListBox1.Selected(0) = True
End Sub

à+
Philippe
 

pougnarette

XLDnaute Nouveau
bonjour
merci pour votre réponse aussi rapide
ça fonctionne très bien
j'ai toutefois 2 autres questions qui sont liées à ce que vous venez de poster :
quand je crée le liste des feuilles qui ne s'afficheront pas , je suis bloque car j'arrive en bout de ligne ( il y a beaucoup de feuilles ) avez vous la solution pour continuer à écrire
ensuite sur la version précédente lorsque j'ouvrais le userforme la première case ( impression de marché ) était d'office cochée
ce n'est plus le cas
peut on rectifier ça ?
merci d'avance
pougnarette
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re-Bonjour

quand je crée le liste des feuilles qui ne s'afficheront pas , je suis bloque car j'arrive en bout de ligne ( il y a beaucoup de feuilles ) avez vous la solution pour continuer à écrire

Pour répondre à la demande et simplifier au maximum, idéalement il faut que toutes les feuilles que l'on ne désire pas imprimer aient un point commun facilement reconnaissable


J'ai donc fait précéder les nom de la feuille par un tiret bas pour les feuilles 3 6 8 9 10


le test se fait dans le code avec la ligne:


en ce qui concerne la ligne cochée (ou pas) il faut modifier la dernière ligne du code
ListBox1.Selected(0) = False





à+
Philippe
 

Pièces jointes

  • 111.xlsm
    624.9 KB · Affichages: 39
Dernière édition:

jmcr

XLDnaute Occasionnel
bonsoir le forum
je viens vous embêter dans votre conversation et je vous prie de m'excusé de se moment
mais voila je recherche la même chose mais pour Excel 2003 car ca fonctionne pas pour moi toujours le même bug une personne peut m'aidé svp
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re-Bonjour

en simplifiant au maximum avec ce code:

Code:
Private Sub UserForm_Initialize()
Dim i
For i = 1 To Sheets.Count
If Left(Sheets(i).Name, 1) <> "_" Then ListBox1.AddItem Sheets(i).Name
Next i
End Sub

à+
Philippe
 

Pièces jointes

  • 111.xlsm
    624.6 KB · Affichages: 44

pougnarette

XLDnaute Nouveau
Re-Bonjour



Pour répondre à la demande et simplifier au maximum, idéalement il faut que toutes les feuilles que l'on ne désire pas imprimer aient un point commun facilement reconnaissable


J'ai donc fait précéder les nom de la feuille par un tiret bas pour les feuilles 3 6 8 9 10


le test se fait dans le code avec la ligne:


en ce qui concerne la ligne cochée (ou pas) il faut modifier la dernière ligne du code
ListBox1.Selected(0) = False


bonjour
ce que vous avez envoyé me semble fonctionner mais j'ai un nouveau problème
j'avais testé mon ficher avant de l'envoyer et il fonctionnait
il ne fonctionne plus ; ERREUR n°5
Savez vous quel est le problème
cordialement
pougnarette



à+
Philippe
 

Si...

XLDnaute Barbatruc
Bonjour

Je ne sais pas si tu ne veux sauvegarder en PDF qu'une feuille (comme dans le fichier joint) ou celles cochées dans la liste (comme ma … pomme te l'avait déjà proposé).


Dans le premier cas, il suffit d'un bouton pour le faire dans cet onglet et ne garder le formulaire que pour l'impression.

Dans le second cas, pour limiter le nombre d'items, on écarte seulement ceux qui ont un nom rouge.

Dans le fichier joint, je supprime les items cochés dans chacune des listes (maintenant il y en a 2) afin d'éviter des répétitions avec le message de confirmation (quand c'est fait, c'est fait !) et les onglets correspondants deviennent rouges (pour éviter ceci à la réouverture du formulaire).

Jmcr : je t'ai déjà donné l'information ! Il faut lire les réponses qui te sont données en évitant (tout comme pougnarette) de multiplier les messages.

Nota : les images alourdissent le fichier
 

Pièces jointes

  • Onglets_ Imprimer ou PDF 3.xlsm
    670.6 KB · Affichages: 47

pougnarette

XLDnaute Nouveau
Bonsoir
La solution qui n'avait été proposée permettant de cocher plusieurs case fonctionne très bien
Idem pour la solution ne pas faire apparaître certaines feuilles
J'essayerai la solution de la couleur de l' onglet
Mon problème aujourd'hui est que ce qui fonctionnait hier ne fonctionne plus aujourd'hui
J'ai une Erreur d'execution 5: Argument ou appel de procédure
J'ai du faire une bêtise
Ça fonctionne sur un autre ordinateur
Desolé d'avoir posé beaucoup de questions en peut de temps
Merci pour vos réponses
Pougnarette
 

Discussions similaires

Statistiques des forums

Discussions
312 273
Messages
2 086 701
Membres
103 376
dernier inscrit
marionromeo