Macro pour concaténer des cellules

Macro pour concaténer des cellules présentes dans deux colonnes.

J'y arrive bien pour la première ligne à concatener, mais comment faire pour les autres?

18liste-essais.xlsm (22.50 Ko)

Bonjour,

une proposition

35liste-essais.xlsm (23.05 Ko)

Tb merci, seulement j'ai un autre fichier avec une matrice, et en fait le résultat de la concaténation ne doit pas être de cellule à cellule, mais de ce type :

Adriers;OUI;Amberre;OUI;Anché;OUI;Angles-surl'Anglin;OUI;Angliers;OUI;Antigny;OUI;Antran;OUI;Arçay;OUI;Archigny;OUI;Aslonnes;OUI;Asnières-sur-Blour;OUI;Asnois;OUI;Aulnay;OUI;Availles-en-Châtellerault;OUI;Availles-Limouzine;OUI;Avanton;OUI;Ayron;OUI;Basses;OUI;Beaumont;NON;Bellefonds;NON;Benassay;NON;Berrie;NON;Berthegon;NON;Béruges;NON;Béthines;NON;Beuxes;NON;Biard;NON;Bignoux;NON;Blanzay;NON;Blaslay;NON;Bonnes;NON;Bonneuil-Matours;OUI;Bouresse;OUI;Bourg-Archambault;OUI;Bournand;OUI;Brigueil-le-Chantre;OUI;Brion;OUI;Brux;OUI;La Bussière;OUI;Buxerolles;OUI;Buxeuil;OUI;Ceaux-en-Couhé;OUI;Ceaux-en-Loudun;OUI;Celle-Lévescault;OUI;Cenon-sur-Vienne;OUI;Cernay;OUI;Chabournay;OUI;Chalais;OUI;Chalandray;OUI;Champagné-le-Sec;OUI;Champagné-Saint-Hilaire;OUI;Champigny-le-Sec;OUI;Champniers;NON;La Chapelle-Bâton;NON;La Chapelle-Montreuil;NON;La Chapelle-Moulière;NON;Chapelle-Viviers;NON;Charrais;NON;Charroux;NON;Chasseneuil-du-Poitou;

avec le formatage

J'utilise :

=Concatener_Matrice(A2:B2:A210:B210;";")

17liste.xlsm (27.68 Ko)

Bonjour,

et du coup quelle est la question ? il me semble que cette fonction te donne le résultat souhaité, non ?

Sauf que par exemple le nom des villes doit être en gras et le deuxième champs en caractère normaux

Bonjour,

quelle est le but de cette concaténation ?

En fait, c'est pour avoir des membres présent ou non dans un compte rendu d'assemblée sous word

Bonjour,

une fonction ne permet pas de formater une cellule, il faut passer par une macro.

comme la macro reprend le format de chaque caractère, son exécution dure plusieurs secondes.

la macro ne reprend pas les formats résultant d' une mise en forme conditionnelle

lancer la macro via alt-F8

Sub concat_matrice()
    dl = Cells(2, 1).End(xlDown).Row    'nombre de lignes à concaténer
    Application.ScreenUpdating = False
    Application.EnableEvents = False
    Application.Calculation = xlCalculationManual
    Set dc = Range("C2")    'cellule de destination
    Set pl = Range("A2:B" & dl)    'plage à concaténer

    'concaténation
    dc.Value = ""
    For Each cel In pl
        If Len(dc) > 0 Then dc.Value = dc.Value & ";"
        ldc = Len(dc)
        dc.Value = dc.Value & cel.Value
    Next

    ' copie des formatages
    ldc = 0
    For Each cel In pl
        For i = 1 To Len(cel)
            With dc.Characters(ldc + i, 1).Font
                .FontStyle = cel.Characters(i, 1).Font.FontStyle
                .Size = cel.Characters(i, 1).Font.Size
                .Color = cel.Characters(i, 1).Font.Color
                .Bold = cel.Characters(i, 1).Font.Bold
                .Italic = cel.Characters(i, 1).Font.Bold
                .Underline = cel.Characters(i, 1).Font.Underline
            End With
        Next i
        ldc = ldc + Len(cel) + 1
    Next

    Application.ScreenUpdating = True
    Application.EnableEvents = True
    Application.Calculation = xlCalculationAutomatic
End Sub
17liste.xlsm (28.25 Ko)

Un grand merci.

Je décortique bien tout ça pour me le mettre en tête.

Cdlt,

Rechercher des sujets similaires à "macro concatener"