Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Excel

Excel Forum d'entraide sur Excel

Réponse
 
Outils de la discussion
Vieux 14/08/2008, 21h09   #1 (permalink)
Membre du Club
 
Date d'inscription: juin 2007
Messages: 82
Par défaut Extraire caractère d'un mot

Bonjour,

Je voudrais savoir comment faire pour ne garder que les caractères avant une parenthèses.
Admettons, que dans la cellule A1, on a "Devellopez (Excel) (test)", je voudrai avoir dans la cellule A2: "Devellopez", dans la cellule A3: "Devellopez (Excel)" et dans la cellule A4: "test", c'est-à-dire que dans la cellule A2, on ne garde que les caractères avant la première parenthèse ouvrante, dans la cellule A3 les caractères avant la deuxième parenthèse ouvrante et dans la cellule A4 les caractères contenus dans la dernière parenthèse.
De plus, le nombre de parenthèse peut varier ainsi que le nombre de caractère.

Merci pour votre aide.
qltmi est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 14/08/2008, 21h51   #2 (permalink)
Membre Expert
 
Avatar de jacques_jean
 
Date d'inscription: janvier 2006
Localisation: St Cyr s/mer (83)
Âge: 64
Messages: 1 264
Par défaut

Bonsoir,

Regardez l'aide dans VBA sur la fonction "Split" mais vous pouvez également trouver des exemples sur ce forum.

Mais n'oubliez pas que "Développez" ne s'écrit pas avec 2 "ll"
__________________
N'oubliez pas de cliquer sur quand vous avez obtenu la réponse à votre question.
jacques_jean est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 15/08/2008, 01h11   #3 (permalink)
Membre Expert
 
Date d'inscription: juillet 2007
Localisation: Loire Atlantique (44)
Âge: 52
Messages: 1 002
Par défaut

Salut qltmi et le forum
Citation:
De plus, le nombre de parenthèse peut varier ainsi que le nombre de caractères.
Il est bien entendu que on ne peut en avoir plus : sinon, il faut fixer une limite, ou travailler par macros.
A1 :
Code :
Developpez (Excel) (test)
A2 :
Code :
=SI(ESTERR(TROUVE("(";A1));A1;GAUCHE(A1;TROUVE("(";A1)-1))
A3 :
Code :
=SI(ESTERR(TROUVE("(";A1;NBCAR(A2)+2));A1;GAUCHE(A1;TROUVE("(";A1;NBCAR(A2)+2)-1))
A4 :
Code :
=SI(ESTERR(TROUVE("(";A1;NBCAR(A2)+2));"";GAUCHE(SUPPRESPACE(DROITE(A1;NBCAR(A1)-NBCAR(A3)-1));NBCAR(SUPPRESPACE(DROITE(A1;NBCAR(A1)-NBCAR(A3)-1)))-1))
Affichage :
A1 : Developpez (Excel) (test)
A2 : Developpez
A3 : Developpez (Excel)
A4 : test
A+
Gorfael est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 15/08/2008, 09h59   #4 (permalink)
Membre du Club
 
Date d'inscription: juin 2007
Messages: 82
Par défaut

Bonjour,

merci pour vos deux réponses. Vu que je dois utiliser du VBA, je voudrai savoir quel solution est la plus rapide en terme d'exéution, parcourir toutes les cellules dans lequel il faut faire ce traitement (c'est-à-dire toutes les cellule de tous les 10 lignes) avec la formule split, ou mettre les formules proposées par Gorfael dans un range.

Merci pour votre réponse.
qltmi est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 15/08/2008, 14h27   #5 (permalink)
Membre Expert
 
Avatar de jacques_jean
 
Date d'inscription: janvier 2006
Localisation: St Cyr s/mer (83)
Âge: 64
Messages: 1 264
Par défaut

Bonjour,

Compte tenu de votre dernière réponse :

Citation:
je voudrais savoir quelle solution est la plus rapide en terme d'exécution, parcourir toutes les cellules dans lequelles il faut faire ce traitement (c'est-à-dire toutes les cellule de tous les 10 lignes) avec la formule split, ou mettre les formules proposées par Gorfael dans un range.
il faudrait joindre un exemple de votre fichier, car pourquoi toutes les 10 lignes ?
__________________
N'oubliez pas de cliquer sur quand vous avez obtenu la réponse à votre question.
jacques_jean est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 15/08/2008, 18h15   #6 (permalink)
Membre du Club
 
Date d'inscription: juin 2007
Messages: 82
Par défaut

Bonjour,

vous trouverez en pièce jointe un exemple de fichier que je reçoit. Le fichier est rempli colonne par colonne et dès qu'un ligne est remplie on passe à la ligne suivante. La première ligne contient le nom du client, puis la première parenthèse contient son identifiant et la dernière l'identifiant de la commande. Entre la première parenthèse et la dernière il peut y avoir certaines information mais ce n'est toujours pas le cas, l'adresse de livraison si elle est différente de celle où la personne habite....
Les lignes suivantes contiennent certaines informations relatives à la commande.
Je sais le fichier est très bizarre, mais je n'y peux rien.
Fichiers attachés
Type de fichier : xls test.xls (18,0 Ko, 3 affichages)
qltmi est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 15/08/2008, 19h07   #7 (permalink)
Membre Expert
 
Date d'inscription: novembre 2006
Âge: 45
Messages: 1 078
Par défaut

si tout ton fichier est organisé comme ça, tu peux faire ça
Code :
 
Sub décortik()
dercol = Range("iv1").End(xlToLeft).Column
For i = 2 To dercol
chaine = Replace(Cells(1, i), "(", ")")
chaine = Replace(chaine, ") )", ")")
chaine = Replace(chaine, "))", ")")
temp = Split(chaine, ")")
For j = 0 To UBound(temp)
Cells(j + 7, i) = temp(j)
Next j
Next i
End Sub
 
 
j'ai testé, ça marche.on ne peut pas aligner les données puisque les entrèes ne sont pas régulières, mais c'est toujours ça
bon week end
alsimbad est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 16/08/2008, 15h37   #8 (permalink)
Membre du Club
 
Date d'inscription: juin 2007
Messages: 82
Par défaut

Bonjour,

merci alsimbad, ta méthode me convient parfaitement aussi, il me permet d'avoir tous les caractères entre parenthèse, avec ça je peux reconcaténer à ma façon.
Merci pour tous vos suggestions.
qltmi est déconnecté   Envoyer un message privé Réponse avec citation
NEWS MS-OFFICEFAQs OFFICETUTORIELS OFFICELIVRES OFFICESOURCES VBAACCESS

Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Excel

 
Offres d' emploi informatique sur Lesjeudis.com


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide