Copier d'une cellule / coller dans les lignes du bas

karimal

XLDnaute Nouveau
bonjour,
j ai une base de données qui sera beaucoup plus utile si j arrive à l'arranger.
Pour cela j ai besoin de votre aide.
donc, je dois separer des codes se trouvant dans une cellule (séparés par une virgule les uns des autres) et les coller dans les lignes du dessous l'un apres l'autre.
j'avais une methode de séparer le texte dans les colonnes à coté par une formule puis, les selectionner, copier, coller contenu, transposer.
mais vu que dans cas y a bcp d'information, je fais appel à votre génie pour m'aider.
j'ai joint un expl si vs n'avez pas trop compris ce que je veux :)
merci!!!!!!
:p
 

Pièces jointes

  • Neu Microsoft Excel-Arbeitsblatt.xls
    20.5 KB · Affichages: 53
  • Neu Microsoft Excel-Arbeitsblatt.xls
    20.5 KB · Affichages: 55
  • Neu Microsoft Excel-Arbeitsblatt.xls
    20.5 KB · Affichages: 57

Etienne2323

XLDnaute Impliqué
Re : Copier d'une cellule / coller dans les lignes du bas

Salut karminal,
voici un exemple par macro.

Sinon, manuellement, tu peux facilement le réaliser en faisant ceci :
1) Données --> Convertir
2) Mettre la "," comme séparateur.
3) Tu obtiens le résultat en colonne. Tu n'as qu'à faire un copier coller transposé.

Bonne continuité,

Étienne
 

Pièces jointes

  • Exemple.xls
    38.5 KB · Affichages: 53
  • Exemple.xls
    38.5 KB · Affichages: 52
  • Exemple.xls
    38.5 KB · Affichages: 55

Odesta

XLDnaute Impliqué
Re : Copier d'une cellule / coller dans les lignes du bas

BOnjour à tous
Un petit code pour eclater tout cela :

VB:
Sub eclater()

'le but est déclater le contenu d'une cellule en duplicant les lignes
'je cherche si il y a une virgule
ligne_en_cours = 4
While ligne_en_cours < 65000
    If InStr(1, Cells(ligne_en_cours, 4).Value, ",") <> 0 Then
        'ducliquer
        Rows(ligne_en_cours + 1).Insert Shift:=xlDown
        Rows(ligne_en_cours).Copy
        Rows(ligne_en_cours + 1).Select
        ActiveSheet.Paste
        Application.CutCopyMode = False
        'transformer le contenue de la colonne D de la ligne en cours
        Cells(ligne_en_cours, 4).Value = Left(Cells(ligne_en_cours, 4).Value, InStr(1, Cells(ligne_en_cours, 4).Value, ",") - 1)
        'transformer le contenue de la colonne D de la ligne créé
        Cells(ligne_en_cours + 1, 4).Value = Right(Cells(ligne_en_cours + 1, 4).Value, Len(Cells(ligne_en_cours + 1, 4).Value) - InStr(1, Cells(ligne_en_cours + 1, 4).Value, ","))
    End If
    
ligne_en_cours = ligne_en_cours + 1

Wend
End Sub

Cdt

Olivier
 

Discussions similaires

Statistiques des forums

Discussions
312 501
Messages
2 089 014
Membres
104 005
dernier inscrit
Maxence