Erreur objet requis vba

Fermé
adeline71021 Messages postés 2 Date d'inscription jeudi 16 mai 2013 Statut Membre Dernière intervention 17 mai 2013 - 16 mai 2013 à 17:00
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 - 17 mai 2013 à 12:09
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

2 réponses

eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 212
16 mai 2013 à 18:34
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
0
adeline71021 Messages postés 2 Date d'inscription jeudi 16 mai 2013 Statut Membre Dernière intervention 17 mai 2013
17 mai 2013 à 09:16
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
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 212
17 mai 2013 à 12:09
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
0