Problème VBA dans boucle dans userform

Résolu
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

4 réponses

  1. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 783
     
    Avec le fichier joint ("anonymisé") ce sera plus facile à comprendre.
    Utilises https://www.cjoint.com/ puis met le lien dans ton prochain message
    0
  2. pbvba Messages postés 3 Statut Membre
     
    Tout juste,
    Voici un lien:
    http://we.tl/CYVrwEeLaH
    0
  3. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 783
     
    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


    0
  4. pbvba Messages postés 3 Statut Membre
     
    ah trop bien ça marche nickel! merci beaucoup!! ;)
    0