Séparer une chaine de caractère

  • Initiateur de la discussion Initiateur de la discussion maval
  • 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 !

maval

XLDnaute Barbatruc
Bonjour,

J'aimerai trouvé un code VBA pour séparer une chaine de caractère de la façon suivante:

De la colonne "A"Le Tignet : 3 124 habitants (2011 : 3099)

vers la colonne "B" Le Tignet et la colonne "C" : 3 124 habitants (2011 : 3099)

Je vous remercie d'avance

Cordialement

Maval
 

Pièces jointes

Re : Séparer une chaine de caractère

Bonjour Dull

Je suis sur que tu as raison sur le faite que la formule est souvent plus indiqué que le VBA.
Le problème est que j'ai 95 feuilles avec environ 800 colonnes alors avec le VBA sa vas beaucoup plus vite

Merci et très WE

Maval
 
Re : Séparer une chaine de caractère

Re,

tout dépends de ce que tu appelle rapidité

regarde le fichier joint je me suis arrêté à 5672 lignes
sélectionne B2:C2
place ton curseur en bas à droite de la cellule C2 juqu'a voir apparaitre une petite croix fine
double click c'est quasi instantané

Bonne Journée
 

Pièces jointes

Re : Séparer une chaine de caractère

Bonjour à tous


Trois fonctions personnalisées :​
VB:
Function toto(x)
    toto = Split(x, ":", 2)
End Function

Function tutu(x)
Dim tmp
    tmp = Split(x, ":", 2)
    If UBound(tmp) < 1 Then tmp = Array("", "")
    tutu = tmp
End Function

Function tata(x)
Dim tmp
    tmp = Split(x, ":", 2)
    If UBound(tmp) > 0 Then tmp(1) = " :" & tmp(1) Else tmp = Array("", "")
    tata = tmp
End Function



ROGER2327
#6151


Dimanche 8 Tatane 139 (Susception du Croc à Merdre - fête Suprême Seconde)
3 Thermidor An CCXX, 3,5010h - melon
2012-W29-6T08:24:09Z
 

Pièces jointes

Re : Séparer une chaine de caractère

Suite...


Pour traiter la colonne A en une passe, voir l'onglet Feuil2.​
VB:
Sub gaga()
Dim i&, Plg As Range, s(), Tmp
    Set Plg = Range(Cells(2, 1), Cells(Rows.Count, 1).End(xlUp))
    ReDim s(1 To Plg.Count, 1)
    For i = 1 To Plg.Count
        Tmp = Split(Plg(i), ":", 2)
        s(i, 0) = Tmp(0)
        s(i, 1) = Tmp(1)
    Next
    Plg.Offset(0, 1).Resize(, 2).Value = s
End Sub

Private Sub CommandButton1_Click()
    gaga
End Sub



ROGER2327
#6152


Dimanche 8 Tatane 139 (Susception du Croc à Merdre - fête Suprême Seconde)
3 Thermidor An CCXX, 3,8544h - melon
2012-W29-6T09:15:02Z
 

Pièces jointes

Re : Séparer une chaine de caractère

Bonjour à tous


Une solution VBAisée d'une solution manuelle qui mixe Données/Convertir et concaténation par formule
(brute de décoffrage en direct de l'enregisteur de macros)
VB:
Sub Macro1()
' Macro enregistrée le 21/07/2012 par Staple1600
'Bien sûr faire les adaptations nécessaires pour les plages de données
'ici j'avais mis des données de  test en A1:A26
    Selection.TextToColumns Destination:=Range("D1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
        :="(", FieldInfo:=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True
    Range("D1:D26").Select
    Selection.TextToColumns Destination:=Range("B1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
        :=":", FieldInfo:=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True
    Range("D1").FormulaR1C1 = "=RC[-1]&"" (""&RC[1]"
  Range("D1").AutoFill Destination:=Range("D1:D26")
    Range("D1:D26").Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Columns("C:C").Select
    Application.CutCopyMode = False
    Selection.Delete Shift:=xlToLeft
    Columns("D:D").Select
    Selection.Delete Shift:=xlToLeft
End Sub
 
Dernière édition:
- 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

Discussions similaires

Réponses
4
Affichages
223
Réponses
20
Affichages
810
  • Question Question
Microsoft 365 MFC dans tableau
Réponses
2
Affichages
224
Retour