XL 2019 userform remplissage avec variables

RichardS

XLDnaute Junior
Bonjour à tous,

Je suis toujours dans mes UserForm même si grâce à vous j'avance à grands pas, je me pose encore des questions.
Si dans mon UserForm, j'ai le code suivant :
Private Sub UserForm_Initialize()
tablo = [OFFSET(Feuil1!A1,,,COUNTA(Feuil1!A:A),)] 'afficher à partir de la cellule A1 le nombre de lignes non vides consécutives de la colonne A
If IsArray(tablo) Then ListBox1.List = tablo
End Sub

Pour faire simple, nous allons oublier le Feuil1! ce qui nous donne :
COUNTA(A:A) détermine le nombre de cellules non vides consécutives de la colonne A
A1 détermine la cellule à partir de laquelle vont s'afficher mes n cellules de la colonne A

Si je remplace COUNT(A:A) par 20 comme suit :
tablo = [OFFSET(A1,,,20,)] cela fonctionne toujours mais si je le remplace par la variable N comme suit :
tablo = [OFFSET(A1,,,N,)] cela ne fonctionne plus.

Si je remplace A1 par cells(L,C) comme suit :
tablo = [OFFSET(cells(L,C),,,COUNTA(Feuil1!A:A),)] cela ne fonctionne pas

En d'autres termes, je souhaite, en fonction de différents critères, afficher dans un UserForme, un nombre variable de cellules à partir d'une cellule quelconque.

Est ce possible et si oui pouvez vous me dire comment ?
Merci d'avance pour vos solutions.
 

Dranreb

XLDnaute Barbatruc
Bonsoir.
tablo = Evaluate("OFFSET(A1,,," & N & ",)") je dirais, pour ne répondre qu'à votre question, mais
tablo = [A1].Resize(N).Value me semble quand même bien plus simple !
tablo = Cells(L, C).Resize(N).Value aussi !
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
re
bonsoir le fil
j'ajouterais que la formule abrégée Evaluate est traître car count(A:A) donne le nombre de cellule pleines
donc problème si il y a une(des) vide(s) entre 2 ben tout est faussé ;)
voila c'est ce que l'on appelle une belle coquille dans le jargon informatique
donc toutes les versions proposées ici sont hasardeuses

je dis ca je dis rien moi hein ;)
cette formule est bien uniquement pour des liste fixes ou l'on sait qu'il n'y aura jamais de vides
sinon range(cells(1) et cells(...).end(xlup)) restent la solution la plus propre
;)
 
Dernière édition:

RichardS

XLDnaute Junior
Bonjour,
Un grand merci.
Je dois partir rapidement mais j'essaierai cela cet après midi.
Pour le moment, la liste sur laquelle je travaille est continue mais effectivement le problème de la discontinuité d'une liste se serait posée à un moment ou à un autre. Merci d'anticiper.
A bientot
 

Discussions similaires

Réponses
2
Affichages
127

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 370
Messages
2 087 691
Membres
103 641
dernier inscrit
anouarkecita2