Excel: Mise au point d'une Fonction copie de caractère
Résolu
Y04NN
Messages postés
18
Date d'inscription
Statut
Membre
Dernière intervention
-
Y04NN Messages postés 18 Date d'inscription Statut Membre Dernière intervention -
Y04NN Messages postés 18 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je vais vous exposé mon problème et ma méthode de résolution j'espère que c'est clair. merci de bien lire ma description.
Voici mon problème:
J'ai une colonne dans laquelle apparaît des description suivi d'un code:
- Le nombre de caractère et d'espace dans la description varie tout le temps.
- Le point commun de tous c'est code, c'est que en partant de la droite le code s'arrête une fois qu'on arrive à l'espace.
ex:
Des crip tion Des cripti on Code
Des cripti on Co
D esc ript ion Desc Ode
Des crip tion Des cripti on CodeCod
J'ai besoin de pouvoir copier ce code dans une autre colonne.
Solution que j'envisage:
je voudrais utiliser la fonction type GAUCHE(A1;3) et la fonction type TROUVE(" ";A1)
Fonction ensemble ça donne quelque chose comme:
=GAUCHE(A1;TROUVE(" ";A1)-1)
dans mon cas le coté qui m'intéresse c'est le cote droit pas le gauche .... (gardons ça en tête pour plus tard)
Analogie pour tester la fonction:
Je prends une ligne sur laquelle j'écris
jean jacques j'utilise =GAUCHE(A1;TROUVE(" ";A1)-1) dans la colonne d'à coté.
ce qui me donne jean. jean jacques> jean
Peut importe ce que je rajoute à Jean j'obtiens bien la même chose.
jeafdsn jacques > jeafdsdn
Maintenant je veux isoler jacques comme dans mon cas précis.
j'utilise alors =DROITE(A1;TROUVE(" ";A1)-1) mais j'obtiens pas jacques en entier ...
jean Jacques > cques ?
si j'ajoute des lettres dans la partie "cques" de jacques la fonction recopie que les 5 dernières lettres.
Je pense que je n'arrive pas à régler la fonction notamment au niveau du "-1"
Je travaille avec excel 2003.
Quelqu'un peut il m'aider ? :)
Je vais vous exposé mon problème et ma méthode de résolution j'espère que c'est clair. merci de bien lire ma description.
Voici mon problème:
J'ai une colonne dans laquelle apparaît des description suivi d'un code:
- Le nombre de caractère et d'espace dans la description varie tout le temps.
- Le point commun de tous c'est code, c'est que en partant de la droite le code s'arrête une fois qu'on arrive à l'espace.
ex:
Des crip tion Des cripti on Code
Des cripti on Co
D esc ript ion Desc Ode
Des crip tion Des cripti on CodeCod
J'ai besoin de pouvoir copier ce code dans une autre colonne.
Solution que j'envisage:
je voudrais utiliser la fonction type GAUCHE(A1;3) et la fonction type TROUVE(" ";A1)
Fonction ensemble ça donne quelque chose comme:
=GAUCHE(A1;TROUVE(" ";A1)-1)
dans mon cas le coté qui m'intéresse c'est le cote droit pas le gauche .... (gardons ça en tête pour plus tard)
Analogie pour tester la fonction:
Je prends une ligne sur laquelle j'écris
jean jacques j'utilise =GAUCHE(A1;TROUVE(" ";A1)-1) dans la colonne d'à coté.
ce qui me donne jean. jean jacques> jean
Peut importe ce que je rajoute à Jean j'obtiens bien la même chose.
jeafdsn jacques > jeafdsdn
Maintenant je veux isoler jacques comme dans mon cas précis.
j'utilise alors =DROITE(A1;TROUVE(" ";A1)-1) mais j'obtiens pas jacques en entier ...
jean Jacques > cques ?
si j'ajoute des lettres dans la partie "cques" de jacques la fonction recopie que les 5 dernières lettres.
Je pense que je n'arrive pas à régler la fonction notamment au niveau du "-1"
Je travaille avec excel 2003.
Quelqu'un peut il m'aider ? :)
A voir également:
- Excel: Mise au point d'une Fonction copie de caractère
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Excel moyenne - Guide
7 réponses
Bonjour,
Sur ton exemple de Jean Jacques, que te renvoie la fonction TROUVE(" ";A1) ?
L'emplacement du caractère espace dans Jean Jacques; soit 5.
TROUVE(" ";A1)-1 dans l'exemple de Jean Jacques revoie donc 4.
La fonction DROITE fonctionne comme ceci :
DROITE(TEXTE;NombreDeCaractères)
Donc DROITE(Jean Jacques; 4) renvoie les 4 derniers caractères de Jean Jacques, soit ques
Ce que tu veux, c'est connaitre le nombre de caractères situés après l'espace. Mathématiquement, ce nombre de caractères est égal au nombre total de caractère de la cellule moins l'emplacement de l'espace.
Exemple de Jean Jacques :
Nbre total de caractères : 12
Emplacement de l'espace : 5
Différence : 7
Vérification : Jacques comporte bien 7 caractères.....
Donc, il te faut :
* Nbre de caractère total de A1 : =NBCAR(A1)
* Emplacement de l'espace : =TROUVE(" ";A1)
* Fonction DROITE
Mixage des trois :
=DROITE(A1;NBCAR(A1)-TROUVE(" ";A1))
Sur ton exemple de Jean Jacques, que te renvoie la fonction TROUVE(" ";A1) ?
L'emplacement du caractère espace dans Jean Jacques; soit 5.
TROUVE(" ";A1)-1 dans l'exemple de Jean Jacques revoie donc 4.
La fonction DROITE fonctionne comme ceci :
DROITE(TEXTE;NombreDeCaractères)
Donc DROITE(Jean Jacques; 4) renvoie les 4 derniers caractères de Jean Jacques, soit ques
Ce que tu veux, c'est connaitre le nombre de caractères situés après l'espace. Mathématiquement, ce nombre de caractères est égal au nombre total de caractère de la cellule moins l'emplacement de l'espace.
Exemple de Jean Jacques :
Nbre total de caractères : 12
Emplacement de l'espace : 5
Différence : 7
Vérification : Jacques comporte bien 7 caractères.....
Donc, il te faut :
* Nbre de caractère total de A1 : =NBCAR(A1)
* Emplacement de l'espace : =TROUVE(" ";A1)
* Fonction DROITE
Mixage des trois :
=DROITE(A1;NBCAR(A1)-TROUVE(" ";A1))
Bonjour
Sans macro je ne vois pas, ce qui ne veut pas dire que ...
Avec macro une proposition
1. Alt-F11 puis Insertion Module et copier le code
2. s'utilise comme une fonction excel dans la feuille
https://www.cjoint.com/?3KtosjpQNb6
Bonne suite
Sans macro je ne vois pas, ce qui ne veut pas dire que ...
Avec macro une proposition
1. Alt-F11 puis Insertion Module et copier le code
2. s'utilise comme une fonction excel dans la feuille
https://www.cjoint.com/?3KtosjpQNb6
Public Function ExtraitCode(s As String) As String
Dim ss As String, r As Long
ss = Trim(s)
ss = StrReverse(ss)
r = InStr(1, ss, " ")
If r = 0 Then
ExtraitCode = s
Else
ss = Left(ss, r - 1)
ExtraitCode = StrReverse(ss)
End If
End Function
Bonne suite
Re
Si sans macro, c'est possible!
Merci à Boisgontier
=STXT(A1;CHERCHE("|";SUBSTITUE(A1;" ";"|";NBCAR(A1)-NBCAR(SUBSTITUE(A1;" ";""))))+1;99)
Bonne journée
Si sans macro, c'est possible!
Merci à Boisgontier
=STXT(A1;CHERCHE("|";SUBSTITUE(A1;" ";"|";NBCAR(A1)-NBCAR(SUBSTITUE(A1;" ";""))))+1;99)
Bonne journée
Voilà
les fonctions que tu utilises (rendons à Boisgontier ce qui est à Boisgontier)
https://www.cjoint.com/?3KtpuybXF7U
Bon courage
les fonctions que tu utilises (rendons à Boisgontier ce qui est à Boisgontier)
https://www.cjoint.com/?3KtpuybXF7U
Bon courage
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
@ pijaku
ok j'utilise mal la fonction Trouver ()...
La solution que tu proposes solutionne le problème avec jean jacques mais pas mon problème initial qui est:
Copier la dernière chaîne de caractère en partant de la gauche ou la première chaîne de caractère ne partant de la droite peu important la longueur de la description et la longueur du code.
ex:
Des crip tion Des cripti on Code > Code
Des cripti on Co > Co
D esc ript ion Desc Ode > Ode
Des crip tion Des cripti on CodeCod > CodeCod
ok j'utilise mal la fonction Trouver ()...
La solution que tu proposes solutionne le problème avec jean jacques mais pas mon problème initial qui est:
Copier la dernière chaîne de caractère en partant de la gauche ou la première chaîne de caractère ne partant de la droite peu important la longueur de la description et la longueur du code.
ex:
Des crip tion Des cripti on Code > Code
Des cripti on Co > Co
D esc ript ion Desc Ode > Ode
Des crip tion Des cripti on CodeCod > CodeCod
pas vu ta proposition au moment de poster
j'ai interprété différemment la demande
Extraction depuis le dernier espace jusqu'à la fin du texte
cdlmnt
J'avais choisi de traiter le problème pas à pas.
J'allais donc y venir. Tout doucettement, en douceur, de manière didactique.
Mais bon, l'essentiel étant le résultat, j'imagine Y04NN content de ta formule.
Bonne fin de journée à toi.