Code ne marche pas en la feuille est cachée

medbo Messages postés 570 Statut Membre -  
Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

je suis entrain d'utliser un code vba pour alimenter une combobox à partir d'une feuille excel. le code marche très pas, mas le soicis c'est que quand je cache la feuille en question, le combobox est vide, il y a le nombre exacte des élément en question mais en champ vide (par exemple 05 champs vide auquels correspondent les éléments du combobox quand la feuille n'est pas cachée

dites moi d'où vient le problème SVP

voici le code que j'utilise :

Dim Lig As Integer, DernLig As Integer
DernLig = Range("A65536").End(xlUp).Row
For Lig = 2 To DernLig
If Cells(Lig, 6) = "" Then
Combobox1.AddItem Cells(Lig, 1)
End If
Next Lig



c'est en s'entre-aidons que nous réussirons

1 réponse

  1. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
     
    Bonjour,

    Ton problème vient du fait que tu ne références pas la feuille sur laquelle tu travailles, ton code fait donc référence à la feuille active.
    Essaie ceci :

    Option Explicit
    Sub test()
      Dim wsh As Worksheet
      Dim Lig As Integer, DernLig As Integer
      Set wsh = Worksheets("Feuil1")
      DernLig = wsh.Range("A" & wsh.Rows.Count).End(xlUp).Row
      For Lig = 2 To DernLig
        If wsh.Cells(Lig, 6) = "" Then
          Combobox1.AddItem wsh.Cells(Lig, 1).Value
        End If
      Next Lig
    End Sub
    


    Note : Il vaut mieux utiliser :
    DernLig = wsh.Range("A" & wsh.Rows.Count).End(xlUp).Row
    plutot que :
    DernLig = wsh.Range("A65536").End(xlUp).Row
    car depuis d'Excel 2007 il n'y a plus 65 536 lignes mais 1 048 576 lignes par feuille et donc ce dernier code risque de ne pas fonctionner correctement.
    0