nombre occurences ds chaîne caractères
#1
XLvisiteur_VisiteurXL


Posté le : 20-03-2008 19h37
Bonjour le forum,

Je sêche depuis longtemps :

Si une cellule mentionne "Arsène & Bérenger & Cunégonde",
il y a-t-il une formule ou un enchainement de formules qui puisse renvoyer dans trois cellules contigües
"Arséne" ; "Bérenger" ; "Cunégonde" ?

Pour moi, cela représente une double gageure :
1-compter les occurences de "&"
2-formuler l'étendue d'une plage proportionnée à nombre de "1" plus un.

Je sais qu'une fonction personnalisée ne permet pas d'affecter la valeur des cellules (adjacentes).
Si un vrai "sub" avec lanceur à la main, CommandButton, Menu personnalisé, l'autorise,
je crois qu'il présente l'inconvénient de nécessiter un déclenchement exprès.

Bonsoir le Forum, Jacques
Hors Ligne
Rapport   Haut 

Re: nombre occurences ds chaîne caractères
#2
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1539

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 20-03-2008 22h10
Bonsoir jacques, le Forum,

En pure formule Excel, je ne saurais pas faire (peut-être un formuliste passera-t'il par là ?)...

Cela dit, on peut y arriver avec une fonction personnalisée VBA matricielle.

Voici le code VBA à copier dans un module de code Standard (ex: Module1) :

Option Explicit

Function SplitCell(As RangeDelim As String) As Variant
'myDearFriend!  -  www.mdf-xlpages.com
Dim Sp As Variant, vSp As Variant
Dim C As Byte, Cmax As Byte
    Cmax = Application.Caller.Columns.Count
    ReDim vSp(1 To 1, 1 To Cmax)
    Sp = Split(R.Text, Delim)
    For C = 0 To Cmax - 1
        If C <= UBound(Sp) Then
            vSp(1, C + 1) = Sp(C)
        Else
            vSp(1, C + 1) = ""
        End If
    Next C
    SplitCell = vSp
End Function


La mise en oeuvre sur la feuille de calcul est simple :
[list]
[*]Soit en A1, la chaine de caractères à analyser : "Arsène & Bérenger & Cunégonde & ..."
[*]Tu sélectionnes une plage de cellules en ligne, par exemple : B2:B10
[*]Dans la barre de formule, tu saisies :
=SplitCell(A1;"&")

[*]Et tu valides l'ensemble par Ctrl + Maj + Entrée (comme pour une formule matricielle classique)
[/list]
La syntaxe à respecter pour cette fonction personnalisée est :
= SplitCell ( CelluleSource ; Séparateur )


J'ajoute qu'on aurait pu également imaginer une vraie procédure VBA (Sub), déclenchée sur l'évènement Change() de la feuille active. Ainsi, il n'est pas nécessaire à l'utilisateur de lancer le traitement, le déclenchement est automatique sur modification de la cellule source.

Par ailleurs, pour ton info jacques, il n'est pas nécessaire de préfixer tes nouveaux sujets par [non résolu]. L'utilité de ce préfixe t'est expliqué ICI : il sert en particulier à réactiver un fil clos précédemment.

Cordialement,

Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

nombre occurences ds chaîne caractères
#3
XLvisiteur_VisiteurXL


Posté le : 21-03-2008 19h59
bonjour MdF,
bonjour le Forum,

merci pour le code, nickel.
voila une routine qui fera florès ;
il faudrait pouvoir l'emmener avec soi partout
comme sommecouleur et concatene(plage) et cent autres fort utiles.

j'imagine de tête des collègues quand ils vont trouver
des TRANSPOSE(splitcell( ...)) dans les classeurs,
déjà que je passe pour un zébulon ...
http://www.mdf-xlpages.com/uploads/smil46f117c5e9bef.gif

bonsoir J.
Hors Ligne
Rapport   Haut 

Re: nombre occurences ds chaîne caractères
#4
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1539

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 21-03-2008 20h54
Bonsoir jacques,

Citation :

jacques a écrit:
bonjour MdF,
bonjour le Forum,

merci pour le code, nickel.
voila une routine qui fera florès ;
il faudrait pouvoir l'emmener avec soi partout
comme sommecouleur et concatene(plage) et cent autres fort utiles.

j'imagine de tête des collègues quand ils vont trouver
des TRANSPOSE(splitcell( ...)) dans les classeurs,
déjà que je passe pour un zébulon ...
http://www.mdf-xlpages.com/uploads/smil46f117c5e9bef.gif

bonsoir J.


Content que ce code te convienne

Merci de solder ton fil de discussion si tu penses que le sujet est clos.

Par ailleurs jacques, d'un éditeur de post fort simple, tu arrives à en faire quelque chose de compliqué (dois-je comprendre que c'est une habitude ?) : pour insérer un smiley, ce n'est pas la peine d'en copier l'Url, il suffit simplement de cliquer dessus !
Je t'invite à parcourir UNE FOIS les différents posts et articles de la FAQ qui t'expliquent comment te servir de cet éditeur... Merci de ta compréhension.

