Object variable not set (Error 91)
Allain90
Messages postés
17
Date d'inscription
Statut
Membre
Dernière intervention
-
pijaku Messages postés 12263 Date d'inscription Statut Modérateur Dernière intervention -
pijaku Messages postés 12263 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
je suis débutant en programmation VBA et j'ai rencontré un message d'erreur sur cette ligne:
match = MapSheet.Cells(MapSheet.Columns(2).Find(what:=label, lookat:=xlWhole).row, 4).Value
j'ai essayé de declarer la variable mais ça marche toujours pas !!
Merci pour votre aide
je suis débutant en programmation VBA et j'ai rencontré un message d'erreur sur cette ligne:
match = MapSheet.Cells(MapSheet.Columns(2).Find(what:=label, lookat:=xlWhole).row, 4).Value
j'ai essayé de declarer la variable mais ça marche toujours pas !!
Merci pour votre aide
A voir également:
- Run-time error 91 object variable or with block variable not set
- Or - Guide
- Popcorn time - Télécharger - TV & Vidéo
- Block breaker - Accueil - Services en ligne
- Code block - Télécharger - Langages
- Shockwave flash object - Télécharger - Divers Web & Internet
7 réponses
Bonjour Allain, bonjour le forum,
Mactch étant un mot clé réservé au VBA il te faut changer le nom de ta variable...
Mactch étant un mot clé réservé au VBA il te faut changer le nom de ta variable...
Bonjour le fil, bonjour le forum,
Et si tu envoyais le code complet ou, mieux encore, le fichier qui va bien ?...
Et si tu envoyais le code complet ou, mieux encore, le fichier qui va bien ?...
Set MapSheet = ActiveWorkbook.Worksheets("fichier1")
Dim label, match, valeur As String
row = 2
label = Trim(CalculSheet.Cells(1, col).Text)
match = MapSheet.Cells(MapSheet.Columns(2).Find(what:=label, lookat:=xlWhole).row, 4).Value
Dim label, match, valeur As String
row = 2
label = Trim(CalculSheet.Cells(1, col).Text)
match = MapSheet.Cells(MapSheet.Columns(2).Find(what:=label, lookat:=xlWhole).row, 4).Value
Bonjour le fil, bonjour le forum,
Si tu ne fais pas d'efforts je n'ai pas envie d'en faire non plus !...
- Désolé le code est incomplet ! CalculSheet ?
- Tu n'as pas changé le nom des variables comme Pijaku et moi-même t'avions demandé...
Si tu ne fais pas d'efforts je n'ai pas envie d'en faire non plus !...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Désolé je t'ai envoyé le code initial; c'est une fonction qui permet de faire le mapping des données de différentes fichier
Set MonFichier = ActiveWorkbook.Worksheets("fichier1")
Set CalculSheet = ActiveWorkbook.Worksheets("Calcul")
Dim lab, match, valeur As String
row = 2
lab = Trim(CalculSheet.Cells(1, col).Text)
match = MonFichier.Cells(MapSheet.Columns(2).Find(what:=lab, lookat:=xlWhole).row, 4).Value
Set MonFichier = ActiveWorkbook.Worksheets("fichier1")
Set CalculSheet = ActiveWorkbook.Worksheets("Calcul")
Dim lab, match, valeur As String
row = 2
lab = Trim(CalculSheet.Cells(1, col).Text)
match = MonFichier.Cells(MapSheet.Columns(2).Find(what:=lab, lookat:=xlWhole).row, 4).Value
Bonjour le fil, bonjour le forum,
Une macro, pour moi, commence par Sub et finit par End Sub. Une Fonction commence par Public Function et finit par End Function...
P... je viens de télécharger l'application "Tirage_des_vers_du_Nez" sur mon NoSmartPhone. Elle est Gé-ni-ale !
Une macro, pour moi, commence par Sub et finit par End Sub. Une Fonction commence par Public Function et finit par End Function...
P... je viens de télécharger l'application "Tirage_des_vers_du_Nez" sur mon NoSmartPhone. Elle est Gé-ni-ale !
Bonjour,
Le problème vient de la méthode find. Placée ainsio, si elle ne retourne pas de valeur (lab non trouvé), elle fout tout en l'air.
Il te faut donc tester au préalable si Find retourne quelque chose et imaginer une solution pour le cas ou elle ne retourne rien.
Le problème vient de la méthode find. Placée ainsio, si elle ne retourne pas de valeur (lab non trouvé), elle fout tout en l'air.
Il te faut donc tester au préalable si Find retourne quelque chose et imaginer une solution pour le cas ou elle ne retourne rien.
Function Machin() As String Set MonFichier = ActiveWorkbook.Worksheets("fichier1") Set CalculSheet = ActiveWorkbook.Worksheets("Calcul") Dim lab As String, Mymatch As String, valeur As String Dim Trouve As Range row = 2 lab = Trim(CalculSheet.Cells(1, col).Text) Set Trouve = MapSheet.Columns(2).Find(what:=lab, lookat:=xlWhole) If Not Trouve Is Nothing Then Mymatch = MonFichier.Cells(Trouve.Row, 4).Value Else Mymatch = "Erreur. Non trouvé" End If Machin = Mymatch End Function
Peut être la même chose pour label...
Et éventuellement, Set la variable MapSheet avant...
A++
Merci pour votre réponse
J'ai suivi vos conseil mais ça ne marche pas !!