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 -
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
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
-
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).Rowplutot que :DernLig = wsh.Range("A65536").End(xlUp).Rowcar 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.