Erreur objet requis vba
adeline71021
Messages postés
2
Statut
Membre
-
eriiic Messages postés 25847 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 25847 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'espère que je poste au bon endroit...Voila ça fait quelque heures maintenant que je n'arrive pas à trouver le problème de ma macro. Voila ce que je veux faire:
1. Rechercher le nom d'une colonne dans la ligne 2
2. si le nom:
n'est pas trouvé alors que je fais apparaitre ma message box
sinon je veux sélectionner la plage de cellule en dessous pour faire une recherchev par la suite...et c'est là que ça plante ça me met erreur objet requis.
Voila mon script
Sub Test()
'Positionnement dans la bonne cellule
Dim celluletrouvee As Range
Set celluletrouvee = Range("A2:D2").Find("Nom", lookat:=xlWhole)
If celluletrouvee Is Nothing Then
MsgBox ("Cette colonne n'existe pas")
Else
Dim CP As Range
celluletrouvee.Offset(1, 0).Activate
Set CP = Range(ActiveCell(1, 1), ActiveCell(4, 1)).Select
With Workbooks("Classeur1recherche verticale4.xlsm").Sheets("Feuil1")
.Range("CP").Value = WorksheetFunction.VLookup(.Range("A3:A6").Value, _
' Workbooks("Classeur2.xlsx").Sheets("Nom").Range("A3:B6"), 2, False)
End With
End If
End Sub
Aidez moi s'il vous plait
J'espère que je poste au bon endroit...Voila ça fait quelque heures maintenant que je n'arrive pas à trouver le problème de ma macro. Voila ce que je veux faire:
1. Rechercher le nom d'une colonne dans la ligne 2
2. si le nom:
n'est pas trouvé alors que je fais apparaitre ma message box
sinon je veux sélectionner la plage de cellule en dessous pour faire une recherchev par la suite...et c'est là que ça plante ça me met erreur objet requis.
Voila mon script
Sub Test()
'Positionnement dans la bonne cellule
Dim celluletrouvee As Range
Set celluletrouvee = Range("A2:D2").Find("Nom", lookat:=xlWhole)
If celluletrouvee Is Nothing Then
MsgBox ("Cette colonne n'existe pas")
Else
Dim CP As Range
celluletrouvee.Offset(1, 0).Activate
Set CP = Range(ActiveCell(1, 1), ActiveCell(4, 1)).Select
With Workbooks("Classeur1recherche verticale4.xlsm").Sheets("Feuil1")
.Range("CP").Value = WorksheetFunction.VLookup(.Range("A3:A6").Value, _
' Workbooks("Classeur2.xlsx").Sheets("Nom").Range("A3:B6"), 2, False)
End With
End If
End Sub
Aidez moi s'il vous plait
A voir également:
- Erreur objet requis vba
- Vente objet occasion entre particulier - Guide
- Identifiant requis gmail - Forum Laposte
- Incompatibilité de type vba ✓ - Forum Programmation
- Erreur 3000 france tv - Forum Lecteurs et supports vidéo
- Trouver objet avec photo - Guide
2 réponses
Bonjour,
il est où le fichier avec qcq données cohérentes qu'on n'ait pas à en construire un approximatif ?
Set CP = Range(ActiveCell(1, 1), ActiveCell(4, 1)).Select
Faut choisir, soit tu fais un Set, soit un .Select
eric
il est où le fichier avec qcq données cohérentes qu'on n'ait pas à en construire un approximatif ?
Set CP = Range(ActiveCell(1, 1), ActiveCell(4, 1)).Select
Faut choisir, soit tu fais un Set, soit un .Select
eric
Bonjour,
Tout d'abord merci pour ta réponse. Etant nouvelle sur le forum je ne savais pas trop comment ça se passait... il faut que je mette mon fichier sur un deposit file ou un truc dans le genre pour que vous puissiez m'aider plus aisément?
Etant donné que ce que je veux réellement faire c'est affecter à CP la plage de cellule renseignée j'ai supprimé le set mais du coup il veut que j'utilise un bloc with...ça peut paraître logique pour certain mais j'avou que j'ai du mal à cerner pourquoi....
Merci encore
Tout d'abord merci pour ta réponse. Etant nouvelle sur le forum je ne savais pas trop comment ça se passait... il faut que je mette mon fichier sur un deposit file ou un truc dans le genre pour que vous puissiez m'aider plus aisément?
Etant donné que ce que je veux réellement faire c'est affecter à CP la plage de cellule renseignée j'ai supprimé le set mais du coup il veut que j'utilise un bloc with...ça peut paraître logique pour certain mais j'avou que j'ai du mal à cerner pourquoi....
Merci encore
Bonjour,
en occurrence j'aurais plutôt supprimé le .select.
Comme tu affectes un range à un objet tu as besoin du Set.
Et pour utiliser l'objet c'est CP tout court, pas .Range("CP").Value = ...
Sinon déposer le fichier xls (réduit au nécessaire et anonymisé, avec les explications et éventuellement le résultat attendu) sur cjoint.com et coller ici le lien fourni.
eric
en occurrence j'aurais plutôt supprimé le .select.
Comme tu affectes un range à un objet tu as besoin du Set.
Et pour utiliser l'objet c'est CP tout court, pas .Range("CP").Value = ...
Sinon déposer le fichier xls (réduit au nécessaire et anonymisé, avec les explications et éventuellement le résultat attendu) sur cjoint.com et coller ici le lien fourni.
eric