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.
'------------------------------------------------------------------------------
'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 SubQuelqu'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 IfCordialement
bonjour et merci pour les réponses,
La réponse de Dan fonctionne très bien.
Bonne journée.