Afficher / masquer ligne spécifique
Bonjour,
Je viens car après quelques temps à buter sur un trucs je ne trouve pas la solution et je sais que vous êtes bien meilleur que moi sur le sujet des macro.
Alors je cherche à faire en sorte que dans une plage de cellule donnée (appelons la "Tableau1") on puisse (en cliquant sur un bouton) masquer toute les lignes où la cellule de la colonne E est vide. J'ai repris une macro qui avait le même but dans un autre fichier mais cela ne marche pas.
Et ensuite de le même façon en cliquant sur un bouton, faire réafficher toutes les ligne de la plage donnée.
Voici le macro que j'ai inséré mais il me parle de faire un débogage mais bon je suis débutant de chez débutant dans la VBA donc je ne vois pas forcement l'erreur qu'il faut corrigé.
Sub Macro4()
'
' Macro4 Macro
'
'
ActiveSheet.ListObjects("Tableau1").Range.AutoFilter Field:=2, Criteria1:= _
"<>"
End Sub
Sub Macro6()
'
' Macro6 Macro
'
'
ActiveSheet.ListObjects("Tableau1").Range.AutoFilter Field:=2
End Sub
Merci par avance pour votre aide
Bonjour,
Le code marche très bien :
Sub Macro4()
'pour ne pas avoir les cellules vide
ActiveSheet.ListObjects("Tableau1").Range.AutoFilter 2, "<>"
'pour avoir les cellule vides
'ActiveSheet.ListObjects("Tableau1").Range.AutoFilter 2, "="
End Sub
mais ton tableau commence bien en colonne D ? Car si ce n'est pas le cas, il te faut adapter le numéro de champ exemple, si ton tableau commence en colonne A, le numéro de champ sera 5 pour la colonne E
J'ai bien ma colonne E qui est le 2 ème colonne de ma sélection mais il me mets
Erreur d’exécution '9':
L'indice n'appartient pas à la selection
Et c'est pareil si je selection à partir de la colonne A et que je change le 2 en 5
Et pendant que j'y suis, petite question.
Il y a 3 mois environ j'ai demander de l'aide pour une création de macro de limitation de caractère et quelqu'un m'a sortie exactement ce que je voulais cependant depuis quelques jours, il ne fonctionne plus. j'ai donc essayer de l'intégré sur un nouveau ficher en voulant l'appliquer au même cellule mais rien n'y fait ça ne marche pas.
Si vous avez une explication pour cela ?
Private Sub Limite()
Const Lmax As Integer = 60
Dim tx$, h%, isect As Range, c As Range
Set isect = Intersect(Range("F9:F38"), Target)
If Not isect Is Nothing Then
For Each c In isect
tx = c.Value
If Len(tx) > Lmax Then
tx = Left(tx, Lmax + 1)
If Mid(tx, Len(tx), 1) = " " Then
tx = RTrim(tx)
Else
h = InStrRev(tx, " ") - 1
tx = Left(tx, h)
End If
c.Value = tx
End If
Next c
End If
End Sub