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

  • Initiateur de la discussion Initiateur de la discussion MICHA2000
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

Dernière édition:
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

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)
 
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

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

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

Dernière édition:
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

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

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour