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

Concaténer 2 colonnes suivant leurs noms définis

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 !

Profane

XLDnaute Occasionnel
Bonjour le Forum

voila mon soucis,
j'importe un fichier dont les colonnes ne sont pas tous le temps dans le même ordre
solution, je lis les colonnes et je nomme celles qui m'intéresse dynamiquement via VBA

par contre, je souhaite concaténer en vba 2 de ces colonnes
et LA je suis obligé de le faire via leurs noms de colonnes (car comme dit précédemment leur place varient dans le fichier)

comment faire ?
copier les deux colonnes en première et seconde position du fichier, et faire "concaténer A&B" ?

merci d'avance pour votre aide
et bonne fêtes de fin d 'année a tous ;-)
 
Re : Concaténer 2 colonnes suivant leurs noms définis

Bonjour Gosselien

le petit bout de code que j'aimerai "optimiser" :
merci pour ton aide 🙂

Sheets("DT").Activate
With Sheets("DT")
.Range("AT1") = "ConcatenerDT"
.Cells(2, "AT").FormulaLocal = "=F2&O2" <--------- mais ces colonnes peuvent varier d'où le besoin de passer via range(nom de colonne)
Range("AT2").AutoFill Destination:=Range(Cells(2, "AT"), Cells(Cells(Rows.Count, "A").End(xlUp).Row, "AT"))
.Range("AT:AT").NumberFormat = "General"
.Range("AT:AT").HorizontalAlignment = xlCenter
end with
end Sub
 
Re : Concaténer 2 colonnes suivant leurs noms définis

Bonjour Profane

Voici comment trouver l'adresse en connaissant le numéro des colonnes :

Code:
col1 = 5 'Premiere colonne
col2 = 7 'Seconde colonne

r1 = Cells(2, col1).Address(ColumnAbsolute:=False, rowAbsolute:=False)
r2 = Cells(2, col2).Address(ColumnAbsolute:=False, rowAbsolute:=False)
'....
.Cells(2, "AT").FormulaLocal = "=" & r1 & "&" & r2

Si tu as besoin seulement de la lettre de la colonne:

Code:
lettre1 = Split(Cells(2, col1).Address(columnAbsolute:=False), "$")(0)

Cordialement
 
Dernière édition:
Re : Concaténer 2 colonnes suivant leurs noms définis

Bonsoir à tous

Une autre façon de faire (sans utiliser l'Autofill)
Code:
Sub test()
Dim dl&, colA$, colB$
Sheets("DT").Activate
With Sheets("DT")
    dl = .Cells(Rows.Count, "A").End(xlUp).Row
    colA = "F": colB = "O"
    .Range("AT1") = "ConcatenerDT"
    .Cells(2, "AT").Resize(dl).FormulaLocal = "=" & colA & "2&" & colB & "2"
    With .Range("AT:AT")
        .NumberFormat = "General"
        .HorizontalAlignment = xlCenter
    End With
End With
End Sub
 
- 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

P
Réponses
3
Affichages
533
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…