Vba excel erreur objet requis

Résolu
Bonjour,

VOICI MA MACRO
excel me renvie erreur de compilation , objet requis sur la ligne set my range
Priere m'aider
Merci

Sub recherche()
'ALE = Application.WorksheetFunction.VLookup(compte, myRange, 2, False)

Sheets("Feuil2").Select

Dim LastRow As Long
Dim myrange As String
Dim i As Integer
Dim Région As Sheets

LastRow = Feuil2.Range("c" & Rows.Count).End(xlUp).Row

Set myrange = Feuil3.Range("D3:E298")

'la boucle

For i = 2 To LastRow
Cells(i, 3) = Application.WorksheetFunction.VLookup(Cells(i, 3), myrange, 2, False)

Next i

End Sub

1 réponse

Résumé de la discussion

L’erreur « objet requis » survient dans une macro Excel lors d’un VLOOKUP avec Set myrange, en raison d’une définition inappropriée de la plage et d’un mauvais ciblage de la feuille. La méthode préconisée consiste à Set myrange = Worksheets(1).[A1:B295], à sélectionner Feuil6 et à calculer LastRow via la colonne B, puis à alimenter la colonne 3 par Application.VLookup. Une version sans commentaire montre le même schéma, avec une plage correctement définie et la suppression du caractère Set lorsque l’objet Range est déjà clair, évitant l’erreur 1004. En complément, l’usage cohérent du codename et du nom réel évite les confusions: préférer Worksheets(1) pour la plage et Feuil6 pour la feuille active afin de limiter les erreurs.

Bobot (l’IA à votre service)
  1. Contributeur
    Bonjour,

    avec Set myrange = Feuil3.Range("D3:E298")
    tu utilises le codename de la feuille et non son nom.
    C'est sheets("nom de ta feuille").xxx pour utiliser le nom

    Regarde ton projet tu as tes feuilles listée sur ce modèle :
    codename (nom de la feuille)
    Feuil3 n'existe peut-être pas mais tu vas peut-être trouver :
    Feuil5 (Feuil3)
    le feuille nommée "Feuil3" a pour codename Feuil5
    1. bonjour;

      où trouver le codename, je viens de voir mon projet, il s'agit bien de feuil3 sur le masque

      merci de m'aider
    2. Contributeur
      Bonjour,

      où trouver le codename
      Ben je t'ai expliqué non ?
      Regarde ton projet tu as tes feuilles listée sur ce modèle :
      codename (nom de la feuille)


      Avec Set myrange = Feuil3.Range("D3:E298") vu que Range("D3:E298") ne peut qu'exister, l'erreur ne peut être que sur Feuil3 qui n'existe pas pour vba
    3. Bonjour;

      pouvez vous me donner une formule ou une fonction pour afficher le code name d'une feuille excel

      parce que je n'arrive pas a trouver le codename de la feuille retenu par VBA

      merci à vous
    4. @amo-51Voici 2 exemples :
      MsgBox Worksheets("Feuil3").CodeName
      MsgBox Worksheets(3).CodeName
    5. merci

      j'ai corrigé le codename
      maintenant excel me fait ce message
      erreur d’exécution 1004
      impossible de lire la propriété Vlookup de la classe WorksheetFunction

      merci de m'aider