Rapport de message :*
 

Re: nombre occurences ds chaîne caractères

Titre du sujet : Re: nombre occurences ds chaîne caractères
par myDearFriend! le 20/03/2008 22:10:07

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,