Insertion de données & erreur n°9

Bonjour le forum,

J'ai un code qui me permet de chercher une valeur dans la colonne "E" d'un autre classeur.

Ce code fonctionne très bien.

Ensuite ce que je ne parviens pas à faire ou à finaliser, c'est de récupérer la ligne où se trouve la valeur que je cherche et d'insérer des données en colonne "T".

Je parviens à récupérer le ligne mais pas à insérer les données en "T".

J'ai le message d'erreur n°9 l'indice n'appartient pas à la séléction sur la ligne

.Range("T" & Ln).value = "Nouvelles données"

Apparement c'est une erreur de déclaration mais je ne parviens pas à la corriger.

Voici mon code :

DimCls as worksheet
Dim Cel as range
Dim Ln
Set Cls = Workbooks.Open(Mon Classeur.xlsm).(feuille)
With Cls
Set Cel = .Columns("E").Cells.Find(what:=Range("G12"), LookIn:=xlValues, lookat:=xlWhole)
If Not Cel Is Nothing Then
Ln = Cel.Row
End If
.Range("T" & Ln).value = "Nouvelles données"
End with
End Sub

Merci pour votre aide

Jeremy

bonjour,

tu reçois ce message d'erreur car la valeur n'a pas été trouvée.

proposition de correction, j'ai rajouté l'objet tws (en supposant que le range G12 ne se trouve pas dans le classeur "mon classeur.xlsm" mais dans le classeur actif), si ce n'est pas le cas, enlève cette référence à tws dans le find.

Dim Cls as worksheet
Dim Cel as range
Dim Ln
dim tws
set tws=activesheet
Set Cls = Workbooks.Open(Mon Classeur.xlsm).(feuille)
With Cls
Set Cel = .Columns("E").Cells.Find(what:=tws.Range("G12"), LookIn:=xlValues, lookat:=xlWhole)
If Not Cel Is Nothing Then
Ln = Cel.Row

.Range("T" & Ln).value = "Nouvelles données"
else
 msgbox "valeur " & range("G12")  & " non trouvée"
End If

End with
End Sub

Bonjour h2so4,

La valeur existe bien.

J'ai réussi à cibler le problème qui vient en fait de

.Range("T" & Ln).value = "Nouvelles données"

que j'ai raccourci pour le forum, est en fait écrit comme ceci dans mon code.

.Range("T" & Ln).value = Sheets("Feul1").Range("AA5")

et c'est là que se situe la problème.

J'ai donc modifié comme ceci :

.Range("T" & Ln).value = ThWbk.Sheets("Feul1").Range("AA5")

Avec une déclaration :

Dim ThWbk As Workbook
Set ThWbk = ThisWorkbook

Du coup ça fonctionne.

Peux-tu me confirmer que ce que j'ai fait est juste?

Meri pour ton intervention.

JeremyW a écrit :

Bonjour h2so4,

Du coup ça fonctionne.

Peux-tu me confirmer que ce que j'ai fait est juste?

Re-bonjour,

si ça fonctionne ...

Ca fonctionne

Rechercher des sujets similaires à "insertion donnees erreur"