Concaténer 2 colonnes suivant leurs noms définis

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 ;-)
 

Profane

XLDnaute Occasionnel
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
 

Docmarti

XLDnaute Occasionnel
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:

Staple1600

XLDnaute Barbatruc
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
 

Discussions similaires

Réponses
2
Affichages
210

Membres actuellement en ligne

Statistiques des forums

Discussions
312 493
Messages
2 088 956
Membres
103 990
dernier inscrit
lamiadebz