0
votes

Combinez du texte dans des cellules verticalement

Quelqu'un a créé un document texte dans Excel comme si c'était sur une machine à écrire. Ils ont écrit à la fin de l'écran puis appuyez sur Entrée.

J'aimerais mettre chaque paragraphe dans sa propre cellule puis copier et coller sur Word.

J'ai essayé d'enregistrer une macro, mais ça obtient coincé entre les paragraphes (l'auteur a sauté une ligne entre les paragraphes). Mes recherches montrent des cellules concaténantes une à la fois, ce qui ne m'aidera pas avec environ 1000 lignes de texte.

Le VBA serait quelque chose comme: xxx < p> Si le document actuel indique: xxx

après sa ressemblance: xxx


0 commentaires

3 Réponses :


3
votes

En supposant que mes hypothèses sont correctes, essayez ce qui suit:

  1. copiez tout sur Word.

  2. Faire une recherche / remplacement pour deux retours de chariot ( ^ p ^ p ) et remplacez-les par une chaîne de placement (Ex.: %%%%% , tout va faire aussi longtemps que ce ne sera pas dans votre document)

  3. Faire une recherche / remplacement pour les retours de chariot unique ( ^ p ) et remplacez-les par un seul espace ( )

  4. faire trouver / remplacer votre chaîne de placement ( %%%%% dans mon exemple ci-dessus) et remplacez-le avec deux retours de chariot ( ^ p ^ p )

  5. Vous devrez peut-être faire une recherche / remplacer sur des doubles espaces et les remplacer par des espaces simples.

    Après la vérification et peut-être de peaufiner, vous devriez être fait.


2 commentaires

Merci! Cela me conduisait Bonkers. Je vous en suis reconnaissant! M'a sauvé quelques heures de le faire manuellement!


Une fois, j'ai dû le faire régulièrement, alors je me suis transformé en macro que j'ai gardé dans mon modèle local!



0
votes

Une autre option xxx


0 commentaires

0
votes

option supplémentaire, le texte peut être copié à partir de la fenêtre immédiate après avoir exécuté la macro. Vous pouvez accéder à cette vitrage via la vue ou CTRL + G dans la fenêtre de développeur VBA.

Sub Concatenate_Text()
Dim i As Long
Dim lastrow As Long
Dim paragraph As String

Dim wb As Workbook
Dim ws As Worksheet

Set wb = ThisWorkbook
Set ws = wb.Worksheets("Sheet1")

lastrow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row

For i = 1 To lastrow
    If IsEmpty(ws.Cells(i, "A")) = False Then
    paragraph = paragraph & " " & ws.Cells(i, "A").Value & " " & ws.Cells(i + 1, "A").Value
    i = i + 1
    Else: paragraph = paragraph & vbCrLf
    End If

Next i

Debug.Print paragraph

End Sub


0 commentaires