VBA_Cacher une ligne avec une variable

Fermé
anais - 3 janv. 2008 à 14:49
 néné - 3 janv. 2008 à 17:04
Bonjour,

Je suis en train de faire une macro attachee a un formulaire (liste deroulante a choix multiple).
Dans excel, j'ai des lignes qui contiennent en colonne C les noms de services de ma listbox (ceux qui apparaissent ds ma liste deroulante). Ce que je veux, c'est que les lignes contenant les noms de services qui ne sont pas selectionnees dans la liste deroulante du formulaire soient cachees.

Ma macro ressemble donc a ca:

Private Sub CommandButton2_Click()

Dim G, H As Integer

'H, la ligne du premier service, G les membres selectionnes

H = 43
'Netoyer les selections precedentes
Worksheets("REV ANALYSIS").Activate
Range("E43:H54").ClearContents


'assure que toutes les lignes ne sont pas cachees
Worksheets("REV ANALYSIS").Activate
Rows("43:54").EntireRow.Hidden = False

For G = 0 To 11
H = 43
If ListBox1.Selected(G) = True Then

If Worksheets("REV ANALYSIS").Cells(H, 3) <> ListBox1.List(G) Then

Rows("H:H").Hidden = True

End If

H = H + 1

End If
Next G

UserForm2.Hide

End Sub

Le bug intervient au niveau de la ligne "Rows("H:H").Hidden = True", il semble qu'il ne reconnaisse pas ma variable H.

Quelqu'un peut il m'aider, je suis vraiment bloquee......

Merci beaucoup,
anais

2 réponses

michel_m Messages postés 16602 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 313
3 janv. 2008 à 15:53
Bonjour

H est une variable, donc tu dois écrire
Rows(H) au lieu de rows("H:H")

au passage:

dim G, H as integer entraine G comme Variant...
Il faut écrire
Dim G as integer, H as integer
0
Bjr

voici ce qu'il faut mettre

H est une variable

Rows("" & H & ":" & H & "").Hidden = True
0