Macro excel : masquer des lignes quand la formule de l'une des deux colonnes est

Signaler
Messages postés
4
Date d'inscription
mercredi 7 septembre 2011
Statut
Membre
Dernière intervention
7 septembre 2011
-
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
-
Bonjour,

J'ai un problème pour une macro...

J'ai un tableau à deux colonnes, les lignes sont remplies grâce à des formules d'une autre feuille de calcul. Dans la colonne B, les cellules sont remplies si la formule le demande.

Je souhaite créer une macro pour masquer les lignes pour lesquelles la colonne B est vide et je n'y arrive pas.

On m'a conseillé de faire une macro par enregistrement en filtrant sur les colonnes non vides, or, comme il y a des formules, il n'y a pas de colonne vide pour excel............

Par ailleurs, c'est dans un range de données de B10 à C94.

Merci beaucoup par avance pour votre aide !!!

Véronique

6 réponses

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
Bonjour,
Tu développes sous VBA et non sous VB6 (la présente section). Fais-y attention la prochaine fois, s'il te plait.
Je souhaite créer une macro pour masquer les lignes pour lesquelles la colonne B est vide et je n'y arrive pas.

Il est important que tu définisses avec précision ce que tu entends par "vide".
Ce sera simple (quel que soit le cas défini par ta réponse) dès lors que tu auras répondu sur ce point.


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
4
Date d'inscription
mercredi 7 septembre 2011
Statut
Membre
Dernière intervention
7 septembre 2011

Bonjour,

En fait, la cellule n'est pas vide car elle contient une formule. Si la formule est validée (un score supérieur à un certain seuil), du texte est "rapatrié" dans la cellule. Sinon, la cellule est "blanche" mais contient la formule...

Est-ce que cela est plus précis ?

Merci !!
Messages postés
4
Date d'inscription
mercredi 7 septembre 2011
Statut
Membre
Dernière intervention
7 septembre 2011

Et pardon pour VB6, je n'y connais absolument rien donc suis totalement perdue.....
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
tu peux alors faire ainsi ===>>
exemple pour la plage B1:B10
Private Sub CommandButton1_Click()
  Dim plage As Range
  For i = 1 To 10
    If Range("B" & i) = "" Then
      If plage Is Nothing Then
        Set plage = Range("B" & i)
      Else
        Set plage = Union(plage, Range("B" & i))
      End If
    End If
  Next
  If Not plage Is Nothing Then
    plage.EntireRow.Hidden = True
  End If
  Set plage = Nothing
End Sub




____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
4
Date d'inscription
mercredi 7 septembre 2011
Statut
Membre
Dernière intervention
7 septembre 2011

Merci mais faut-il juste ajouter cela dans visual basic ? ou y'a-t-il un bouton (à quoi correspond "Command button") à créer ?

Merci !
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
Ca, alors !
Je m'inquiète pour toi, là
Dans mon exemple, j'ai mis des instructions dans un bouton de commande.
Toi, tu mets ces instructions où tu le souhaites, y compris dans une macro.
Mais tu auras sans doute intérêt à modifier partout Range("B" & i) par l'ajout du nom de la feuille ! par exemple :
Worksheets("mafeuille_toto").Range("B" & i)

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient