Code ne marche pas en la feuille est cachée

medbo Messages postés 570 Statut Membre -  
Patrice33740 Messages postés 8931 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
A voir également:

1 réponse

Patrice33740 Messages postés 8931 Date d'inscription   Statut Membre Dernière intervention   1 782
 
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