Problème VBA dans boucle dans userform
Résolu
pbvba
Messages postés
3
Statut
Membre
-
pbvba Messages postés 3 Statut Membre -
pbvba Messages postés 3 Statut Membre -
Bonjour,
Je n'arrive pas en vain à trouver la solution à mon problème, j'espère que vous pourrez m'aider....
Je m'explique. J'ai une procédure (qui fonctionne bien) dans laquelle je lance deux userform, pratiquement identiques (j'ai utilisé l'un pour creer l'autre) et quand je lance mon programme, il n'y a aucun message d'erreur mais pour l'un le résultat attendu fonctionne parfaitement et pas pour l'autre
voici le code de l'userform qui ne fonctione pas:
Private Sub CommandButton1_Click()
Dim i As Byte, j As Integer, val2 As Single
For i = 41 To 46 Step 1
For j = 1 To 4 Step 1
If Sheets("Données et calcul conso").Cells(i, 2).Value = userform_pompe.Controls("ComboBox" & j).Value Then
val2 = Sheets("Données et calcul conso").Cells(i, 3).Value
Sheets("Conso kwh").Cells(21 + j, 3).Value = val2
End If
Next
Next
Unload Me
End Sub
L'userform est composé de combobox qui prennent ces valeurs dans excel:
pompes Puissance
20 m3 38 kVA
40 m3 65 kVA
63 m3 90 kVA
je pense que le problème doit être de logique ou de connaissance de vba car j'ai bien verifié qu'il n'y avait pas d'erreur par rapport a l'autre userform qui fonctionne et également d'erreur d'inattention tel qu'une mauvaise référence...
Le but est de mettre la puissance et le type choisi dans l'userform dans une case excel...
Merci beaucoup si vous pouvez m'aider
Je n'arrive pas en vain à trouver la solution à mon problème, j'espère que vous pourrez m'aider....
Je m'explique. J'ai une procédure (qui fonctionne bien) dans laquelle je lance deux userform, pratiquement identiques (j'ai utilisé l'un pour creer l'autre) et quand je lance mon programme, il n'y a aucun message d'erreur mais pour l'un le résultat attendu fonctionne parfaitement et pas pour l'autre
voici le code de l'userform qui ne fonctione pas:
Private Sub CommandButton1_Click()
Dim i As Byte, j As Integer, val2 As Single
For i = 41 To 46 Step 1
For j = 1 To 4 Step 1
If Sheets("Données et calcul conso").Cells(i, 2).Value = userform_pompe.Controls("ComboBox" & j).Value Then
val2 = Sheets("Données et calcul conso").Cells(i, 3).Value
Sheets("Conso kwh").Cells(21 + j, 3).Value = val2
End If
Next
Next
Unload Me
End Sub
L'userform est composé de combobox qui prennent ces valeurs dans excel:
pompes Puissance
20 m3 38 kVA
40 m3 65 kVA
63 m3 90 kVA
je pense que le problème doit être de logique ou de connaissance de vba car j'ai bien verifié qu'il n'y avait pas d'erreur par rapport a l'autre userform qui fonctionne et également d'erreur d'inattention tel qu'une mauvaise référence...
Le but est de mettre la puissance et le type choisi dans l'userform dans une case excel...
Merci beaucoup si vous pouvez m'aider
4 réponses
-
Avec le fichier joint ("anonymisé") ce sera plus facile à comprendre.
Utilises https://www.cjoint.com/ puis met le lien dans ton prochain message -
-
la valeur des cellules est un nombre et celle des combobox est un texte.
Il ne sont donc pas égaux !
Une solution pas élégante, mais qui fonctionne :Private Sub CommandButton1_Click() Dim i As Byte, j As Integer, val As Single For i = 41 To 46 Step 1 'pour faire apparaitre dans feuille 'conso kwh' les puissance des pompes choisies For j = 1 To 4 Step 1 If Sheets("Données et calcul conso").Cells(i, 2).Formula = userform_pompe.Controls("ComboBox" & j).Value Then val = Sheets("Données et calcul conso").Cells(i, 3).Value Sheets("Conso kwh").Cells(21 + j, 3).Value = val End If Next Next For i = 41 To 46 Step 1 'pour faire apparaitre dans feuille 'conso kwh' le type des pompes choisies For j = 1 To 4 Step 1 If Sheets("Données et calcul conso").Cells(i, 2).Formula = userform_pompe.Controls("ComboBox" & j).Value Then val = Sheets("Données et calcul conso").Cells(i, 2).Value Sheets("Conso kwh").Cells(11 + j, 7).Value = val End If Next Next Unload Me End Sub
-