Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel
Excel Forum d'entraide sur Excel. Vos questions sur les fonctions, formules, manipulations, et tout sujet qui ne trouve pas sa place dans un sous-forum.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/12/2011, 11h47   #1
Membre du Club
 
Homme
Inscription : janvier 2010
Messages : 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Secteur : Industrie

Informations forums :
Inscription : janvier 2010
Messages : 176
Points : 67
Points : 67
Par défaut Fonction recherchev #ref

Bonjour à toutes et à tous,

Après lecture de la documentation sur internet, j'utilise dans une de mes cellules la fonction recherchev via la formule :

Code :
=SI(OU(C4="";D4="");"";RECHERCHEV(D4 & " - "& C4;Uinduites!$C$2:$C$109;4;FAUX))
Celle-ci renvoie #REF au niveau de la fonction recherchev.
Le tableau où je cherche la valeur D4 - C4 se situe sur l'onglet Uinduites (tableau 109 lignes - 6 colonnes(A à F)). La valeur cherchée existe bien, d'où mon incompréhension face à l'erreur affichée par Excel.

Ayant par ailleurs utilisé la fonction dans des cas très similaires, j'ai du mal à comprendre d'où pourrait provenir l'erreur..

Une p'tite idée ?
Merci d'avance

Edit : on laisse tomber, faute de frappe, il fallait écrire $F$109 et non $C$109... Désolé pour ce post inutile, si un modérateur passe par là pour l'effacer... Merci
d0n32 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2011, 16h33   #2
Membre actif
 
Homme
Ressources humaines
Inscription : janvier 2011
Messages : 172
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Ressources humaines
Secteur : Bâtiment

Informations forums :
Inscription : janvier 2011
Messages : 172
Points : 166
Points : 166
Bonjour,

l'erreur est sur la table_matrice car ta plage est sur une seule colonne 'C' et puis le No_index_col= 4, alors:
Code :
=SI(OU(C4="";D4="");"";RECHERCHEV(D4 & " - "& C4;Uinduites!$C$2:$F$109;4;FAUX))
Cordialement

Gestionnaire rh
Gestionnaire_rh est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 06/12/2011, 18h28   #3
Membre du Club
 
Homme
Inscription : janvier 2010
Messages : 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Secteur : Industrie

Informations forums :
Inscription : janvier 2010
Messages : 176
Points : 67
Points : 67
Bonsoir et merci de ta réponse, j'avais résolu (pour une fois ) le problème avant ton post

Je souhaite par défaut donner à E4 la formule décrite dans mon premier post. J'écris le code suivant pour cela :

Code :
Range("E4").FormulaLocal = "=IF(OR(C4="";D4="");0;IF(ISNA(VLOOKUP(D4&" - "&C4;Uinduites!$C$2:$F$109;4;FALSE));0;VLOOKUP(D4&" - "&C4;Uinduites!$C$2:$F$109;4;FALSE)))"
Cela me renvoie une erreur "incompatibilité de type" lors de son exécution. Auriez-vous une idée du pourquoi du comment ? Rien de spécial pour la cellule E4..

PS : Si un modérateur pouvait déplacer la conversation vers le sous-forum Macros, il me semble que ce serait plus adapté désormais. Merci
d0n32 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2011, 09h27   #4
Membre actif
 
Homme
Ressources humaines
Inscription : janvier 2011
Messages : 172
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Ressources humaines
Secteur : Bâtiment

Informations forums :
Inscription : janvier 2011
Messages : 172
Points : 166
Points : 166
Bonjour,

pour ta formule sous vba, n'oublié pas de doubler les guillemets:
Code :
Range("E4").FormulaLocal = "=SI(OU(C4="""";D4="""");0;SI(ESTNA(RECHERCHEV(D4&"" - ""&C4;Uinduites!$C$2:$F$109;4;FAUX));0;RECHERCHEV(D4&"" - ""&C4;Uinduites!$C$2:$F$109;4;FAUX)))"
Cordialement

