Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2013 Extraction de caracteres avec creation de colones

  • Initiateur de la discussion Initiateur de la discussion sz-gsi
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

S

sz-gsi

Guest
Bonjour,

Je cherche un moyen d'extraire des noms séparés par des \ et se trouvant dans une meme cellule . Pour chaque noms il faudrait creer une colone .

Ci dessous un exemple de ce que contient une cellule dans la colonne A :

Partages\Annexe\GU\DEJES\0-ALL ARCHIVES\ARCHIVE 2013-14\2012-2013 - sondages

Mon souhait serait de pouvoir séparer ce qui se trouve entre les \ tout en créant une colonne pour chaque extraction .
Ainsi on aurait dans la colonne B Partages
colonne C Annexe
colonne D GU

Je n'ai besoin d'extraire que les 3 premiers noms .

Merci d'avance !
 
Bonjour Sz-Gsi, bonjour le forum,

pour une seule donnée en A1 :

VB:
Sub Macro1()
Dim O As Worksheet
Dim J As Byte

Set O = Worksheets("Feuil1")
For J = 0 To 2
    O.Cells(1, J + 2).Value = Split(O.Cells(1, "A"), "\")(J)
Next J
End Sub

Pour plusieurs lignes dans la colonne A commençant en A1 :
Code:
Sub Macro2()
Dim O As Worksheet
Dim TV As Variant
Dim I As Integer
Dim J As Byte

Set O = Worksheets("Feuil1")
TV = O.Range("A1").CurrentRegion
For I = 1 To UBound(TV, 1)
    If UBound(Split(TV(I, 1), "\")) > 0 Then
        For J = 0 To 2
            O.Cells(I, J + 2).Value = Split(TV(I, 1), "\")(J)
        Next J
    End If
Next I
End Sub
 
Bonjour à tous, bonjour Robert et Pierrejean

Cf. en pièce jointe.

La formule dans C1 est compliquée pour que l'on puisse facilement la tirer (copier-coller) vers la droite sans avoir à la modifier à chaque fois, pour chaque nouvelle colonne.

Si tu ne veux que les 3 premiers "noms", tu ne la mets que dans 3 colonnes.

@ plus
 

Pièces jointes

Bonjour Sz-gsi, Robert, PierreJean, Cisco,
En PJ un essai. C'est un cas typique de la fonction Split.
VB:
Sub test()
Taille = [A65000].End(3).Row
For i = 2 To Taille
    tablo = Split(Range("A" & i), "\")
    For N = 0 To UBound(tablo)
        Cells(i, N + 2) = tablo(N)
    Next N
Next i
End Sub
 

Pièces jointes

bonjour
avec une toute petite fonction perso utilisable en vba ou formule

dans un module tu met
VB:
Option Explicit
Function partoffstring(cel As String, separator As String, Optional index As Long = 0)
    Dim T
    T = Split(cel, separator)
    If UBound(T) = 0 Then
        partoffstring = "Invalid Chaine!!)"
    Else
        If UBound(T) >= index - 1 Then partoffstring = T(index - 1) Else partoffstring = ""
    End If
End Function

exemple d'utilisation:
dans A2 il y a "blablabla\truc\bidule\machin"
en B2 tu mettra =SI($A2<>"";partoffstring($A2;"\";1);"")
en C2 tu mettra
=SI($A2<>"";partoffstring($A2;"\";2);"")
en D2 tu mettra =SI($A2<>"";partoffstring($A2;"\";3);"")

bien faire attention au "$" devant la colonne

ensuite tu étends la formule vers le bas jusqu’où tu veux sans te soucier de ce qu'il y a en "A"!!!

démonstration


si il y en a 3 tu les aura
si il y en a que 2 tu aura que les deux
si il y en a pas tu aura invalid Chaine!!!

bien entendu si c'est vide tu aura rien même si il y a la formule en B😀
 
Ah ... et tu échappes comment à cela, avec split ?

Pour mémoire et éviter de s'égarer "ailleurs" (et discuter d'autre chose) :
Je cherche un moyen d'extraire des noms séparés par des \ et se trouvant dans une meme cellule . Pour chaque noms il faudrait creer une colone .

 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…