Autres Retour a la ligne à annuler. Excel 97-2003

MICHA2000

XLDnaute Nouveau
Bonjour à vous,

J'avoue être dans la panade, j'ai un fichier de 40000l ou je dois transformer ce texte:



In 18K red gold.
Convertible case with a gold-plated
silver chain
.
Mother of pearl dial with a
miniature painting " Red Horse".

XXX serpentine hands in case color.
Automatic Haute Horlogerie
standard movement, cal 11BA13.
Crown and strap-bolts set
with sapphire cabochons.

Alligator full skin bracelet.
Ardillon buckle in 18K rose gold.
Weight of the watch : 176 gr
Net weight of the gold : 116 gr

En ce texte

In 18K red gold.
Convertible case with a gold-plated silver chain.
Mother of pearl dial with a miniature painting " Red Horse".

XXX serpentine hands in case color.
Automatic Haute Horlogerie standard movement, cal 11BA13.
Crown and strap-bolts set with sapphire cabochons.

Alligator full skin bracelet.
Ardillon buckle in 18K rose gold.
Weight of the watch : 176 gr
Net weight of the gold : 116 gr

Donc en remettant sur la même ligne les lignes qui sont en deux parties non terminées par un point. (J'ai souligné pour vous faire un exemple)

A savoir les textes sont presque tous différents mais gardent la même nomenclature..
Ca fait 48h que je suis dessus à la main pour 1200 lignes sur 40 000 ...

Dans le fichier les cases vertes correspondent aux textes modifiés qui sont ok
Les blancs eux n'ont pas été modifiés

Par ailleurs si vous avez aussi la possibilité de me dire comment, dans ce texte on peut supprimer ligne dans une cellule qui contient un caractère spécifique (ex buckle, la ligne qui contient ce mot sera supprimée)
Si vous avez une solutions...

Merci
 

Pièces jointes

  • ex.xlsx
    9.3 KB · Affichages: 15
Dernière édition:

fredl

XLDnaute Impliqué
Bonjour,
cliquer sur le bouton traitement->resultat en colonne E (traitement de toutes les cellules contigües en colonne C à partir de la C1)
(le traitement se fait sur la recherche des points en fin de phrase. Il n'est pas parfait, ex en ligne 8 et 9 les points du texte ". (S.V. Talibov)" sont perturbateurs...(pas de solution trouvée pour cela...)
Mais cela debroussaille déjà bien le travail.

Dis moi ce que tu en penses.

Frédéric
 

Pièces jointes

  • FormaterTexte.xlsm
    24 KB · Affichages: 4

MICHA2000

XLDnaute Nouveau
Un grand merci Marcel vous me sauvez ¨! Sans vouloir abuser de votre gentillesse auriez vous également une solution afin de supprimer ligne dans une cellule qui contient un caractère spécifique (ex buckle, la ligne qui contient ce mot sera supprimée)
 

TooFatBoy

XLDnaute Barbatruc
Une proposition en pièce jointe.

Premier bouton : supprime les faux sauts de ligne, et met le résultat en colonne D.
(la colonne source est C)

Deuxième bouton : supprime les phrases contenant une chaîne de caractères spécifique, et met le résultat en colonne E.
(/!\ la colonne source est D)

Troisième bouton : supprime les faux sauts de ligne, puis supprime les phrases contenant une chaîne de caractères spécifiques, et met le résultat en colonne F.
(la colonne source est C)


A toi de garder la (ou les) macro(s) que tu veux. ;)
 

Pièces jointes

  • ex_Marcel32-v2.xlsm
    24.2 KB · Affichages: 4

job75

XLDnaute Barbatruc
Bonsoir MICHA2000, Marcel32,

Voyez le fichier joint et la macro affectée au bouton :
VB:
Sub Paragraphes()
Application.ScreenUpdating = False
With [C1:C8] 'à adapter
    .Replace vbCrLf, vbLf, xlPart
    .Replace "." & vbLf, "|"
    .Replace vbLf, " "
    .Replace "|", "." & vbLf
    .ColumnWidth = 255
    .Rows.AutoFit
    .Columns.AutoFit
End With
End Sub
Les derniers paragraphes de chaque ligne n'ont pas de point, ils sont donc concaténés avec l'espace.

A+
 

Pièces jointes

  • Paragraphes(1).xlsm
    18.9 KB · Affichages: 5

job75

XLDnaute Barbatruc
auriez vous également une solution afin de supprimer ligne dans une cellule qui contient un caractère spécifique (ex buckle, la ligne qui contient ce mot sera supprimée)
Voyez ce fichier (2) et la macro :
VB:
Sub Paragraphes()
Dim sup$, tablo, i&, s, x$, j%
sup = "buckle" 'à adapter
Application.ScreenUpdating = False
With [C1:C8] 'à adapter
    .Replace vbCrLf, vbLf, xlPart
    .Replace "." & vbLf, "|"
    .Replace vbLf, " "
    .Replace "|", "." & vbLf
    tablo = .Resize(, 2) 'matrice, plus rapide, au moins 2 éléments
    For i = 1 To UBound(tablo)
        s = Split(tablo(i, 1), vbLf)
        x = ""
        For j = 0 To UBound(s)
            x = x & IIf(InStr(s(j), sup), "", vbLf & s(j))
        Next j
        tablo(i, 1) = Mid(x, 2)
    Next i
    .Value = tablo 'restitution'
    .ColumnWidth = 255
    .Rows.AutoFit
    .Columns.AutoFit
End With
End Sub
Bonne nuit.
 

Pièces jointes

  • Paragraphes(2).xlsm
    20.6 KB · Affichages: 2
Dernière édition:

job75

XLDnaute Barbatruc
Bonsoir MICHA2000, Marcel32,

Puisqu'on utilise un tableau VBA on peut s'en servir pour mieux traiter les derniers paragraphes, fichier (3) :
VB:
Sub Paragraphes()
Dim sup$, tablo, i&, x$, j%, s
sup = "buckle" 'à adapter
Application.ScreenUpdating = False
With [C1:C8] 'à adapter
    '---traitement des renvois à la ligne---
    .Replace vbCrLf, vbLf, xlPart
    .Replace "." & vbLf, "|" 'repère
    tablo = .Resize(, 2) 'matrice, plus rapide, au moins 2 éléments
    For i = 1 To UBound(tablo)
        x = tablo(i, 1)
        j = InStrRev(x, "|") 'position du dernier repère
        x = Replace(Left(x, j), vbLf, " ") & Mid(x, j + 1)
        x = Replace(x, "|", "." & vbLf)
        While Right(x, 1) = vbLf: x = Left(x, Len(x) - 1): Wend 'renvois en fin de chaîne
        tablo(i, 1) = x
    Next i
    '---traitement de sup---
    For i = 1 To UBound(tablo)
        s = Split(tablo(i, 1), vbLf)
        x = ""
        For j = 0 To UBound(s)
            x = x & IIf(InStr(s(j), sup), "", vbLf & s(j))
        Next j
        tablo(i, 1) = Mid(x, 2)
    Next i
    '---restitution---
    .Value = tablo
    .ColumnWidth = 255
    .Rows.AutoFit
    .Columns.AutoFit
End With
End Sub
A+
 

Pièces jointes

  • Paragraphes(3).xlsm
    21.5 KB · Affichages: 3

MICHA2000

XLDnaute Nouveau
Bonjour .) Au passage auriez vous également une macro pour cette fois ci faire un retour a la ligne après un point sîl vous plait ?
et une pour supprimer une ligne vide ?

J'ai indiqué en jaune le résultat brut et en blanc le résultat désiré..

Un grand merci
 

Pièces jointes

  • Classeur1.xlsx
    9 KB · Affichages: 8

Statistiques des forums

Discussions
312 217
Messages
2 086 353
Membres
103 196
dernier inscrit
N-TR86