Fusionner deux lignes en gardant le contenu

spawnx

XLDnaute Nouveau
Salut à tous,

Voila j'ai quelqu'un de mon entourage pro qui ma fait des tableaux listant des produits.
Le souci c'est que cette personne ma inscrite les produit sur deux lignes...

Donc je souhaiterai fusionner les deux lignes sans perdre le contenu d'une des deux lignes...

Merci de m'aider les guys ;-)
 

GenevieveMetz

XLDnaute Nouveau
Re : Fusionner deux lignes en gardant le contenu

Bonjour,

Y a-t-il un moyen de faire la même chose (fusionner des cellules en gardant le contenu), si on ne connait pas à l'avance le nombre de lignes à fusionner. Dans mon cas,iIl faut arrêter la fusion à la premiere ligne blanche, puis recommencer avec le bloc de cellules suivant.

Merci d'avance
Genevieve
 

Modeste

XLDnaute Barbatruc
Re : Fusionner deux lignes en gardant le contenu

Bonjour Geneviève et bienvenue sur ce forum de rêve :)

Le mieux ainsi que tu (ne) l'auras peut-être (pas) lu dans Lien supprimé, serait de joindre un petit fichier qui illustre ta demande (structure du fichier, type des données, différents cas de figure, etc...) sans données confidentielles.

Tu indiques, dans ce même classeur, le résultat espéré et tu reviens régulièrement voir si des questions te sont posées ou si des solutions sont proposées.
 

GenevieveMetz

XLDnaute Nouveau
Re : Fusionner deux lignes en gardant le contenu

Bonjour,

Sur les bons conseils de Modeste, voici un exemple de ce que je cherche à faire.
L'onglet départ est ce que je récupère après un copier/coller de Word vers Excel
L'onglet résultat contient ce que je souhaite récupérer à la fin:
- Mettre la 1ere ligne dans la 1ere colonne
- Mettre toutes les lignes suivantes dans la 2eme colonne
- Mettre la dernière ligne dans la 3eme colonne, si elle commence par "ACTION"

Cordialement
Genevieve
 

Pièces jointes

  • Test-Fusion-plusieursLignes.xlsx
    11.5 KB · Affichages: 141

Modeste

XLDnaute Barbatruc
Re : Fusionner deux lignes en gardant le contenu

Re-bonjour,

Fichtre! (me suis-je exclamé in petto en ouvrant le fichier)

J'espère qu'il n'y aura pas une tripotée de cas particuliers qui rendront caduque cette première proposition :eek:

Je n'ai même pas essayé par formules! Un premier essai, donc, par macro:
- ouvrir le fichier
- appuyer sur Alt+F8
- sélectionner la macro "transposer"
- cliquer sur "Exécuter"
- aller vérifier le contenu de la feuille "résultat" (la feuille "résultat attendu" pourra être supprimée: c'était ton modèle à reproduire)

Tu nous diras si ça fonctionne comme tu le souhaites?
 

Pièces jointes

  • Fusion-plusieursLignes (GenevièveMetz).xlsm
    19.9 KB · Affichages: 282

GenevieveMetz

XLDnaute Nouveau
Re : Fusionner deux lignes en gardant le contenu

ouaouhhh, super, merci Modeste.
Il y aura forcément des tas de cas particuliers, vu que j'ai quelques centaines de pages word, où les infos ont été saisies en texte libre.
Je les gèrerai à la main, mais ta macro va déja me faire gagner plusieurs jours de travail, en déblayant 80% du travail.
Merci beaucoup.
Genevieve
 

Chalghoumi

XLDnaute Nouveau
Bonjour,

Je fais remonter ce sujet suite à une problématique d'ordre similaire.

Je souhaiterais fusionner le contenu de plusieurs lignes se trouvant dans une colonne spécifique et correspondant à un article en particulier tout en répétant cette opération afin qu'elle s'exécute sur l'ensemble des lignes de la feuille contenant des données.

Afin que cela soit plus clair j'ai repris le fichier contenant la solution proposée à GenevieveMetz en ayant adapté les éléments y figurant afin qu'ils correspondent au sujet abordé.

Etant un faux-débutant en VBA je souhaiterais vos lumières à ce sujet.

En vous remerciant à l'avance,
 

Pièces jointes

  • Fusion-plusieursLignes (Chalghoumi).xlsm
    128.3 KB · Affichages: 45

Modeste

XLDnaute Barbatruc
Bonjour Chalghoumi,

Je te laisse le soin de tester et vérifier avec la plus grande attention.
Remplace le code du module standard par celui-ci:
VB:
Sub transposer()
Set src = Sheets("départ")
Set cible = Sheets("résultat")
derlig = src.Cells(src.Rows.Count, 4).End(xlUp).Row
tablo = src.Range("A5:D" & derlig)
Dim tablo2(), tablo3()
For lig = 1 To UBound(tablo)
    If tablo(lig, 1) <> "" Then
        x = x + 1
        ReDim Preserve tablo2(1 To 4, 1 To x)
        tablo2(1, x) = tablo(lig, 1)
        tablo2(2, x) = tablo(lig, 2)
        tablo2(3, x) = tablo(lig, 3)
    Else
        tablo2(4, x) = tablo2(4, x) & IIf(tablo2(4, x) = "", "", Chr(10)) & tablo(lig, 4)
    End If
Next lig
cible.Cells.ClearContents
ReDim tablo3(x - 1, 3)
For i = 1 To x
    For y = 1 To 4
        tablo3(i - 1, y - 1) = tablo2(y, i)
    Next y
Next i
cible.[A1].Resize(x, 4).Value = tablo3
End Sub
 

Discussions similaires

Réponses
26
Affichages
382

Statistiques des forums

Discussions
312 229
Messages
2 086 423
Membres
103 206
dernier inscrit
diambote