Vba recherchev : syntaxe pas bonne?
Résolu
chrisdemontigny
Messages postés
70
Date d'inscription
Statut
Membre
Dernière intervention
-
chrisdemontigny Messages postés 70 Date d'inscription Statut Membre Dernière intervention -
chrisdemontigny Messages postés 70 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
voici une partie de mon code:
Sub recherchev()
Cells(6, "j").Value = WorksheetFunction.VLookup(Worksheets("listes").Cells(6, "k").Value, _
Worksheets("liste_de_donnees").Cells("f2:g13"), 2, False)
End Sub
je vais juste faire chercher des valeurs sur d'autres onglets du classeur mais cela ne va pas.
Toujours la même erreur d'exécution 9: l'indice n'appartient pas à la sélection.
Avez-vous une idée ou besoin de précisions?
Merci par avance
voici une partie de mon code:
Sub recherchev()
Cells(6, "j").Value = WorksheetFunction.VLookup(Worksheets("listes").Cells(6, "k").Value, _
Worksheets("liste_de_donnees").Cells("f2:g13"), 2, False)
End Sub
je vais juste faire chercher des valeurs sur d'autres onglets du classeur mais cela ne va pas.
Toujours la même erreur d'exécution 9: l'indice n'appartient pas à la sélection.
Avez-vous une idée ou besoin de précisions?
Merci par avance
22 réponses
- 1
- 2
Suivant
Résumé de la discussion
Le problème décrit concerne une macro VBA utilisant WorksheetFunction.VLookup sur plusieurs onglets et qui renvoie l'erreur d'exécution 9, l'indice n'appartient pas à la sélection. Des réponses proposent de simplifier le code pour plus de lisibilité, de demander un extrait ou un lien du classeur et de vérifier le formatage des dates. D'autres évoquent l'usage d'indices fixes (par exemple remplacer par Cells(6,10).Value et Cells(6,11).Value) et le recours à des tests dans un fichier distinct. Des liens externes et des échanges d'extraits illustrent les tentatives pour reproduire le problème et évaluer les conditions de fonctionnement dans différents classeurs.
-
Re,
Je ne sais pas si ton problème est résolu ?
En tout cas, j'ai rectifié ton code pour qu'il soit un peu plus simple et plus lisible
Ton classeur en retour
A+
-
Bonjour,
remplaceCells("f2:g13")parRange("f2:g13")ouRange(Cells(2, 6), Cells(13, 7))
Cordialement. -
Merci pour ta réponse mais cela n'a rien changé.
-
Peux-tu mettre un extrait de ton classeur à disposition ?
Pour joindre un fichier, créer un lien sur le site cjoint.com et copier le lien ici. -
-
Effectivement j'ai pu ouvrir le fichier, même si le fait de l'enregistrer en xlsx nous fait perdre la macro ;)
Heureusement que j'ai pu la récupérer depuis ce sujet.
Il semble qu'il y ait un soucis pour faire la rechercheV sur un autre onglet, car sur le même onglet cela fonctionne...
Je laisse ma place à quelqu'un de plus compétent. -
-
-
-
Re,
Voir mes réponses sur ton autre poste (doublon)
--> G_33 : Contrairement à ce que tu crois...Cells(6, "j").Value Worksheets("listes").Cells(6, "k").Value
Sont parfaitement valable.
A+
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Merci Lermite pour ton code qui fonctionne en effet bien.
En fait, jai, depuis le début, un fichier pour lequel cela fonctionne pas.
Ca fait des heures que j'essaie de comprendre pourquoi ca ne fonctionne pas. Je ne suis pas informaticien et je crois que là est le problème.
Si tu peux regarder et me dire ce qui ne fonctionne pas
http://cjoint.com/12oc/BJxxNW7DQrZ.htm
sur le premier onglet, le premier bouton va chercher les caractéristiques.
C'est le second bouton qui bloque quand je dois passer par la fonction vlookup qui est dans le code lié.
En fait, je suis assez désespéré car je pensais pas qu'une seule fonction allait me poser autant de problèmes.-
-
-
Non, si tu veux que la valeur du calcul, la plupart du temps, il est inutile d'écrire la formule en VBA (sinon, tu peux l'écrire directement sur ta feuille): il y a des codes VBA qui font la recherche et ca évite d'augmenter le poids de ton classeur (env. 20%), mais si tu débutes, tu peux passer comme tu as fait
a part ca, as tu regardé en corrigeant la syntaxe range (ou cells)
-
-
Bonjour chrisdemontigny,
Quelle est la valeur à rechercher ? Est-ce une valeur de la colonne <gras>Date de clôture ? -
Bonsoir Heliotte,
la valeur à rechercher est une valeur de la date CA12.
Le souci doit être le rapprochement entre la date de clôture créé dans mon échéancier et la date de clôture dans le tableur. -
Bonjour chrisdemontigny,
J'ai l'impression que ton problème est résolu .. Penses à le mettre en résolu -
Bonjour Lermitte,
dans le fichier où tu as inséré un vlookup, pourquoi as-tu inscrit "Sheets("Feuil2").[E11:F20]" alors que la plage est "[E8:F17]"?
Je te pose surtout cette question car cela va bien chercher les valeurs de la plage "[E8:F17]"!
Merci de ton aide -
Re,
"Sheets("Feuil2").[E11:F20]"
Il n'y a ça nulle part dans le dernier fichier que j'ai poster ??
A+
-
sur le fichier (qui permet un vlookup sur un autre onglet) que tu as joint dans la discussion "vba recherchev : syntaxe particulière?", tu as inscrit ce code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$8" Then
Cells(8, 3) = Application.WorksheetFunction.VLookup(Cells(8, 2), Sheets("Feuil2").[E11:F20], 2, False)
End If
End Sub -
Compris,
J'avais d'abord mis la liste sur la feuille 1, j'ai ensuite mis cette liste sur la feuille 2 mais je ne l'ai pas mise à la bonne place. Deux erreurs dans ce fichier .
L'adresse de la liste de validation.
La plage de cellule dans le VBA
Mystère résolu ?
A+
-
Oui, je pense que c'est résolu.
Merci
+++ -
Dans le fichier joint ci-dessous, j'ai mis vlookup dans une boucle.
Le bouton fonctionne si les valeurs en colonne B et dans la zone de recherche ne sont pas des dates. Why?!
http://cjoint.com/12nv/BKdqZvFYC4D.htm
Ca me met "x 400" -
Toutes les cellules/plage où tu attend des dates doivent êtres formatées en "Date"
A+ -
Dans ta liste de validation tu dois mettre TOUTE la plage... J9:K19
et si dans la même feuille tu ne dois pas mettre le nom de la feuille.
A+
-
Je ne comprend pas du tout ce que tu veux faire.
1°) sur ta feuille Feuil1 seul la ligne 1 est concernée par ta liste de validation.
2°) tout ce qui est sur la feuil 1, en dessous de la ligne 1, n'a aucun intérêt les données doivent êtres ailleurs..
Explique mieux, je pourrais peut-être t'aider.
A+
-
Non,
Laisse tomber ce classeur et reprend plutôt le dernier que je t'ai envoyé
De là ont pourras probablement mieux se comprendre.
-
Tu peu pas mettre une boucle sur une liste de validation!! C'est ça ou... c'est pas ça. !!
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques. -
Lol: Je pense que l'ont est pas sur les mêmes rails.
Explique ce que tu veux faire.
Mais à première vue, tes données devraient êtres ailleurs que où tu les met
Il faudrait avoir une base de donnée, par exemple en feuille 2
Fait une base de données en feuille 2
??
A+
- 1
- 2
Suivant