Vba: erreur d'exécution 91: variable objet ou

Fermé
nicolano - 5 févr. 2010 à 16:17
 nicolano - 5 févr. 2010 à 16:40
Bonjour à vous,

ca fait quelques heures que je butte sur une macro en vba qui me sort un "erreur d'exécution 91: variable objet ou variable bloc non défini" en fin de boucle, au lieu d'en sortir.

L'objectif de la macro est d'aller récupérer des valeurs dans un fichier concaténé afin de les consolider dans un tableau.
dans chaque ligne commençant par "&&&DDD" (ex cidessous), je récupére les cinq derniers numéros, et les colle dans un autre tableau.

&&&DDD 999888 FRT00000145

Tout se passe bien, la macro récupère bien toutes mes valeurs.
Mais à la fin, au lieu de sortir de la boucle, le message "erreur d'exécution 91: variable objet ou variable bloc non défini"

Est ce que quelqu'un peut m'aider

Merci d'avance

Mon code:

Sub (copiercoller)

Dim l As Integer 'numéro de ligne comprenant la valeur à copier/coller dans tableau consolidé
Dim j As Integer 'numéro de ligne de tableau consolidé dans laquelle coller la valeur
Dim i As Integer
Dim codepr As String
Dim entetempr As String

Workbooks.Open Filename:="C:\Documents and Settings\p051398\Desktop\macro2\Consolidation PLR.xls"
Workbooks.Open Filename:="C:\Documents and Settings\p051398\Desktop\DMS\PLR\Vie Serie\MPR.DLR.xls"
Range("A1").Select
Selection.EntireRow.Insert


l = 1
j = 2
celluletrouvee = "xxx"

Do While celluletrouvee <> " "
Windows("MPR.DLR.xls").Activate
Set celluletrouvee = Range(Cells(l, 1), Cells(65500, 1)).Find("&&&DD", lookat:=xlPart)
If celluletrouvee Is Nothing Then
End If
l = celluletrouvee.Row



'je selectionne mon code PR
entetempr = ActiveSheet.Cells(l, 1).Value
codepr = Mid(entetempr, 58, 5)
Selection.Copy
Windows("Consolidation PLR.xls").Activate
Cells(j, 1).Value = codepr



j = j + 1
l = l + 1

Loop


End Sub

2 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 306
5 févr. 2010 à 16:32
Bonjour

à tout zazar, n'est ce pas quand tu ne trouves plus de &&&DDD qur tu veux sortir
ici à la place de::
If celluletrouvee Is Nothing Then
End If 


essaies
If celluletrouvee Is Nothing Then: exit sub


en espèrant que...

Tu nous aurais facilité le boulot si :
1/tu avais indiqué sur quelle ligne du code ca plantait
2/ tu mettais ton code entre les balises code ( le <> sur dessin de feuille dans les onglets du message
D'avance, merci
1
Merci beaucoup pour ta réponse rapide.

je vais essayer tout de suite

et je prend note de tes remarques pour les informations complémentaires

en fait, ca plante sur la ligne

l = celluletrouvee.Row
0