VBA - Supprimer retour chariot

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

Re : VBA - Supprimer retour chariot [ hors sujet ]

bonsoir

Je me suis demandé si cela est réalisable avec un format personnalisé (de cellule), mais je n'ai pas réussi à créer un tel format.

Tu peux ajouter une colonne dont les cellules contiendraient une formule de concaténation des deux valeurs avec un retour chariot, les cellules seraient formatées pour un "renvoi automatique à la ligne".



A noter : il est possible d'insérer un retour chariot dans un format personnalisé comme le seconde onglet de la pièce jointe pour une date (taper mmmm puis CTRL J puis aaaa)).
 

Pièces jointes

Dernière édition:
Re : VBA - Supprimer retour chariot

bonjour à tous

s'il n'y a qu'une cellule ....la méthode manuelle n'est pas très longue...

sinon un bout de code à insérer dans une macro qui fera le traitement sur la cellule sélectionnée:

Code:
Selection.Replace What:=Chr(10) & Chr(10), Replacement:=Chr(10)
If Right(Selection, 1) = Chr(10) Then Selection = Left(Selection, Len(Selection) - 1)

A+
 
Re : VBA - Supprimer retour chariot

Bonjour et merci à tous pour vos différentes réponses

Le code de Paf fonctionne mais est-il possible de conserver la mise en forme? J'aimerais que le nom de ville (ville1, ville2....) soit en gras et la ou les lignes du dessous (variable) ne le soit pas.

Merci pour votre aide
 

Pièces jointes

Re : VBA - Supprimer retour chariot

Re,

je n'avais vu les macros existantes Synthese() et Gras(). plutôt que de rajouter une troisième macro, mieux vaut adapter les premières:
Code:
Sub Synthese()
 Range("A2").Select
 Range(Selection, Selection.End(xlDown)).Select
 t = Selection.Rows.Count
    
 Range(Cells(3, 2), Cells(t + 2, 2)).Select
 For Each i In Selection
    If i <> "" Then
        s = InStr(i, Chr(10))
        p1 = Left(i, s - 1)
        p2 = Right(i, Len(i) - s)
        phrase = phrase & p1 & Chr(10) & p2 & Chr(10)
    End If
 Next
 Cells(t + 3, 2) = Left(phrase, Len(phrase) - 1)
 Cells(t + 3, 2).Select
 Gras
End Sub

Code:
Sub Gras()
 Dim col$, C As Range, s, i%, n%
 col = "B"
 Columns(col).Cells.Font.Bold = False
 On Error Resume Next 'à cause de la cellule fusionnée
 For Each C In Columns(col).SpecialCells(xlCellTypeConstants)
  s = Split(C, vbLf)
  For n = 0 To UBound(s) Step 2
    For i = 0 To n
        decal = decal + Len(s(i)) + 1
    Next
    decal = decal - Len(s(0))
    C.Characters(decal, Len(s(n))).Font.Bold = True
    decal = 0
  Next
 Next
End Sub

A+
 
Re : VBA - Supprimer retour chariot

Re,

je n'avais vu les macros existantes Synthese() et Gras(). plutôt que de rajouter une troisième macro, mieux vaut adapter les premières:
Code:
Sub Synthese()
 Range("A2").Select
 Range(Selection, Selection.End(xlDown)).Select
 t = Selection.Rows.Count
    
 Range(Cells(3, 2), Cells(t + 2, 2)).Select
 For Each i In Selection
    If i <> "" Then
        s = InStr(i, Chr(10))
        p1 = Left(i, s - 1)
        p2 = Right(i, Len(i) - s)
        phrase = phrase & p1 & Chr(10) & p2 & Chr(10)
    End If
 Next
 Cells(t + 3, 2) = Left(phrase, Len(phrase) - 1)
 Cells(t + 3, 2).Select
 Gras
End Sub

Code:
Sub Gras()
 Dim col$, C As Range, s, i%, n%
 col = "B"
 Columns(col).Cells.Font.Bold = False
 On Error Resume Next 'à cause de la cellule fusionnée
 For Each C In Columns(col).SpecialCells(xlCellTypeConstants)
  s = Split(C, vbLf)
  For n = 0 To UBound(s) Step 2
    For i = 0 To n
        decal = decal + Len(s(i)) + 1
    Next
    decal = decal - Len(s(0))
    C.Characters(decal, Len(s(n))).Font.Bold = True
    decal = 0
  Next
 Next
End Sub

A+

Merci beaucoup paf pour votre réponse.

Le code fonctionne mais je crois qu'il y a un décalage dans la mise en forme où une partie des caractères se met en gras.

Comme je ne maîtrise pas très bien la boucle et les variables, est-ce modifiable ou faut-il tout reprendre?
 
Re : VBA - Supprimer retour chariot

Re,

je crois qu'il y a un décalage dans la mise en forme où une partie des caractères se met en gras.

a priori la macro Gras() mettait en gras, dans toutes les cellules de la colonne B, une ligne sur deux.
La modification apportée ne change pas cette règle, et il n'y avait aucun décalage lors des essais sur le classeur joint.

Reprécisez donc la règle de mise en forme, ainsi que le décalage constaté.

A+
 
Re : VBA - Supprimer retour chariot

Re,



a priori la macro Gras() mettait en gras, dans toutes les cellules de la colonne B, une ligne sur deux.
La modification apportée ne change pas cette règle, et il n'y avait aucun décalage lors des essais sur le classeur joint.

Reprécisez donc la règle de mise en forme, ainsi que le décalage constaté.

A+

Bonjour et merci.

Je souhaiterai en fait que la première ligne de chaque cellule soit en gras. Le nombre de lignes qui suit est variable.
En concaténant le contenu de l'ensemble des cellules dans une même cellule (execution de la macro synthese), la mise en forme est conservée.

Merci beaucoup pour votre aide
 

Pièces jointes

Re : VBA - Supprimer retour chariot

re,

en fait il faut tout reprendre ! actuellement c'est la macro Synthese() qui crée la synthèse et puis en dernier appelle la macro Gras() pour toute la colonne B. La mise en gras est basé sur le double saut de ligne et qu'on veut supprimer.

Je ne vois pas de solution simple pour réaliser votre demande

Bonne suite
 
Re : VBA - Supprimer retour chariot

Re et bonjour Si...,

J'avais bien pensé à cette astuce sur V*..., mais je crains que cette donnée ne soit qu'un exemple, et qu'au final on ait des noms de ville réels. Et là .... ?

A+

Bonjour et merci Si... et Paf pour votre aide.

Effectivement, j'ai des noms de villes réels....
Si je comprends bien le code de Si....je dois d'abord nommer ma plage de celulle (qui est variable)
 
- 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

Discussions similaires

Réponses
3
Affichages
232
Retour