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
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.
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
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
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
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