[RÉSOLU] Macro retour à la ligne après chaque majuscule

  • Initiateur de la discussion Initiateur de la discussion Arnaudgo
  • 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 !

Arnaudgo

XLDnaute Nouveau
Bonjour à tous et merci pour ce super forum qui m'a souvent bien dépanné.
Je créé un nouveau sujet car je suis dans l'impasse et je n'arrive pas à trouver de solution.
Voilà, j'ai une BDD produits et plusieurs colonnes dont une intitulée désignation article. Cette colonne C contient des cellules avec les caractéristiques des produits.

Une cellule donne par exemple :
PRODUIT XXX Dimension 300 x 200 cm Chanfreiné Découpe adhésive Garantie 5 ans

Ce que je voudrais, c’est qu'Excel revienne à la ligne à l'intérieur de la cellule après chaque espace suivi d’une majuscule dans la colonne C pour en gros avoir une cellule comme ça :
PRODUIT
XXX
Dimension 300 x 200 cm
Chanfreiné
Découpe adhésive
Garantie 5 ans

J’ai environ 2000 lignes dans ma BDD, je préfère avoir à enlever quelques sauts de lignes en trop plutôt que d’en ajouter énormément car là je passe mon après-midi à appuyer sur Alt+Entrée…

Cette BDD est un export d’un logiciel et est destinée à être importée dans un autre logiciel donc je n'ai pas le choix. Existe-t-il une macro qui pourrait m'aider ?

Merci d’avance !
 
Dernière édition:
Re : Macro retour à la ligne après chaque majuscule

Bonjour et bienvenue sur le forum,

si tu as parcouru le forum, tu auras remarqué que nous aimons bien les fichiers exemples comme base de travail.
Question: ne serait-il pas plus judicieux de séparer les différents élément en différentes colonnes?
Question: ne serait-il pas plus judicieux de traiter les données AVANT de les importer dans excel? Par l'assistant d'importation peut-être.

Bref il nous faut plus d'explication et de choses concrètes.

A+
 
Re : Macro retour à la ligne après chaque majuscule

Bonjour,

Voici une proposition, utilisant les expressions régulières.
Sélectionner les cellules à modifier et exécuter la macro.

VB:
Sub SplitCell()
   Dim c As Range
   
   Application.ScreenUpdating = False

   With CreateObject("vbscript.regexp")
      .Pattern = "( )([A-Z])"
      .IgnoreCase = False
      .Global = True
      For Each c In Selection
         c.Value = .Replace(c.Value, "$1" & Chr(10) & "$2")
      Next c
   End With
   
   Application.ScreenUpdating = True
End Sub
 
Re : Macro retour à la ligne après chaque majuscule

Bonjour à tous
ma contribution à développer
Sub transformecolonnec()
Set i = ActiveCell
ndeb = 1
ndeb2 = 1

'For Each i In ActiveSheet.Columns(3).Rows
Do
nfin = InStr(ndeb2, i, " ")
If nfin = 0 Then
nfin = Len(i)
ndeb = ndeb - 1
End If
lettre = Mid(i, ndeb2 + nfin - ndeb2 + 1, 1)
If UCase(lettre) = lettre And IsNumeric(lettre) = False Then flag = 1 Else flag = 0
If flag = 1 Then
phrase = phrase & Mid(i, ndeb, nfin - ndeb) & Chr(10)
If ndeb <> nfin Then ndeb = nfin + 1
ndeb2 = ndeb
Else
ndeb2 = nfin + 1
End If

Loop While nfin <> ndeb

i.Offset(0, 1) = phrase
'Next
End Sub
 
Re : Macro retour à la ligne après chaque majuscule

Pardon pour ma réponse tardive, j'ai laissé tombé vendredi soir et j'attendais ce matin pour pouvoir tester ça.
Un grand merci Grand Chaman Excel, ça fonctionne à merveille et ça va me faire économiser un temps fou !

Sousou, j'ai testé aussi votre macro aussi mais ça ne fonctionne pas. Merci quand même pour votre contribution.
 
- 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