VBA excel help svp
Résolu
Bonjour,
Je suis débutant en VBA et je souhaiterai effectuer une procédure qui fasse grosso modo:
Range("C3").activate
if activerow (activecell.row?) = *range("C2")* then donothing else row hide
activecell.offset(0,1)
if activerow (activecell.row?) = *range("C2")* then donothing else row hide
activecell.offset(0,1)
...
et ainsi de suite jusqu'à ce qu'il n'y ai plus rien dans les lignes...
Pour résumer, qui cache toute les lignes qui ne contiennent pas ce que l'on rentre dans la cellule C2 et qui ne sont pas vides
Merci d'avance de votre aide
Je suis débutant en VBA et je souhaiterai effectuer une procédure qui fasse grosso modo:
Range("C3").activate
if activerow (activecell.row?) = *range("C2")* then donothing else row hide
activecell.offset(0,1)
if activerow (activecell.row?) = *range("C2")* then donothing else row hide
activecell.offset(0,1)
...
et ainsi de suite jusqu'à ce qu'il n'y ai plus rien dans les lignes...
Pour résumer, qui cache toute les lignes qui ne contiennent pas ce que l'on rentre dans la cellule C2 et qui ne sont pas vides
Merci d'avance de votre aide
Configuration: Windows XP Internet Explorer 6.0
7 réponses
-
Contributeurbonjour
Tu peux remplacer Cells(i, j).EntireRow.Hidden = True
par
Rows(i).Hidden = True
-
Malheureusement ca ne marche pas...
Il semble y avoir un problème avec la ligne
Cells(i, j).EntireRow.Hidden = True
... je continue à chercher de mon côté mais compte sur vous pour m'aider.
MC's a gK -
ModérateurSalut,
Ce code masque toutes les lignes ou l'on ne trouve pas la valeur de la cellule C2 (y compris les lignes vides) :
Dim NBlignes As Integer, NBCol As Integer, i As Integer, j As Integer, cpt As Integer
cpt = 0
NBlignes = ActiveSheet.UsedRange.Rows.Count + ActiveSheet.UsedRange.Row - 1
NBCol = ActiveSheet.UsedRange.Columns.Count
For i = 3 To NBlignes
For j = 1 To NBCol
If Cells(i, j).Value = Range("C2").Value Then
cpt = 1
End If
Next j
If cpt = 0 Then
Cells(i, j).EntireRow.Hidden = True
End If
cpt = 0
Next i
-
La valeur C2 peut-être n'importe ou dans chaque ligne testé...
Merci de ton aide Pijaku, -
ModérateurOn ne doit tester que la colonne C ou la valeur contenue dans "C2" peut être partout dans ton tableau?
-
ContributeurSalut Pijaku
bravo, Champollion ! ;-)
Je te laisse le bébé -
ContributeurDemande incompréhensible .....
en plus:
*range("C2")* then donothing else row hide : Patois VBA maison ?
---
ModérateurSalut michel,
pour résumer, qui cache toute les lignes qui ne contiennent pas ce que l'on rentre dans la cellule C2 et qui ne sont pas vides
Donc si j'ai bien compris,
1- test sur la ligne pour savoir si on retrouve le contenu de C2 dans une cellule
2- si oui : on ne fait rien
3- si non : si elle est "non vide" : on masque la ligne
-