Spliter Cellule et dupliquer ligne - De l'aide Pleasssssssee
#1
Débutant XLPages

Inscription: 13/09/2012

Messages: 2

Système d'exploitation:
PC
Version Excel utilisée:
2010
Posté le : 13-09-2012 02h05
Bonjour à tous, je suis débutant, alors je me lance.

voila mon problème.

J'ai 2 lignes avec 4 cellules. En gros dans la cellule A j'ai le nom et dans la cellule D j'ai plusieurs activités dans la même cellule avec des retours chariots.

J'aimerai que la cellule D soit spliter et que la ligne entière A B et C soit dupliquer en dessous. En gros si la cellule D contenait 5 activités, j'ai désormais 5 ligne:

A B C D1
A B C D2
A B C D3
A B C D4
A B C D5

et les lignes en dessous deuxième prénom sont décaler automatiquement.

J'ai trouvé ça comme code qui me fait bien le split mais rien n'est dupliquer et il ne décale pas les lignes:

Sub splitv()

    Dim c As Range, lig As Long, ch As Variant, i As Long

    For lig = [A65536].End(xlUp).Row To 1 Step -1

        Set c = Cells(lig, "A")

        If InStr(c, vbLf) Then

            ch = Split(c.Value, vbLf)

            For i = UBound(ch) To 1 Step -1

                c.Offset(1, 0).Insert Shift:=xlDown

                c.Offset(1, 0) = ch(i)

            Next i

            c = ch(0)

        End If

    Next lig

End Sub



Un big merci de votre aide.




Pièce jointe:
xlsx Exercice Asso.xlsx   [ Taille: 11.17 Ko - Téléchargements: 438 ]
Hors Ligne
Rapport   Haut 

Re: Spliter Cellule et dupliquer ligne - De l'aide Pleasssssssee
#2
Accro XLPages

Inscription: 09/05/2007
De Courcelles-les-Montbéliard

Messages: 286

Système d'exploitation:
PC & Mac
Version Excel utilisée:
Mac 2004 - 2011, et PC 2003 - 2010
Posté le : 13-09-2012 07h13
Bonjour Djaleem, Didier, le forum

Essaye ce code
Sub splitv()
    Dim c As Range, lig As Long, ch As Variant, i As Long
    For lig = [A65536].End(xlUp).Row To 2 Step -1
        Set c = Cells(lig, "D")
        If InStr(c, vbLf) Then
            ch = Split(c.Value, vbLf)
            For i = UBound(ch) To 1 Step -1
                Range("A" & (lig + 1) & ":D" & (lig + 1)).Insert Shift:=xlDown
                Range("A" & (lig + 1) & ":C" & (lig + 1)).Value = Range("A" & lig & ":C" & lig).Value
                c.Offset(1, 0) = ch(i)
            Next i
            c = ch(0)
        End If
    Next lig
End Sub
  
J'ai changé plusieurs ligne :
Dans la ligne For lig = [A65536].End(xlUp).Row To 2 Step -1, remplacement du 1 par le 2, pour ne pas spliter la ligne titre.
Dans la ligne Set c = Cells(lig, "D")ce n'est pas la cellule de la colonne A qui contient la cellule avec les retour chariot
Ce n'est pas uniquement une insertion sur une seule cellule qui faut faire, mais sur une plage de cellules allant A:D
La ligne permet range(......).value = range(......).value permet de la copie de valeur d'un bloc de cellule sur un autre bloc.

@+Jean-Marie

Hors Ligne
Rapport   Haut 

Re: Spliter Cellule et dupliquer ligne - De l'aide Pleasssssssee
#3
Débutant XLPages

Inscription: 13/09/2012

Messages: 2

Système d'exploitation:
PC
Version Excel utilisée:
2010
Posté le : 13-09-2012 11h03
Par quoi commence une bonne journée?

Par ce bout de code écrit par Jean-Marie.

BIG MERCI, c'est juste magnifique.

CA MARRRRRRCCCCCHHHHHHEEEEE



Hors Ligne
Rapport   Haut 


Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Qui consulte actuellement ce sujet ?   1 Utilisateur(s) anonymes