Bonjour
Dans le code suivant, le résultat de listindex est toujours 1, donc la comparaison est toujours fausse, l'objectif est de vérifier si le code bailleur n'a pas été modifier avant l'enregistrement de modification
dans Initialisation userform
Dans combobox3 change()
Combobox1 correspond au "code bailleur" , on ne l'initialise pas, il prend la valeur du choix dans combobox3 "bailleur",cela fonctionne bien.
Je commets certainement une erreur de raisonnement, mais je ne trouve pas.
Dans lig = Me.ComboBox3.ListIndex + 2 je veux récupérer le numéro de liste d'enregistrement de combobox3 (suite à la sélection d'un bailleur) auquel je rajoute 2 pour retrouver mon numéro de ligne dans ma feuille (tableau avec en tête)
Dans le code suivant, le résultat de listindex est toujours 1, donc la comparaison est toujours fausse, l'objectif est de vérifier si le code bailleur n'a pas été modifier avant l'enregistrement de modification
dans Initialisation userform
VB:
dim Var2 As Variant
With ComboBox3
For Var2 = 2 To Ws.Range("C" & Rows.Count).End(xlUp).Row
.AddItem Ws.Range("C" & Var2) & " - " & Ws.Range("D" & Var2)
Next Var2
End With
Dans combobox3 change()
Code:
'Controle des champs, Si le numéro de bailleur Correspond au locataire
Dim Ctrl As Range, Ctrl4 As Variant, lig As Long
Ctrl = ComboBox1.Value
MsgBox (Ctrl)
lig = Me.ComboBox3.ListIndex + 2
MsgBox (lig)
Ctrl4 = Cells(lig, 1).Value
MsgBox (Ctrl4)
If Ctrl <> Ctrl4 Then
MsgBox ("Code bailleur ne correspond pas au bailleur"), vbExclamation, "Erreur de saisie"
Exit Sub
End If
Combobox1 correspond au "code bailleur" , on ne l'initialise pas, il prend la valeur du choix dans combobox3 "bailleur",cela fonctionne bien.
Je commets certainement une erreur de raisonnement, mais je ne trouve pas.
Dans lig = Me.ComboBox3.ListIndex + 2 je veux récupérer le numéro de liste d'enregistrement de combobox3 (suite à la sélection d'un bailleur) auquel je rajoute 2 pour retrouver mon numéro de ligne dans ma feuille (tableau avec en tête)