Je suis à la recherche de la formule magique qui grâce à une macro, me permettrait d'effectuer l'action suivante :
J'ai un tableau avec des lignes de noms et des caractéristiques en colonne.
Pour chaque nom, les caractéristiques sont cochées dans les colonnes par un X.
Ce que j'aimerai, c'est que grâce à la macro, si un nom ne possède aucune caractéristique (ici encadrés en rouge), en gros si les colonnes sont vides, et bien la ligne soit masquée.
J'espère avoir été assez clair, merci beaucoup par avance pour votre aide.
Re : Si telle cellule est vide, alors masquer la ligne
Je suis désolé, j'aurai du effectivement joindre le fichier. Je vais tester chacune de vos solutions. En tous les cas merci beaucoup pour votre aide C'est super sympa.
Re : Si telle cellule est vide, alors masquer la ligne
Bonjour Feitan, le fil,
Feitan à dit:
je ne suis pas arrivé à reproduire ce que je voulais sur mon document Surement parce que je ne m'y connais pas bien !
Je voulais donc savoir comment appliquer la formule si :
- la première ligne du tableau est la ligne 10
- les colonnes à vérifier si vide ou non vont de E à L.
Je te remercie énormément par avance pour ton aide.
Bonne soirée
La macro "AfficherToutesLesLignes", reste la même (aucune modification) :
Code:
Sub AfficherToutesLesLignes()
' Macro réalisé par Excel-lent
Rows.EntireRow.Hidden = False
End Sub
Concernant la macro MasquerLignesVide, j'ai colorié les modifications :
Code:
Sub MasquerLignesVide()
' Macro réalisé par Excel-lent
For i = [A65536].End(xlUp).Row To [B][COLOR="Blue"]10[/COLOR][/B] Step -1
If Application.WorksheetFunction.CountBlank(Range(Cells(i, [COLOR="Red"][B]5[/B][/COLOR]), Cells(i, [COLOR="Gray"][B]12[/B][/COLOR]))) = [COLOR="Orange"][B]8[/B][/COLOR] Then
Rows(i).EntireRow.Hidden = True
End If
Next i
End Sub
Cells(numéro de la ligne, numéro de la colonne)
-> numéro de la ligne : facile, il suffit de regarder la feuille excel
-> numéro de la colonne : 1=A, 2=B, 3=C, ..., 26=Z, 27=AA, 28=AB, ...
8 : car le nombre de cellules comprises de E à L s'élèvent au nombre de 8.
La macro compte le nombre de cellules vide de E... à L..., s'il trouve 8 cela signifie que tu n'as rien saisie de E... à L..., donc il masque la ligne concernée.
Code:
[A65536].End(xlUp).Row
Cela signifie qu'Excel se met sur la cellule A65536, puis il remonte jusqu'à la première cellule saisie (qui correspond donc à la dernière ligne de ton tableau - sauf si tu as rajouté un autre tableau en dessous du tableau qui nous occupe!
PS : si ta colonne NOM est situé colonne C (au lieu de A), alors dans la macro ci-dessus, pense à remplacer :
par contre sur ton fichier, je ne trouve pas la USF qui gère le module, impossible de commander les macros grâce à des bouttons..
quelqu'un peut il éclairer ma lanterne??
Re : Si telle cellule est vide, alors masquer la ligne
Bonjour geuchou, Excel-lent, le fil,
Dans le fichier déposé par Excel-lent il n'y a pas besoin d'USF, il suffit de cliquer sur les boutons "Masquer" ou "Afficher".
Tu trouveras le code en faisant Alt F11 pour aller sous VBE, Affichage Explorateur de projets (au besoin) et tu cliques ou tu développes le petit plus (+) sur le nom de ton fichier, même chose sur Module pour finalement lire le code dans Module1.
Dans le fichier déposé par Excel-lent il n'y a pas besoin d'USF, il suffit de cliquer sur les boutons "Masquer" ou "Afficher".
Tu trouveras le code en faisant Alt F11 pour aller sous VBE, Affichage Explorateur de projets (au besoin) et tu cliques ou tu développes le petit plus (+) sur le nom de ton fichier, même chose sur Module pour finalement lire le code dans Module1.
je pense avoir compris, j'ai créé deux boutons formulaires que j'ai lié aux macros.. et cela fonctionne.Si c'est pas la bonne méthode, n'hésite pas me le dire.
Re : Si telle cellule est vide, alors masquer la ligne
Re gauchou,
Désolé d'avoir mutilé ton pseudo, je viens de voir à l'instant.
Si tu as compris comment lier une macro, peu importe que ce soit à partir d'un bouton Formulaire ou Contrôle ou même d'une photo ou d'une image, d'une Zone texte etc..., le principal c'est que cela fonctionne.
Re : Si telle cellule est vide, alors masquer la ligne
JE progresse, je progresse..et ce gràce à vous!! merci..
bon je fais mon bonheur de la compilation de macro et je me trouve confronté au pb suivant: ma macro fonctionne sur une feuille, et quand je veux la mettre sur une autre, j'ai le message: "variable non définie" et le petit "i" de ma macro s'allume en jaune, quelle est la raison et comment puis y remédier??
merci à tous., ci après ma macro:
Private Sub MDLShob_Click()
Application.ScreenUpdating = False
If MDLShob.Value = True Then
For i = [A65536].End(xlUp).Row To 9 Step -1
If Application.WorksheetFunction.CountBlank(Range(Cells(i, 3), Cells(i, 39))) = 37 Then
Rows(i).EntireRow.Hidden = True
End If
Next i
Re : Si telle cellule est vide, alors masquer la ligne
Bonjour à tous,
gauchou essauyer de déclarer la variable :
Private Sub MDLShob_Click() Dim i As Long Application.ScreenUpdating = False
'Etc...
Cordialement
Bonjour à tous,
gauchou essauyer de déclarer la variable :
Private Sub MDLShob_Click() Dim i As Long Application.ScreenUpdating = False
'Etc...
Cordialement
Salut Efgé,
je n'ai plus de message d'erreur, mais la macro ne fonctionne pas , pour info sup. j'ai une case à cocher sur chaque feuille, je leurs ai bien donné un nom différents..
à bientot.
Re : Si telle cellule est vide, alors masquer la ligne
Re
Je n'avais pas bien regarder mais il y a un problème: dans votre feuille vous devez mettre deux boutons (masquer et afficher). Puis le code à mettre "dans les boutons est :
Code:
Private Sub CommandButton1_Click()
Call a
End Sub
Pour masquer et
Code:
Private Sub CommandButton2_Click()
Call b
End Sub
Pour afficher.
Votre ligne
Private Sub MDLShob_Click()
ne correspond à rien (on ne click pas sur MDLShip mais sur un CommandButton).
Ensuite si les macros a ou b "plantent, vous pouvez laisser ma ligne (Dim I As Long)
Cordialement.