Cordialement,

Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: nombre occurences ds chaîne caractères
#5
Accro XLPages

Inscription: 23/05/2007
De Chamrousse

Messages: 309

Système d'exploitation:
PC
Version Excel utilisée:
2013
Posté le : 21-03-2008 21h10
Bonjour à tous,

Ah ben oui mais non, le sujet n'est pas résolu, sauf pour Jacques...
Il manque la solution par formule. J'ai Arsène et Cunégonde mais la pauvre Bérengère est entourée d'espace et de &....
Mais que fait Jean-Marie arf..

A+ à tous


Cordialement
Hors Ligne
Rapport   Haut 

Re: nombre occurences ds chaîne caractères
#6
Accro XLPages

Inscription: 09/05/2007
De Courcelles-les-Montbéliard

Messages: 286

Système d'exploitation:
PC & Mac
Version Excel utilisée:
Mac 2004 - 2011, et PC 2003 - 2010
Posté le : 21-03-2008 22h49
Bonsoir tout le monde

Ci-joint un fichier une formule et les explications.

Je précise que c'est une solution pour le fun, je préfère sincèrement l'utilisation du code VBA pour résoudre ce type de problème, Merci à Didier pour l'avoir écrit.

Bonne soirée

@+Jean-Marie
Pièce jointe:
zip Décomposer texte.zip   [ Taille: 4.85 Ko - Téléchargements: 600 ]
Hors Ligne
Rapport   Haut 

Re: nombre occurences ds chaîne caractères
#7
Accro XLPages

Inscription: 23/05/2007
De Chamrousse

Messages: 309

Système d'exploitation:
PC
Version Excel utilisée:
2013
Posté le : 21-03-2008 23h00
Bonjour à tous,

Eh bien, moi, je remercie JeanMarie pour cette excellente formule commentée.

A+
Edité par JCGL le 22/03/2008 11:17:00


Cordialement
Hors Ligne
Rapport   Haut 

Re: nombre occurences ds chaîne caractères
#8
XLvisiteur_VisiteurXL


Posté le : 22-03-2008 17h40
Bonjour le Fourm,
Bonjour JCGL, Jean-Marie et MdF,

Deux solutions dont une par formule ; quel luxe !
Magic Jean-Marie a encore magnifiquent œuvré,
évidemment la formule est alambiquée et le code paraît si élégant !

Heu, bien sûr qu'il était résolu , le post ;
j'ai oublié -en partie troublé par la remarque de MdF, de cocher la case.

Bonsoir à tous. J.
Hors Ligne
Rapport   Haut 


Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Qui consulte actuellement ce sujet ?   1 Utilisateur(s) anonymes