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. 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
  2. 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?
    2. 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