Demande d'aide sur excel

Résolu
clash4 Messages postés 2 Statut Membre -  
clash4 Messages postés 2 Statut Membre -
Bonjour,
j'aimerais bien avoir votre aide concernant un petit problème sur EXCEL.
j'ai une colonne sur mon tableau qui contient des chiffre séparés par des " - " ( colonnes séparées nom, num, description ) exp:
----------------------------------------------------
nom numéro description

sarah 12-54-001 azzerzaar
ali 687_00 fafaakgkm
---------------------------------------------------

et j'aimerais le transformer sous la forme:
----------------------------------------------------
nom numéro description

sarah 12 azzerzaar
sarah 54 azzerzaar
sarah 001 azzerzaar

ali 687 fafaakgkm
ali 00 fafaakgkm
----------------------------------------------------

merci d'avance :D
Configuration: Windows XP
Safari 532.0

2 réponses

  1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    bonjour

    Pour créer de nouvelles lignes tu dois passer par une macro et je te propose ceci à coller dans ta feuille concernée (mode d'emploi éventuel) :
    Public Sub degroupe()
    Dim lig As Long
    Application.ScreenUpdating = False
    For lig = Cells(Columns(1).Cells.Count, 1).End(xlUp).Row To 1 Step -1
        Cells(lig, 2).Value = Replace(Cells(lig, 2).Value, "-", "|")
        Cells(lig, 2).Value = Replace(Cells(lig, 2).Value, "_", "|")
        While cre_ligne(lig)
        Wend
    Next lig
    End Sub
    
    Public Function cre_ligne(lig)
    Dim pos As Integer, der As Integer
    Const sep As String = "|"
    cre_ligne = False
    pos = 0
        Do
            der = pos
            pos = InStr(der + 1, Cells(lig, 2).Value, sep)
        Loop Until pos = 0
        If der <> 0 Then
            Rows(lig + 1).Insert
            Cells(lig + 1, 1).Value = Cells(lig, 1).Value
            Cells(lig + 1, 2).Value = "'" & Mid(Cells(lig, 2).Value, der + 1)
            Cells(lig, 2).Value = "'" & Left(Cells(lig, 2).Value, der - 1)
            Cells(lig + 1, 3).Value = Cells(lig, 3).Value
            cre_ligne = True
        End If
    End Function
    

    Ensuite tu dois autoriser les macros et lancer (alt + F8) la macro "degroupe".
    0
  2. clash4 Messages postés 2 Statut Membre
     
    merci énormement gbinforme, tu m'a sauvé la vie !!!

    merci encore une fois t'es toujours Zen
    0