|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : novembre 2011 Messages : 85 ![]() |
bonjour à tous, j'ai un souci sur ce code, en effet il m'arrive de tomber sur des cas , ou la variable 11 est un nom comme ceci : xxxxx-3 et son activesheet porte le meme nom, ce qui pose donc probleme je pense avec le .name car j'ai un erreur 2015 sur mon coutpompe.
y'aurait il un autre moyen de rédiger cette formule? pour eviter ce probleme avec le nom de la sheet ? Code :
coutpompe = Evaluate("INDEX(" & Workbooks(variable11).ActiveSheet.Name & "!J1:J65536,MAX(IF(NOT(ISERR(SEARCH(""habille""," & Workbooks(variable11).ActiveSheet.Name & "!B2:B65536)))*NOT(ISERR(SEARCH(""pompe""," & Workbooks(variable11).ActiveSheet.Name & "!D2:D65536)))>0,ROW(" & Workbooks(variable11).ActiveSheet.Name & "!B2:B65536))))") |
|
|
00
|
|
|
#2 | |||
|
Expert Confirmé Sénior
![]() Daniel aucune Inscription : septembre 2011 Messages : 2 004 ![]() |
Bonjour,
Tu veux dire que le classeur portent le même nom (y compris l'extension "xls" ?) Quant à refaire ta formule, il serait plus simple de nous dire ce que tu veux calculer. Si le classeur désigné par "Variable11" n'est pas le classeur actif, tu vas dans les problèmes, car ta formule ne fait référence qu'au nom de la feuille et non pas au nom du classeur. Ou tu introduis ce dernier dans la formule, ou tu mets (sauf erreur) : Code :
__________________
Cordialement. Daniel Citation:
|
|||
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : novembre 2011 Messages : 85 ![]() |
heu, pourtant ma formule spécifie bien le nom du workbooks : ( variable11) et la feuille : activesheet , alors je ne comprends pas pourquoi il y aurait un problème de ce coté la, non ?
en fait la formule me permet de récuperer la valeur dans la colonne J de la ligne qui possède dans sa colonne B , la valeur habillé et dans sa colonne D la valeur pompe, autrement dit, une Vlookup mais avec deux paramètres , un en colonne B et un en colonne D, et l'intersection des deux donne ce que je cherche mais le seul probleme que j'ai observé, c'est quand la variable11 et donc la sheet car ils ont tout les deux le meme nom, sauf que variable11 contient .xls et que la sheet non, Et bien quand la valeur est de la forme xxx-3 ou xxx-4 etc, et bien la variable coutpompe renvoi une erreur 2015, n'y a t'il pas moyen de passer par une autre extension que .name ? Merci |
|
|
00
|
|
|
#4 | ||
|
Expert Confirmé Sénior
![]() Daniel aucune Inscription : septembre 2011 Messages : 2 004 ![]() |
Citation:
Code :
Workbooks(variable11).ActiveSheet.Name Code :
"[" & variable11 & "]" & Workbooks(variable11).ActiveSheet.Name & "!$A$1"
__________________
Cordialement. Daniel Citation:
|
||
|
00
|
|
|
#5 |
|
Invité régulier
![]() Inscription : novembre 2011 Messages : 85 ![]() |
ah bon ? mince alors, et le fait de le mettre ou de ne pas le mettre sa change quoi alors? ( workbooks) , car si on ne le met pas, bin c'est que la feuille qui est spécifié, et avec aussi ?....
|
|
|
00
|
|
|
#6 | |
|
Expert Confirmé Sénior
![]() Daniel aucune Inscription : septembre 2011 Messages : 2 004 ![]() |
Si le classeur est le classeur actif, tu n'as ni besoin de préciser le classeur, ni la feuille. C'est le code que j'ai posté. J'active le classeur et, dans la formule, j'ai ôté la référence au classeur et à la feuille.
__________________
Cordialement. Daniel Citation:
|
|
|
00
|
|
|
#7 |
|
Membre Expert
![]() Retraité Inscription : avril 2011 Messages : 695 ![]() |
Bonjour,
Pour ma part, j’éviterais d’utiliser un tiret "-" dans un nom de feuille. Dans une formule, il peut être interprété comme un signe "moins". Cordialement. |
|
|
00
|
|
|
#8 |
|
Invité régulier
![]() Inscription : novembre 2011 Messages : 85 ![]() |
bin en fait, concretement ma macro, joue en permanence avec 3 classeurs différents, donc pour n'avoir aucun risque de mélanger les données des classeurs, j'ai choisi, de rappeler tout le temps, le nom de feuille et le nom de classeur, sa allourdi la macro je suis d'accord, mais sa évite les .activate récurrent, après je ne suis pas un expert, mais je pensais plus propre la solution ou l'on spécifie le maximum de chose ( tant que c'est pertinent ) plutot que de passer par des .activate , qui dans mon cas vont revenir très souvent.
Pour ce qui est du tiret dans le nom de feuille, je n'est hélas pas le choix, car la macro utilise des fichiers dont je ne suis pas l'auteur, et ou les tiret sont indispensable.... donc je dois faire avec, et le but serait d'isoler ce tiret dans la formule , ou bien d'utiliser autre chose que .name pour ne pas reperer ce tiret ... n'y a t'il pas de solution ? Merci |
|
|
00
|
|
|
#9 | |
|
Expert Confirmé Sénior
![]() Daniel aucune Inscription : septembre 2011 Messages : 2 004 ![]() |
Je ne pense pas que le tiret soit un gros inconvénient, le nom de la feuille étant de type string. Est-ce que tu a réussi à incorporer le nom du classeur dans la formule ?
__________________
Cordialement. Daniel Citation:
|
|
|
00
|
|
|
#10 | ||
|
Membre Expert
![]() Retraité Inscription : avril 2011 Messages : 695 ![]() |
Bonjour,
Une autre solution : utiliser la méthode Find. Code :
|
||
|
|
00
|
|
|
#11 |
|
Invité régulier
![]() Inscription : novembre 2011 Messages : 85 ![]() |
Merci pour cette solution, je vais l'essayer,
mais tout d'abord, d'après mes test, je suis formel, c'est le tiret qui pose souci avec la formule, toute les autres valeurs hormis celle avec -3 ou autre chiffre, fonctionne avec cette formule, donc je pense vraiment que le souci vient de la ... mais je vais essayer avec votre idée. Par contre j'aurais aimé avoir plus de précision sur le fait de préciser le classeur et la feuille. si j'ai bien compris, le fait de mettre workbooks ("nom du classeur").sheet ("nom de la sheet") , ne suffit pas pour indiquer le classeur à prendre? car dans toutes les formules ou je souhaite utiliser des classeurs différents, j'ai procédé avec cette methode. en sachant que les classeurs que je spécifie ds mes formules, sont tous ouvert! ( c'est une certitude car c'est une condition de départ de la macro). Merci encore pour votre aide |
|
|
00
|
|
|
#12 | |||
|
Expert Confirmé Sénior
![]() Daniel aucune Inscription : septembre 2011 Messages : 2 004 ![]() |
Le code suivant fonctionne. La feuille active du classeur défini par "variable11" est "Feuil1-3" :
Code :
__________________
Cordialement. Daniel Citation:
|
|||
|
00
|
|
|
#13 |
|
Invité régulier
![]() Inscription : novembre 2011 Messages : 85 ![]() |
je n'ai pas tout suivi, votre code permet de me retourner ceci : Workbooks(variable11).ActiveSheet.Name
mais du coup sans tenir compte du -3 grace au evaluate, C'est bien sa ? pourriez vous me donner des précisions à propos de mon dernier post? merci encore pour votre rapidité |
|
|
00
|
|
|
#14 | ||||
|
Expert Confirmé Sénior
![]() Daniel aucune Inscription : septembre 2011 Messages : 2 004 ![]() |
Désolé de ne pas avoir été plus clair.
Citation:
Code :
Evaluate("'[" & variable11 & "]" & Workbooks(variable11).ActiveSheet.Name & "'!$A$1") Code :
='[BARRES DE COMMANDE.xls]Feuil1-3'!$A$1
__________________
Cordialement. Daniel Citation:
|
||||
|
00
|
|
|
#15 |
|
Invité régulier
![]() Inscription : novembre 2011 Messages : 85 ![]() |
ok d'accord, j'ai essayé le code, et effectivement sa renvoi bien la valeur de la cellule A1, ok, mais j'ai pas compris la finalité? par rapport à ma formule de départ
je vois bien maintenant comment rédiger une commande en spécifiant le nom de feuille et du classeur, mais je n'ai pas compris la différence avec le fait de mettre workbooks qui fonctionne aussi le evaluate me permet donc de faire abstraction du -3 c'est bien sa ? merci pour votre aide |
|
|
00
|
|
|
#16 | |||||
|
Expert Confirmé Sénior
![]() Daniel aucune Inscription : septembre 2011 Messages : 2 004 ![]() |
Citation:
Citation:
Code :
__________________
Cordialement. Daniel Citation:
|
|||||
|
00
|
|
|
#17 |
|
Invité régulier
![]() Inscription : novembre 2011 Messages : 85 ![]() |
oui merci pour l'explication de la syntaxe
ABXXXX-3 , ou XXXX sont toujours des chiffres... du coup mon souci arrive quand je tombe sur une feuille nommé AB4045-3 , et la sa devient un souci le -3 .... je pense? j'essaye votre formule en parallèle. merci |
|
|
00
|
|
|
#18 | |||
|
Expert Confirmé Sénior
![]() Daniel aucune Inscription : septembre 2011 Messages : 2 004 ![]() |
Oups. Il manquait quelques apostrophes :
Code :
__________________
Cordialement. Daniel Citation:
|
|||
|
00
|
Copyright © 2000-2012 - www.developpez.com