Microsoft 365 Userform comboboxes indexés

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

jp26200

XLDnaute Nouveau
Bonjour la communauté
J'ai cherché sur le forum mais je n'ai pas trouvé la solution
Ci joint mon problème
For i = 1 To 30
If comboxjp(i) <> "" Then
For j = 2 To 293
If comboxjp(i) = alimentation(j, 1) Then
For k = 1 To 8
'userform mes combobox s'appelle L1C1, L1C2, L2C3..... L comme ligne C comme colonne
.Range("L" & j & "C" & k).Select = alimentation(j, k).Value 'erreur de compilation référence incorrecte
Next k
Else
End If
Next j
Else
End If
Next i
Bonne journée à tous
 
Bonjour,
référence incorrecte: point devant Range
autres erreur: .select et manque ":" devant le "C"
VB:
Range("L" & j & ":C" & k) = alimentation(j, k).Value 'erreur de compilation référence incorrecte

Par contre Combobox indexees!
Normalement c'est:
Code:
If Me.Controls ("comboxjp" & i) <> "" Then
Ou alors y a un truc que je comprends pas
 
Bonjour,
référence incorrecte: point devant Range
autres erreur: .select et manque ":" devant le "C"
VB:
Range("L" & j & ":C" & k) = alimentation(j, k).Value 'erreur de compilation référence incorrecte

Par contre Combobox indexees!
Normalement c'est:
Code:
If Me.Controls ("comboxjp" & i) <> "" Then
Ou alors y a un truc que je comprends pas
Bonjour Oneida
Merci pour votre réponse mais elle me met toujours enerreur
Range("L" & j & ":C" & k) = alimentation(j, k).Value 'erreur de compilation référence incorrecte
 
Bonjour le Fil ,
je ne comprends pas le But de la procédure

"Range("L" & j & ":C" & k) = alimentation(j, k).Value" veut dire je remplis la plage "Range("L" & j & ":C" & k)" avec la valeur de "alimentation(j, k).Value" que contient "alimentation" , pourquoi "Range("L" & j & ":C" & k)" et pas "Range("C" & j & ": L" & k)"?
la définition de la plage "Range("L" & j & ":C" & k) ne me semble pas correcte !
Un petit fichier aiderait a une meilleure compréhension.
Bonne Journée
Jean marie
 
Bonjour le Fil ,
je ne comprends pas le But de la procédure

"Range("L" & j & ":C" & k) = alimentation(j, k).Value" veut dire je remplis la plage "Range("L" & j & ":C" & k)" avec la valeur de "alimentation(j, k).Value" que contient "alimentation" , pourquoi "Range("L" & j & ":C" & k)" et pas "Range("C" & j & ": L" & k)"?
la définition de la plage "Range("L" & j & ":C" & k) ne me semble pas correcte !
Un petit fichier aiderait a une meilleure compréhension.
Bonne Journée
Jean marie
Bonjour Jean Marie
Merci de consacrer de ton temps pour résoudre mon pb
J'ai un userform contenant 200 combobox que j'ai appelé L1C1,L1C2 .....L pour ligne C pour colonne
alimentation(j, k) contient que des valeurs numériques
Suivant les valeurs de j et k je veux nommer la variable LjCk correspondant aux noms de mes combobox
LjCk=alimentation(j, k).
J'ai mis ce code suivant mais le résultat pour j=1 et k=1 "L1C1" des guillemets en trop
toto = toto & "L" & j & "C" & k
Bonne Journée
Jean-Pierre
 
Utiliser Offset pour les indices basées 0 et Cells pour celles basées sur 1 ,
Référencer la première cellule de ton tableau
Code:
Range("A2").Cells(j,k) = alimentation(j, k).Value
Et bien sur il est préférable d’utiliser un tableau temporaire pour accélérer la copie
 
Re
Je ne comprends pas ceux ci:
VB:
Range("L" & j & ":C" & k)
Dans cette plage définie par L et C représente la plage par exemple la plage : Range("L1:C11") pour ligne = 1 et colonne =11
Je ne comprends pas .
Que tu ais
VB:
Controls("L" & ligne &"C" & Colonne) =alimentation(ligne,colonne)
'me parle plus .
Tu aurais :
toto = toto & Controls("L" & j & "C" & k).value
Jean marie
 
Dernière édition:
Bonsoir
Que sont et que contiennent les 30 Combobox "comboxjp"
VB:
For i = 1 To 30
If comboxjp(i) <> "" Then
Tu dis :"'userform mes combobox s'appelle L1C1, L1C2, L2C3..... L comme ligne C comme colonne"
ou y'a t'il une référence a ces Combobox dans ton Code ?
tu Boucles sur
Code:
For j = 2 To 293
If comboxjp(i) = alimentation(j, 1) Then
For k = 1 To 8
ce qui fait
soit 292 j et sur 8 k 292*8=2336 (alimentation(x, y))
un petit fichier serait le bien venu !
Bonne fin de jOurnée

Jean marie
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
178
Réponses
5
Affichages
241
Réponses
3
Affichages
194
Réponses
8
Affichages
470
Réponses
5
Affichages
183
Réponses
10
Affichages
281
Réponses
3
Affichages
665
Retour