Split("-")

Bonjour,

voici mon problème,
J'aimerai de faire l'extraction des données.
voici ce que ce je veux:

5 réponses

  1. Bonjour,

    Essaies :
    Option Explicit
    Sub Test()
    Dim r As Range
    Dim i As Long
    Dim v As Variant
    Dim t As Variant
    Dim n As Integer
      'Plage de cellules à traiter
      Set r = Worksheets("Feuil1").Range("A1").CurrentRegion  'Adapter le nom de la feuille
      'Analyser chaque ligne en partant de la fin
      For i = r.Rows.Count To 2 Step -1
        'Valeur à tester
        v = r.Cells(i, 4).Value
        'tableau des références
        t = Split(v, "-")
        'nombre de lignes à ajouter
        n = UBound(t)
        'copier/insérer les lignes nécessaires
        Do While n > 0
          r.Rows(i).Copy
          r.Rows(i).Insert Shift:=xlDown
          n = n - 1
        Loop
        Application.CutCopyMode = False
        'Mettre en place les références
        If UBound(t) > 0 Then
          r.Cells(i, 4).Resize(UBound(t) + 1).Value = Application.Transpose(t)
        End If
      Next i
    End Sub


    1. merci Patrice
  2. Modérateur
    Bonjour,

    Qu'as tu commencé à faire ?
    - Sais tu faire des boucles en VBA ?
    - Sais tu lire et écrire dans des cellules en VBA ?

    La fonction split retourne un array ...
    Il suffit donc de boucler dessus pour générer autant de lignes qu'il y a de valeurs dans ton array.

    1. Bonjour.

      Non je sais pas comment faire vous pouvez m'aidez svp
  3. bonjour,
    merci pour votre aide
    j'essayer de faire ce code ma ça marche pas
    Sub Macro4()
    Dim txt As String
    Dim b As Long
    Dim var() As String
    For i = 1 To 100
    txt = Cells(i, 4).Value
    If Len(txt) > 7 Then
    var = Split(txt, "-", vbTextCompare)
    End If
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Next i
    End Sub
    1. bonjour petit aide svp
      ça fonctionne pas

      Dim Tableau() As String
      Dim i As Integer
      Dim txt As String
      For j = 2 To 100
      txt = Cells(j, 4).Value
      If Len(txt) > 7 Then

      Tableau = Split(txt, "-")
      For i = 1 To UBound(Tableau)
      Debug.Print Tableau(i)
      Cells(i + 1, 4).Value = Tableau(i)
      Next i
      End If
      Next j

      ce que je veux
      1. Contributeur
        merci d'utiliser les balises de code.
        "ça fonctionne pas": qu'observes-tu?