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 :confused:

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 :D), par contre moi j'obtiens 0.390, je pense du au performances de nos PC respectifs. (comme les F1 :D)

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 ... :D

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

Statistiques des forums

Discussions
314 013
Messages
2 104 550
Membres
109 078
dernier inscrit
Nikitoklass