Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Fonction concatener mise en forme (bis)

lauren

XLDnaute Nouveau
Rebonsoir!

Voici mon petit fichier!
Je pourrais ensuite faire un vulgaire copier-coller (ou collage spécial-valeur) de votre résultat de VBA?

En tout cas, merci vraiment merci mille fois de votre aide!

Lauren
 

Pièces jointes

  • fonction concatener mise en forme.zip
    18.7 KB · Affichages: 86
  • fonction concatener mise en forme.zip
    18.7 KB · Affichages: 88
  • fonction concatener mise en forme.zip
    18.7 KB · Affichages: 90

Hulk

XLDnaute Barbatruc
Re : Fonction concatener mise en forme (bis)

Hello,

Merci Excel-Lent pour tes explications.

Tu dis
Une fois ta macro lancé, quelque soit la police de la colonne A et B, on obtient invariablement :
Bordeaux - La bouteille de 150cl

Pourtant je vois ça moi... non

Bordeaux - La bouteille de 150cl

Soenda, ouf tu m'rassure, je ne suis pas seul au monde.. we can !

Cdt, Hulk.
 

Hulk

XLDnaute Barbatruc
Re : Fonction concatener mise en forme (bis)

Re,

Donc plutôt comme ça pour mi
Code:
Sub Concatene()
Dim X As Long
    
    Columns("C:C").Select
    Selection.Font.Bold = False
    Selection.Font.Italic = False
    Selection.Font.Underline = xlUnderlineStyleNone
    Selection.ClearContents
    
    For Each c In Range("A1:A" & Range("A65536").End(xlUp).Row)
         c.Offset(0, 2) = c & " - " & c.Offset(0, 1)
          X = InStr(c.Offset(0, 2), " -")
           c.Offset(0, 2).Characters(Start:=1, Length:=X).Font.Bold = True
          c.Offset(0, 2).Characters(Start:=X, _
         Length:=Len(c.Offset(0, 2)) + 1 - X).Font.Italic = True
    Next
    
Range("A1").Select
End Sub
Un poil plus long...

Cdt, Hulk.
 

vbacrumble

XLDnaute Accro
Re : Fonction concatener mise en forme (bis)

Re



En modifiant ainsi le code de Hulk

Code:
Sub ConcateneModifié()
Dim X As Long
tps = Timer
With Application
    .Calculation = xlCalculationManual
    .ScreenUpdating = False
End With
Columns("C:C").SpecialCells(2, 2).Clear
    For Each c In Range("A1:A" & Range("A65536").End(xlUp).Row).SpecialCells(2, 2)
         With c.Offset(0, 2)
            .Value = c.Value & " - " & c.Offset(0, 1)
             X = InStr(.Value, " -")
             .Characters(1, X).Font.Bold = True
             .Characters(X, Len(.Value) + 1 - X).Font.Italic = True
         End With
    Next
With Application
    .ScreenUpdating = True
    .Calculation = xlCalculationAutomatic
End With
[D1] = Timer - tps
End Sub

Temps d'exécution : 0,15625

A+
 
Dernière édition:

Hulk

XLDnaute Barbatruc
Re : Fonction concatener mise en forme (bis)

Re,

Eh ben oui encore plus rapide vbacrumble (on s'croirait presque pilote de F1 ), par contre moi j'obtiens 0.390, je pense du au performances de nos PC respectifs. (comme les F1 )

Bon dimanche à tous.

Hulk.
 

Hulk

XLDnaute Barbatruc
Re : Fonction concatener mise en forme (bis)

Encore moi,

Par contre Crumble, si la colonne C est effacée avant de lancer la macro, bug sur la ligne
Code:
Columns("C:C").SpecialCells(2, 2).Clear
Ai essayé d'y remédier... en vain !

@+, Hulk.
 

jeanpierre

Nous a quitté
Repose en paix
Re : Fonction concatener mise en forme (bis)

Re à tous,

Ce fil est de plus en plus intéressant, mais j'ai peur que notre amie lauren se retrouve noyée sous un flot d'informations.

On attend donc sa sanction.

Bonne soirée à toute et à tous.

Jean-Pierre
 

soenda

XLDnaute Accro
Re : Fonction concatener mise en forme (bis)

Re, à tous et à toutes

Et pour moi ce sera :

Code:
Sub ConcateneWith()
    Dim L As Long

    [FONT=monospace]Application.Calculation = xlCalculationManual[/FONT]
    Application.ScreenUpdating = False
    
       With [C:C]
             .ClearContents
             .Font.Bold = False
             .Font.Italic = True
             .Font.Underline = xlUnderlineStyleNone             
       End With
    
       For L = 1 To [A65536].End(xlUp).Row
             Cells(L, 3) = Cells(L, 1) & " - " & Cells(L, 2)
             With Cells(L, 3).Characters(1, Len(Cells(L, 1))).Font
                   .Bold = True
                   .Italic = False
             End With
       Next
    
       [A1].Select
     Application.ScreenUpdating = False
     [FONT=monospace]Application.Calculation =[/FONT] xlCalculationAutomatic

End Sub
On va pas se quitter comme ça ...

A plus
 
Dernière édition:

ROGER2327

XLDnaute Barbatruc
Re : Fonction concatener mise en forme (bis)

Bonjour à tous ! Il y a du monde (du beau monde...) sur ce coup-là !
Alternativement à
Code:
Range("A65536").End(xlUp).Row
j'utilise volontiers
Code:
Cells(1, Rows.Count).End(xlUp).Row
voire
Code:
sheets("nom_de_feuille").Cells(1, sheets("nom_de_feuille").Rows.Count).End(xlUp).Row
s'il peut y avoir une ambiguïté. Cela permet de m'affranchir de la taille des feuilles.​
Bonne continuation, hips,
2RO2R37EG
 

vbacrumble

XLDnaute Accro
Re : Fonction concatener mise en forme (bis)

Re , bonsoir à tous


Pour ceux qui veulent tester et chronométrer les 4 codes VBA issus du fil

Voici un classeur qui les contient tous.


Bons tests

A+
 

Pièces jointes

  • Concatener_Rev_3_ALL_IN_1.zip
    35.8 KB · Affichages: 42

soenda

XLDnaute Accro
Re : Fonction concatener mise en forme (bis)

Re, à tous

Vbacrumble, tu aurais pu mettre mon dernier essai

Pas grave, en pièce jointe les 3 derniers essais et le 1er (soyez indulgent, c'est le premier prend tout...)

PS: très instructif

A plus
 

Pièces jointes

  • Concatener_ALL_IN_1_V2.xls
    127 KB · Affichages: 50

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…