Gestionnaire rh
Gestionnaire_rh est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 07/12/2011, 09h48   #5
Membre du Club
 
Homme
Inscription : janvier 2010
Messages : 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Secteur : Industrie

Informations forums :
Inscription : janvier 2010
Messages : 176
Points : 67
Points : 67
Bien vu, j'étais complètement passé au travers de ce point là..
J'ai appliqué tes conseils, et également amélioré la syntaxe de la formule :

Code :
Range("E4").FormulaR1C1 = "=IF(OR(RC[-2]="""";RC[-1]="""");0;IF(ISNA(VLOOKUP(RC[-1] &"" - ""& RC[-2];Uinduites!$C$2:$F$109;4;'FALSE'));0;VLOOKUP(RC[-1] &"" - ""& RC[-2];Uinduites!$C$2:$F$109;4;'FALSE')))"
Message d'erreur lors de l’exécution : "400" .. J'avais cette erreur auparavant pour des problèmes d'écriture sur une feuille protégée, que j'ai résolu entre temps.. Que pourrait signifier cette erreur cette fois-ci ?

Merci encore..
d0n32 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2011, 10h29   #6
Membre du Club
 
Homme
Inscription : janvier 2010
Messages : 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Secteur : Industrie

Informations forums :
Inscription : janvier 2010
Messages : 176
Points : 67
Points : 67
Très étrange :

Code :
Range("E4").FormulaR1C1 = "=IF(OR(RC[-2]="""",RC[-1]=""""),0,IF(ISNA(VLOOKUP(RC[-1]&"" - ""&RC[-2],Uinduites!R2C3:R109C6,4,FALSE)),0,VLOOKUP(RC[-1]&"" - ""&RC[-2],Uinduites!R2C3:R109C6,4,FALSE)))"
semble fonctionner. L'enregistreur de macro fait apparaître des virgules à la place des points virgules, ça semblait être l'élément perturbateur..
d0n32 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2011, 11h21   #7
Membre actif
 
Homme
Ressources humaines
Inscription : janvier 2011
Messages : 172
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Ressources humaines
Secteur : Bâtiment

Informations forums :
Inscription : janvier 2011
Messages : 172
Points : 166
Points : 166
Bonjour,

en utilisant la formulaR1C1, tu doit modifié ta plage de recherche et enlever les apostrophes sur false:
Code :
Range("E4").FormulaR1C1 = "=IF(OR(RC[-2]="""",RC[-1]=""""),0,IF(ISNA(VLOOKUP(RC[-1] &"" - ""& RC[-2],Uinduites!R[-2]C[-2]:R[105]C[1],4,FALSE)),0,VLOOKUP(RC[-1] &"" - ""& RC[-2],Uinduites!R[-2]C[-2]:R[105]C[1],4,FALSE)))"
Cordialement

Gestionnaire rh
Gestionnaire_rh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2011, 11h28   #8
Membre du Club
 
Homme
Inscription : janvier 2010
Messages : 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Secteur : Industrie

Informations forums :
Inscription : janvier 2010
Messages : 176
Points : 67
Points : 67
Merci de ta réponse. J'ai bien enlevé les apostrophes autour du false, mais je ne comprends ce que tu entends par "modifier ma plage de recherche" : qu'est-ce qui ne va pas avec mon écriture ?

Merci !
d0n32 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2011, 12h01   #9
Membre actif
 
Homme
Ressources humaines
Inscription : janvier 2011
Messages : 172
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Ressources humaines
Secteur : Bâtiment

Informations forums :
Inscription : janvier 2011
Messages : 172
Points : 166
Points : 166
Bonjour,

désolais pour la mauvaise interprétation, c'est juste remplacer ton $C$2:$F$109, par R[-2]C[-2]:R[105]C[1]

Cordialement

gestionnaire rh
Gestionnaire_rh est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h25.


 
 
 
 
Partenaires

Hébergement Web