Excel - conditionner impression tableau

Résolu
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

9 réponses

  1. 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
    1. Contributeur
      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
      1. 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
        1. Re,

          Quel est la colonne sensée à afficher les valeurs zéro qui conditionnera le masquage de la ligne
          0
          1. 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
            1. 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
              1. 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
                1. 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
                  1. 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