[Excel] equiv/match : recherche d'une variabl
Résolu
Blourte
-
Blourte -
Blourte -
Bonjour,
J'ai un petit soucis ( de syntaxe je pense ) dans l'une de mes macros.
J'aimerais cherche dans une colonne ( la colonne Q ) la variable que j'ai nommée : cle . J'aimerais obtenir le numéro de la ligne qd la valeur est trouvée .
J'ai donc pour code :
Le problème c'est qu'il me note dans la case correspondante : #NOM?
Je pense que c'est juste un problème de syntaxe dans ma fonction "match", mais je ne trouve pas la solution..
Merci d'avance.
J'ai un petit soucis ( de syntaxe je pense ) dans l'une de mes macros.
J'aimerais cherche dans une colonne ( la colonne Q ) la variable que j'ai nommée : cle . J'aimerais obtenir le numéro de la ligne qd la valeur est trouvée .
J'ai donc pour code :
Range("R269").Select ActiveCell.FormulaR1C1 = "=match(cle,Q:Q,0)"
Le problème c'est qu'il me note dans la case correspondante : #NOM?
Je pense que c'est juste un problème de syntaxe dans ma fonction "match", mais je ne trouve pas la solution..
Merci d'avance.
A voir également:
- [Excel] equiv/match : recherche d'une variabl
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Equiv excel anglais - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
11 réponses
Quand tu utilises la formule Match sous VBA tu doit spécifié une Range
Enleve également R1C1 après Formula ça devrait être mieux
Ce qui donne
ActiveCell.Formula = "=match(cle,Sheet(1).Range("Q1:Q65000"),0)"
Enleve également R1C1 après Formula ça devrait être mieux
Ce qui donne
ActiveCell.Formula = "=match(cle,Sheet(1).Range("Q1:Q65000"),0)"
Salut,
Merci pour ton aide. Malheureusement il me met la ligne en rouge : Erreur de syntaxe. Et il pointe sur le "Q1" .
Tu saurais pourquoi ?
Merci pour ton aide. Malheureusement il me met la ligne en rouge : Erreur de syntaxe. Et il pointe sur le "Q1" .
Tu saurais pourquoi ?
alors essaye de passer par une variable:
Dim MyVar as integer
MyVar = Application.WorksheetFunction _
.Match(cle,WorkSheet(1).Range("Q1:Q65000"),0)
Range("R269")=MyVar
Dim MyVar as integer
MyVar = Application.WorksheetFunction _
.Match(cle,WorkSheet(1).Range("Q1:Q65000"),0)
Range("R269")=MyVar
Hey,
En fait à la base mon but était de passer par une variable, mais je voulais voir ce qu'il faisait donc j'ai mis le résultat dans une cellule.
Concernant ta proposition, il bloque sur le 2e "worksheet" ( dans la fct match ) en disant : " Sub ou Fonction non définie".
Du coup je ne sais pas trop quoi faire. En l'enlevant il n'y arrive pas non plus...
En tout cas, merci pour le temps que tu consacres à mon pb !
En fait à la base mon but était de passer par une variable, mais je voulais voir ce qu'il faisait donc j'ai mis le résultat dans une cellule.
Concernant ta proposition, il bloque sur le 2e "worksheet" ( dans la fct match ) en disant : " Sub ou Fonction non définie".
Du coup je ne sais pas trop quoi faire. En l'enlevant il n'y arrive pas non plus...
En tout cas, merci pour le temps que tu consacres à mon pb !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
En gros mon coeur de problème est : ( si jamais qlq'1 est inspiré ).
- Je considère la colonne Q
- Je recherche dans cette colonne la valeur de ma variable que j'ai nommée "cle"
- Quand je tombe dessus : je veux en tirer le numéro de la ligne.
Merci d'avance pour votre aide !
En gros mon coeur de problème est : ( si jamais qlq'1 est inspiré ).
- Je considère la colonne Q
- Je recherche dans cette colonne la valeur de ma variable que j'ai nommée "cle"
- Quand je tombe dessus : je veux en tirer le numéro de la ligne.
Merci d'avance pour votre aide !
Bonjour Michel,
Merci pour ton aide.
Toutefois :
- Je ne comprend pas : XL<65536 . Qu'est ce que ca veut dire ?
- En executant la macro, il me dit : Erreur d'execution 91 : Variable objet ou variable de bloc With non définie.
Pour info, je définis "cle" comme ceci avant :
Merci d'avance..
Merci pour ton aide.
Toutefois :
- Je ne comprend pas : XL<65536 . Qu'est ce que ca veut dire ?
- En executant la macro, il me dit : Erreur d'execution 91 : Variable objet ou variable de bloc With non définie.
Pour info, je définis "cle" comme ceci avant :
dim cle cle = Val(352009) ' Pour tester la macro sem = Val(Left(clé, 2)
Merci d'avance..
Excuses moi mais je voulais dire XL<2007
(retour de vacances....)
je viens d'essayer, ca marche...
ci joint la demo
https://www.cjoint.com/?itqn4ianaB
mais je ne vois pas trop l'intérêt de ta fonction VAL... (regarde l'aide...)
si tu utilises match il faut que "cle"soit déclaré en LONG et non comme INTEGERr comme proposé plus haut...
(retour de vacances....)
je viens d'essayer, ca marche...
Sub chercher_cle() Dim cle As Long, lig As Long cle = 352009 lig = Columns(17).Find(cle, Range("Q65536")).Row MsgBox lig End Sub
ci joint la demo
https://www.cjoint.com/?itqn4ianaB
mais je ne vois pas trop l'intérêt de ta fonction VAL... (regarde l'aide...)
si tu utilises match il faut que "cle"soit déclaré en LONG et non comme INTEGERr comme proposé plus haut...
C'est vraiment trop fou !
Ton exemple marche, ta macro marche. J'execute ta macro dans mon fichier, ca ne marche pas, et ca me sort toujours l'erreur 91.
... et j'ai bien vérifié :
- la valeur "cle" existe bien dans la colonne Q.
- J'ai fait "Afficher" toutes les lignes qui étaient masquées
- J'ai converti la colonne Q en format "Nombre".
... je ne sais plus quoi faire !
Ton exemple marche, ta macro marche. J'execute ta macro dans mon fichier, ca ne marche pas, et ca me sort toujours l'erreur 91.
... et j'ai bien vérifié :
- la valeur "cle" existe bien dans la colonne Q.
- J'ai fait "Afficher" toutes les lignes qui étaient masquées
- J'ai converti la colonne Q en format "Nombre".
... je ne sais plus quoi faire !