VBA_Cacher une ligne avec une variable

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
Configuration: Windows XP
Internet Explorer 6.0

2 réponses

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    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
    1. Bjr

      voici ce qu'il faut mettre

      H est une variable

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

      Discussions similaires

      Statut en ligne WhatsApp

      7 réponses