Découpé une chaine de caractères

Bonjour

Je souhaiterai découpé une chaine de caractères le nom du code postal en sachant qu'il y a environ 150 lignes par colonne

en VBA

Je joint un exemple

Merci d'avance

Cordialement

Salut Max18

Voici le code pour ce que tu souhaites

Sub Découpe()
  Dim DLig As Long, Lig As Long
  ' Tableau des données séparées
  Dim sTab() As String
  With Sheets("Feuil1")
    ' Trouver la dernière ligne remplie de la colonne C
    DLig = .Range("C" & Rows.Count).End(xlUp).Row
    ' Pour chaque ligne en commençant par la 3ème
    For Lig = 3 To DLig
      ' Eclater la valeur en 2 à partir de la parenthèse
      sTab = Split(.Range("C" & Lig), "(")
      ' Inscrire les valeurs
      .Range("E" & Lig) = Trim(sTab(0))
      .Range("F" & Lig) = Left(sTab(1), Len(sTab(1)) - 1)
    Next Lig
  End With
End Sub

A+

Bonjour Bruno,

Génial vraiment super....!

Est-il possible de faire la même chose sur plusieurs colonnes en même temps

Un grand merci et une bonne journée

Max

Re,

Oui, il suffit de dupliquer ces lignes

      ' Eclater la valeur en 2 à partir de la parenthèse
     sTab = Split(.Range("C" & Lig), "(")
      ' Inscrire les valeurs
     .Range("E" & Lig) = Trim(sTab(0))
      .Range("F" & Lig) = Left(sTab(1), Len(sTab(1)) - 1)

En autant de colonnes à traiter

ATTENTION, il te faudra changer la lettre des colonnes

Re Bruno

Oui sa marche nickel sauf une petite chose que je viens de constater, dans les colonne il y a des cellules vide ou avec des lettres "A, B, C ect... " et la sa beug peut-on faire quelque ou il faut faire avec ?

Merci beaucoup pour tous

Max

Re,

Dans ce cas, il faut ajouter un test

Sub Découpe()
  Dim DLig As Long, Lig As Long
  ' Tableau des données séparées
  Dim sTab() As String
  ' Avec la feuille nommée 'Feuil1'
  With Sheets("Feuil1")
    ' Trouver la dernière ligne remplie de la colonne C
    DLig = .Range("C" & Rows.Count).End(xlUp).Row
    ' Pour chaque ligne en commençant par la 3ème
    For Lig = 3 To DLig
      ' Tester si la cellule contient quelque chose
      If .Range("C" & Lig) <> "" Then
        ' Eclater la valeur en 2 à partir de la parenthèse
        sTab = Split(.Range("C" & Lig), "(")
        ' Inscrire les valeurs
        .Range("E" & Lig) = Trim(sTab(0))
        .Range("F" & Lig) = Left(sTab(1), Len(sTab(1)) - 1)
      End If
    Next Lig
  End With
End Sub

A+

Re,

Je te remercie et te souhaite une bonne soirée

@+

Max

Rechercher des sujets similaires à "decoupe chaine caracteres"