Définition variable object

Bonjour,

Je débute en VBA, et dans le code suivant, à la ligne iRow = r.row j'ai l'erreur 91 : variable objet ou variable de bloc With non définie.
Dans cette ligne je souhaite faire remonter la ligne correspondante à ma valeur recherchée.

Public Sub ComboBox1_Change()

Dim iRow As Integer
Dim r As Range
Dim sCus As String
Dim lSCode As Long
Dim sSid As String
Dim sSite As String
Dim sLoc As String
Dim sCom As String
Dim lDate As Long

Set ws = Sheets("Customer")

Set r = ws.Range("G5:G9999").Find(what:=ComboBox1.Value)

iRow = r.Row

lSCode = Cells(iRow, 5).Value
TextBox1.text = lSCode

sSid = Cells(iRow, 6).Value
TextBox2.text = sSid

sCus = Cells(iRow, 1).Value
TextBox3.text = sCus

sSite = Cells(iRow, 2).Value
TextBox4.text = sSite

sLoc = Cells(iRow, 3).Value
TextBox5.text = sLoc

sCom = Cells(iRow, 4).Value
TextBox6.text = sCom

lDate = Cells(iRow, 8).Value
TextBox7.text = lDate

End Sub

J'imagine donc que je ne définie pas comme il faut ma variable r, mais je ne comprend pas comment faire.

Merci d'avance !

Salut

Il y a un truc qui cloche, tu selectionne la colonne G puis tu traites avec des Rows (lignes) ?

Tu 'as pas confondu des lignes et colonnes ?

iRow = r.Row

EDIT j'avais pas calculé le .find donc j'ai dit n'importe quoi. L'erreur doit venir que le .find trouve plusieurs correspondances ?

Merci pour ta réponse !

Malheureusement je me suis assuré qu'il n'y avait pas de doublons dans ma colonne G, mis à part les cellules vides bien sur.

L'erreur se produit si tu ne trouve pas la correspondance justement

A tester:

Public Sub ComboBox1_Change()

Dim iRow As Integer
Dim r As Range
Dim sCus As String
Dim lSCode As Long
Dim sSid As String
Dim sSite As String
Dim sLoc As String
Dim sCom As String
Dim lDate As Long

Set ws = Sheets("Customer")

Set r = ws.Range("G5:G9999").Find(what:=ComboBox1.Value)

on error goto Erreur:
iRow = r.Row

lSCode = Cells(iRow, 5).Value
TextBox1.text = lSCode

sSid = Cells(iRow, 6).Value
TextBox2.text = sSid

sCus = Cells(iRow, 1).Value
TextBox3.text = sCus

sSite = Cells(iRow, 2).Value
TextBox4.text = sSite

sLoc = Cells(iRow, 3).Value
TextBox5.text = sLoc

sCom = Cells(iRow, 4).Value
TextBox6.text = sCom

lDate = Cells(iRow, 8).Value
TextBox7.text = lDate

exit sub
erreur:
msgbox("Aucunes correspondances trouvées")
End Sub

Ah oui effectivement c'est ça ! En tout cas la msgbox apparaît.

Mais j'ai du mal à comprendre comment la valeur n'est pas trouvée, étant donnée que la liste de ma combox vient de :

Public Sub UserForm_Initialize()
Dim sListNum As String
Dim i As Integer
Dim iFirstLine As Integer

ComboBox1.Clear

iFirstLine = 1 + Worksheets("Customer").Range("G5").End(xlDown).Row

For i = 5 To iFirstLine

sListNum = Cells(i, 7).Value
        ComboBox1.AddItem sListNum

        Next

End Sub

Et donc est extraite de la colonne G.

Mmmmh... mais si tu as plusieurs aucurrences dans ta colonne G la combox ne correspondras plus à une cellule unique.

Je dois pas être très clair désolé, Sans fichier exemple c'est pas facile de solutionner ce problème

Voici le fichier exemple :

Je suis désolé je croyais pouvoir t'aider mais j'ai fais quelques test de mon coté je n'arrive pas a comprendre pourquoi

ws.Range("G5:G9999").Find(what:=ComboBox1.Text) te renvoie rien.... grrrrrrr

Je cherche

Merci beaucoup !

De mon côté, je suis quasiment persuadé que ce programme a marché au moins une fois juste avant que je ne me trompe et lance une boucle infinie qui a fait planter excel et perdre ce que j'avais fait. Ce fichier est donc une sauvegarde automatique mais je suis persuadé (de moins en moins) qu'il a au moins une fois marché comme ça.

en cas de boucle infini pense a ctrl+Fn+pause

Fn si nécessaire selon les PC et clavier

Bonjour;

@Gabin37 ws.Range("G5:G9999").Find(what:=ComboBox1.Text) te renvoie rien.

Comme le contenu de cette plage est une formule, il faut préciser à l'instruction Find une recherche sur la valeur résultante de la formule.

Donc :

ws.Range("G5:G9999").Find(what:=ComboBox1.Text,Lookin:=xlValues)

Merci @thev!

Ca fonctionne !

Mazette j'ai appris un truc, bonne journée a tous

Rechercher des sujets similaires à "definition variable object"