macro pour imprime feuille si cellule non vide

patbeu

XLDnaute Nouveau
Bonjour, et desoler de poste ca, mais j'ai rien trouver sur le forum, enfin si il y en a, mais pas tout a fait ce que j'ai besoin, et je ne suis pas assez callé pour la modifier a mon idée.
Je m'explique: j'ai un classeur avec les feuilles de 1 a 70 et E1 a E70 sur mes feuilles serie E j'ai deux pages, dans un premier temps, j'imprime les feuilles serie E que j'ai besoin en recto verso (page 1 et 2) et je voudrais cree une macro pour imprimer la premiere page de mes feuilles serie E dont la cellule G5 est non vide (la plage de cellules de ma premiere page est A1 à U132) je ne sais pas si mon explication est claire, je peux envoyer le fichier par mail (+/-6Mo) si quelqu'un peut m'aider....Merciiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii:eek:
 

Excel-lent

XLDnaute Barbatruc
Re : macro pour imprime feuille si cellule non vide

Bonsoir et bienvenu sur le forum Patbeu,

Ne sachant pas si :
-> ta mise en page est déjà ok! ou non
-> si tu n'as que ces 70 feuilles ou non
-> ...

J'ai fais une macro basique :

Code:
Sub ImpressionSousCondition()
' Macro enregistrée par Excel-lent
Dim i As Integer
   
    For i = 1 To Worksheets.Count
         If Sheets(i).Range("G5") <> "" Then [COLOR="Blue"][B]Sheets(i).PrintOut[/B][/COLOR]
    Next i

End Sub

La macro ci-dessus balaye toutes tes feuilles une par une (donc si tu as ces 70 feuilles plus 10 autres, il balayera également les 10 autres), elle vérifie si la cellule G5 est vide ou non. Lorsque G5 est non vide, il imprime la feuille.

Remplacer :
Code:
[COLOR="Blue"][B]Sheets(i).PrintOut[/B][/COLOR]
par :
Code:
[COLOR="Red"][B]Sheets("Channel").Range("A1 à U132").PrintOut
[/B][/COLOR]

Si ta mise en page est partiellement faite.

A adapter en fonction de tes besoins précis. Si tu n'arrives pas à adapter la macro, essaye de répondre à ma deuxième question et joindre ton fichier avec un seul de tes onglets (dépersonnalisé et nettoyé de l'inutile - ainsi cela rentrera dans les quotas ;) - sauf particularité, nous n'aurons pas besoin de plus pour te répondre).

Ainsi fais, le premier qui passe par là pourra te répondre plus précisément.

Bonne nuit
 
Dernière édition:

patbeu

XLDnaute Nouveau
Re : macro pour imprime feuille si cellule non vide

hello,
merci de ce debut de reponse, mais dans le classeur il y a 170 feuilles et je ne veux imprimer que la premiere page des feuilles E1 jusqu'a E70 ou la cel G5 est non vide
J'ai pas reussi a adapter la formule pour qu'elle ne prenne en compte que les feuilles E1 a E70. mais je vais encore voir avec ce qu'il y a sur le forum et essayer de compiler qlq chose de valable
Merci
 

Excel-lent

XLDnaute Barbatruc
Re : macro pour imprime feuille si cellule non vide

Bonsoir Patbeu,

Ne pouvant toujours pas tester mon code, je te laisse le soin de le faire.

Le voici ci-dessous modifié, pour tenir compte de tes nouveaux commentaires
Code:
Sub ImpressionSousCondition()
' Macro enregistrée par Excel-lent
Dim i As Integer
Dim k As Integer
   
    For i = 1 To Worksheets.Count
      For k = 1 To 70
          If Sheets(i).Name = "E" & k Then
              If Sheets(i).Range("G5") <> "" Then Sheets(i).PrintOut
          End If
      Next k
    Next i
End Sub

N'hésite pas à mettre tes commentaires et/ou dire si cela fonctionne ;)

Bon test
 
Dernière édition:

patbeu

XLDnaute Nouveau
Re : macro pour imprime feuille si cellule non vide

Hello Excel-lent et merci pour la rapidité....
merci, ca marche mais ca m'imprime les deux feuilles des pages, et lorsque je rajoute le code :
Sheets("Channel").Range("A1 à U132").PrintOut
a la place de
Sheets(i).PrintOut

il me bloque et me donne le code erreur 9 apparement il ne reconnais pas "channel" et dans l'aide, je n'ai rien trouvé la dessus.
si jamais tu mon fichier, envoie moi un mail Merci et je te repond avec le fichier joint merci
 
Dernière édition:

Excel-lent

XLDnaute Barbatruc
Re : macro pour imprime feuille si cellule non vide

Bonsoir,

ENLEVE vite ton adresse e-mail!!!!! Si tu veux la donner, ne jamais le faire sur un forum!!!!! Le faire que par MP (= message personnel = messagerie propre au forum)

Channel est le nom de l'onglet. Donc comme tu n'as aucun onglet s'appelant Channel, ça bug!

Voici comment il fallait adapté la macro que je t'ai transmise
Code:
Sub ImpressionSousCondition()
' Macro enregistrée par Excel-lent
Dim i As Integer
Dim k As Integer
   
    For i = 1 To Worksheets.Count
      For k = 1 To 70
          If Sheets(i).Name = "E" & k Then
              If Sheets(i).Range("G5") <> "" Then Sheets(i)[COLOR="Blue"][B].Range("A1:U132").[/B][/COLOR]PrintOut
          End If
      Next k
    Next i
End Sub

Bonne soirée
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 225
Messages
2 086 411
Membres
103 201
dernier inscrit
centrale vet