Excel - conditionner impression tableau

Résolu/Fermé
Michel - 30 juin 2010 à 21:04
 Michel - 5 juil. 2010 à 08:37
Bonjour,

Sous excel 2003 je voudrais masquer une ligne, seulement à l'impression, quand une cellule donnée dans cette même ligne a la valeur 0 par exemple... (sans macro)

Pouvez vous m'aider? Merci beaucoup pour v/ aide

A voir également:

9 réponses

Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
30 juin 2010 à 21:57
Salut,

Non pas sans macro ou alors simple mise en forme conditionnelle pour coloriser la ligne avec la valeur zéro et manuellement pour masquer la ligne et imprimer
0
Raymond PENTIER Messages postés 58395 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 25 avril 2024 17 096
1 juil. 2010 à 03:26
Bonjour Michel.

L'ordinateur envoie à l'impression ce que tu as réalisé à l'écran.
Tu dois donc obligatoirement d'abord masquer la ligne avec valeur zéro et ensuite lancer l'impression.
0
merci...
je m'en doutais que cela ne serait pas possible... Par contre je suis completement nul en macro, je n'en ai jamais touché à ça... comment m'y prendre svp?
0
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
1 juil. 2010 à 18:52
Re,

Quel est la colonne sensée à afficher les valeurs zéro qui conditionnera le masquage de la ligne
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Disons un tableau de A1 à M50 par exemple... Je voudrais que sur tout le tableau, les lignes dont les cellules de la colonne H, par exemple, aient la valeur "0", deviennent masquées, à l'impression mais aussi à l'écran finalement...

Merci beaucoup...

PS: Je présume, excusez l'ignorance, que si les dites cellules prennent une valeur autre que "0", à ce moment la ligne correspondante s'affiche, se "démasque"... C'est bien comme ça que cela fonctionnera?
0
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
1 juil. 2010 à 21:35
Re,

Ca ne va pas être facile, enfin on va essayer.
Clic droit sur l'onglet de ta feuille et clic sur visualiser le code
La feuille qui s'ouvre est le visual basic d'excel, fais Insertion/Module et colle dans la feuille blanche ces deux codes, un pour masquer lis lignes dont les cellules en colonne H sont vide ou valeur 0, le deuxième pour afficher les lignes masquées

Sub Masque_Lignes_Vides()
For i = 1 To 50
If Cells(i, 8) = 0 Then
Rows(i & ":" & i).Select
Selection.EntireRow.Hidden = True
End If
Next i
End Sub

Sub Affiche_Lignes_Vides()
Application.ScreenUpdating = False
Range("H1:H50").Select
Selection.EntireRow.Hidden = False
Application.ScreenUpdating = True
End Sub

Pour revenir sur ta feuille de calcul dans la barre d'outils a gauche tu trouveras l'icone Excel. Clic sur Affichage/Barre d'Outils et Formulaire sélectionne le bouton et dessine le sur ta feuille, normalement Excel te proposera de l'affecter à une macro sinon clic droit sur le bouton et Affecter à une macro sélectionne Masque_Lignes_Vides
Recommence pour le deuxième bouton et affecte le à ce code
Affiche_Lignes_Vides

Tu peux également modifier le texte du bouton clic droit sur le bouton, mets le texte en surbrillance et saisi Maquer sur celui qui masque les lignes et Afficher sur l'autre
0
Merci Mike, je commence à voir quelque chose de précis... J'ai quelques soucis pour "affecter bouton" mais bon, le pb n'est pas encore à ce stade...

En suivant vos instructions cela fonctionne mais ce n'est pas encore le résultat qu'on attendait... Cela me masque pas mal de lignes dont les cellules ont une valeur autre que "0", positive ou negative, et ce n'etait pas le but justement... Et puis cela joue (zone grisée du tableau) sur 89 lignes alors que c'etait prévu que pour 50...

Bon, sans vouloir abuser de v/ temps, là j'ai le vrai tableau en vue:

Il va de A1 à Q90;

Il me faudrais que seulement les lignes de 9 à 19, 21 à 44, 47 à 58, 60 à 72 et 83 à 88 deviennent masquées si les cellules correspondantes de la colonne P ont la valeur "0" (zéro, pas vides)...

Desolé si cela devient trop complexe... Vous m'avez déjá aidé un peu car je n'y comprends presque rien en macros...

Bonne journée.

PS: pour la question de "boutons" on verra par la suite si cela ne vous dérange pas...
0
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
Modifié par Mike-31 le 2/07/2010 à 10:57
Re,

Reprend mon post précédent pour ouvrir le visual basic, dans le module que tu as créé, efface l'ancien code et colles ces deux. il est possible de les écrire différemment mais pour que tu puisses les interpréter facilement j'ai choisi cette formule.
Pour les affecter à un bouton reprend également mon post et si tu n'y arrive pas je te ferai un petit montage

Sub Masque_Lignes_Vides()
For i = 9 To 19
If Cells(i, 16) = 0 Then
Rows(i & ":" & i).Select
Selection.EntireRow.Hidden = True
End If
Next i
For ii = 21 To 44
If Cells(ii, 16) = 0 Then
Rows(ii & ":" & ii).Select
Selection.EntireRow.Hidden = True
End If
Next ii
For y = 47 To 58
If Cells(y, 16) = 0 Then
Rows(y & ":" & y).Select
Selection.EntireRow.Hidden = True
End If
Next y
For yy = 60 To 72
If Cells(yy, 16) = 0 Then
Rows(yy & ":" & yy).Select
Selection.EntireRow.Hidden = True
End If
Next yy
For x = 83 To 88
If Cells(x, 16) = 0 Then
Rows(x & ":" & x).Select
Selection.EntireRow.Hidden = True
End If
Next x
End Sub


Sub Affiche_Lignes_Vides()
Range("P9:P90").Select
Selection.EntireRow.Hidden = False
End Sub

A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
0
Bjr.

Je commence à comprendre, à interpreter ça...

Toutefois dans le cas présent, en suivant vos instructions, toutes les lignes de 9 à 79 se masquent! Celles prévues et celles non prévus dans la macro, celles dont la vaelur est zéro et celles dont la valeur est differente de "0", positive ou négative...

Bon là je pars quelques temps, je vais laisser ça pour une autre occasion...

Merci beaucoup et bonnes vacances à tous, si c'est le cas...
0