Je rends à MichelXld ce qui est à MichelXld :
MichelXld a écrit :
Compter le nombre de "a" dans la cellule A1 (Les A majuscules ne sont pas comptés)
=NBCAR(A1)-NBCAR(SUBSTITUE(A1;"a";""))
Donc à la place du "a", je cherche ""
Si je prends ce texte en exemple :
C:\Documents and Settings\FR018661\Desktop\dossier\dossier1\dossier2\2008_clients1.xls
a) la formule
=NBCAR(D17)-NBCAR(SUBSTITUE(D17;"";""))
renvoie 7 (il y a 7 "")
b) Ensuite, je substitue le dernier "" par un "@" :
- rappel sur la fonction SUBSTITUE(texte;Texte_cherché;Nouveau_texte;Occurence)
Texte : notre texte en D17
Texte cherché : c'est un ""
Nouveau_texte : c'est notre "@"
Occurrence : c'est que l'on vient de trouver, le 7ème "", l'occurrence est donc notre formule de l'étape a) =NBCAR(D17)-NBCAR(SUBSTITUE(D17;"";""))
donc avec la formule
=SUBSTITUE(D17;"";"@";NBCAR(D17)-NBCAR(SUBSTITUE(D17;"";"")))
on obtient le texte :
C:\Documents and settings\FR018661\Desktop\dossier\dossier1\dossier2@2008_clients1.xls
c) maintenant que le caractère précédent le nom que l'on veut récupérer est facilement identifiable, il suffit d'une fonction STXT
- rappel sur STXT(Texte;Début;Nombre)
Texte : c'est notre texte avec l'@, donc la formule en étape b) SUBSTITUE(D17;"";"@";NBCAR(D17)-NBCAR(SUBSTITUE(D17;"";"")))
Début : on va chercher le @ (on s'est donné assez de mal pour l'avoir )avec la fonction éponyme dans la formule précédente :
(ne pas oublier le +1 pour ne pas extraire le "@")
Nombre : (là je vais changer le -5 de place pour te perturber) c'est la longueur du texte d'obtenu (sinon il ne trouvera pas le @) - 5 (pour ne pas compter l'extension5) - la position de notre "@" (qui est donc la même formule que l'argument Début de STXT)
ce qui donne pour nombre de caractère prélevés la formule suivante :
(NBCAR(SUBSTITUE(D17;"";"@";NBCAR(D17)-NBCAR(SUBSTITUE(D17;"";""))))-5)-
CHERCHE("@";SUBSTITUE(D17;"";"@";NBCAR(D17)-NBCAR(SUBSTITUE(D17;"";""))))
Et pour formule totale :
=STXT(SUBSTITUE(D17;"";"@";NBCAR(D17)-NBCAR(SUBSTITUE(D17;"";"")));
CHERCHE("@";SUBSTITUE(D17;"";"@";NBCAR(D17)-NBCAR(SUBSTITUE(D17;"";""))))+1;
(NBCAR(SUBSTITUE(D17;"";"@";NBCAR(D17)-NBCAR(SUBSTITUE(D17;"";""))))-5)
-CHERCHE("@";SUBSTITUE(D17;"";"@";NBCAR(D17)-NBCAR(SUBSTITUE(D17;"";"")))))
A +
EDIT : c'est surtout pour ceux qui veulent les explications, je me doute que tu es chevronné et que tu as décortiqué