Problème erreur 91 variable non définie alors que la proc a fonctionner

Bonjour le forum,

J'ai un petit problème avec une procédure qui fonctionnait auparavant. Je pense ne rien avoir modifié à celle-ci.

Voici la procédure en question et le message d'erreur. La ligne en question est : Nr_Lign_Index = Lign_Index.Row vers la fin.

2021 04 02 17 29 22 microsoft visual basic
'------------------------------------------------------------------------------
'Lorsqu'on sélectionne un bien dans la liste, affiche les données déja encodées
'------------------------------------------------------------------------------
Private Sub ComboBox1_Change()
    Dim lig&, Nr_Lign_Index As Integer, Lign_Index As Variant
    If Me.ComboBox1.ListIndex = -1 Then: Exit Sub
    Call EffaceTextBox
    lig = 1
    With Sheets("Biens")
        For i = 3 To .[A65000].End(xlUp).Row
            If .Cells(i, "A") = Me.ComboBox1.Value Then
                Me.Controls("TextBox" & lig) = .Cells(i, "b")
                Me.Controls("TextBox" & lig * 10) = .Cells(i, "K")
                Me.Controls("TextBox" & lig * 10 + 1) = .Cells(i, "M")
                Me.Controls("Textbox" & lig * 10 + 5) = .Cells(i, 19) * 12
                Me.Controls("Textbox" & lig * 10 + 7) = .Cells(i, 10)
                If .Cells(i, 10) = "" Then
                    Me.Controls("Textbox" & lig) = ""
                    Me.Controls("Textbox" & lig).BackColor = RGB(173, 186, 205)
                    Me.Controls("Textbox" & lig * 10 + 7).BackColor = RGB(173, 186, 205)
                    If Me.Controls("Textbox" & lig) = "" And Me.Controls("Textbox" & lig * 10) > 0 Or Me.Controls("Textbox" & lig * 10 + 1) > 0 Then
                        MsgBox ("Veuillez revoir la répartition des charges !" & Chr(10) & Me.Controls("Textbox" & lig).Value)
                        Exit Sub
                    End If
                End If
                TextBox200.Value = .Cells(i, "L")
                TextBox201.Value = .Cells(i, "N")
                lig = lig + 1
            End If
        Next

        For i = 1 To 6 '
            Me.Controls("Textbox" & i).Locked = True    'Bloque les intitulés d'appartements
        Next i
        For i = 1 To 6              'Bloque les cases non utilisees et les met en gris
            Me.Controls("Textbox" & i * 10 + 2).Locked = True
            Me.Controls("Textbox" & i * 10 + 3).Locked = True
            Me.Controls("Textbox" & i * 10 + 5).Locked = True
            Me.Controls("Textbox" & i * 10 + 6).Locked = True
            Me.Controls("Textbox" & i * 10 + 8).Locked = True
            If Me.Controls("Textbox" & i) = "" Then
                Me.Controls("Textbox" & i).BackColor = RGB(173, 186, 205)
                Me.Controls("Textbox" & i * 10 + 2).BackColor = RGB(173, 186, 205)
                Me.Controls("Textbox" & i * 10 + 3).BackColor = RGB(173, 186, 205)
                Me.Controls("Textbox" & i * 10 + 4).BackColor = RGB(173, 186, 205)
                Me.Controls("Textbox" & i * 10 + 4).Locked = True
                Me.Controls("Textbox" & i * 10 + 5).BackColor = RGB(173, 186, 205)
                Me.Controls("Textbox" & i * 10 + 6).BackColor = RGB(173, 186, 205)
                Me.Controls("Textbox" & i * 10 + 6).Locked = True
                Me.Controls("Textbox" & i * 10 + 7).BackColor = RGB(173, 186, 205)
                Me.Controls("Textbox" & i * 10 + 7).Locked = True
            End If
        Next i
    End With
    With Sheets("Indexations")
        For i = 1 To 6
            If Me.Controls("TextBox" & i * 10 + 7) = "" Then
                Me.Controls("Textbox" & i * 10 + 8) = ""
            Else
                Ref_Cherchee = Me.Controls("TextBox" & i * 10 + 7)
                Set Lign_Index = .Range("B1:B500").Find(Ref_Cherchee, LookIn:=xlValues)

                Nr_Lign_Index = Lign_Index.Row

                DerColIndex = .Cells(1, Columns.Count).End(xlToLeft).Column
                Me.Controls("Textbox" & i * 10 + 8) = .Cells(Nr_Lign_Index + 4, DerColIndex).Value
            End If
        Next i
    End With
End Sub

Quelqu'un aurait-il idée de se qui se passe?

Merci d'avance,

Donpopo

bonjour,

 Set Lign_Index = .Range("B1:B500").Find(Ref_Cherchee, LookIn:=xlValues)

tu devrais vérifier que lign_index n'est pas nothing (cas où find n'a rien trouvé)

Bonsoir,

Alternative à la proposition de H2so4 en remplaçant cette partie de code

Ref_Cherchee = Me.Controls("TextBox" & i * 10 + 7)
On Error Resume Next
Lign_Index = .Range("B1:B500").Find(Ref_Cherchee, LookIn:=xlValues).Row
If Lign_Index > 0 Then
   DerColIndex = .Cells(1, Columns.Count).End(xlToLeft).Column
   Me.Controls("Textbox" & i * 10 + 8) = .Cells(Lign_Index + 4, DerColIndex).Value
End If

Cordialement

bonjour et merci pour les réponses,

La réponse de Dan fonctionne très bien.

Bonne journée.

Rechercher des sujets similaires à "probleme erreur variable definie que proc fonctionner"