VBA: Concaténer 2 colonnes en 1 seule

  • Initiateur de la discussion Initiateur de la discussion MJ13
  • Date de début Date de début

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 !

MJ13

XLDnaute Barbatruc
Bonjour à tous

Comme les tableaux, c'est pas trop mon truc, j'aimerais avoir un code VBA rapide pour concaténer 2 colonnes en 1 avec un séparateur "\.

C'est pour avoir la concaténation de noms de fichier et de dossier. En colonne 1, j'ai le nom des dossiers, en colonne 2 le nom des fichiers et il faudrait que j'ai en colonne H: Dossier & "\" & fichier.

Merci d'avance 🙂.
 
Re : VBA: Concaténer 2 colonnes en 1 seule

Bonjour Michel,

avec ce code:
Code:
For i = 1 To Range("A65535").End(xlUp).Row
Cells(i, 8) = Cells(i, 1) & "\" & Cells(i, 2)
Next i

à+
Philippe
 

Pièces jointes

Dernière édition:
Re : VBA: Concaténer 2 colonnes en 1 seule

Bonjour MJ 🙂 Bonjour Philippe 🙂
Trop tard, mais je l'ai fait, je le poste

Avec tableaux :
VB:
Sub Test()
Dim T1, T2, i&
With Sheets("Feuil1")
    T1 = .Range(.Cells(1, 1), .Cells(.Rows.Count, 2).End(3))
    ReDim T2(1 To UBound(T1, 1), 1 To 1)
    For i = 1 To UBound(T2)
        T2(i, 1) = T1(i, 1) & "\" & T1(i, 2)
    Next i
    .Cells(1, 8).Resize(UBound(T2, 1), 1) = T2
End With
End Sub
cordialement
 
Re : VBA: Concaténer 2 colonnes en 1 seule

Bonjour Philippe, Efgé

Merci beaucoup pour vos réponses 🙂.

Je prend les 2 codes. Bien sur le second est un peu plus rapide de 10 fois environ de 27 secondes à
2,8 secondes sur 500 000 lignes 😱. Par contre en routine, je prendrais plutôt le premier code si je n'ai pas trop de lignes, vu que je le comprend mieux 😱.

Sinon, j'avais besoin après la concaténation de copier ces données ves un fichier txt sur mon bureau:

Voici le code (2 secondes pour 500 000 lignes):
Code:
Sub A_Copy_Zone_TXT()
Dim chemin As String
T1 = Timer
Close
CheminFichierTxt = CreateObject("WScript.Shell").specialFolders("Desktop") & "\" & "EnCours.txt"
Open CheminFichierTxt For Output As #2
For Each cell In Selection
Print #2, cell
Next
Close
MsgBox Timer - T1
End Sub
 
Dernière édition:
Re : VBA: Concaténer 2 colonnes en 1 seule

Re
Si j'ai bien compris, tu crée les noms sur la feuille puis tu crée un fichier texte avec ta colonne.
Si tu n'as besoin que du fichier texte, une proposition (0.29 seconde pour 50 000 lignes)
VB:
Sub A_Transfert_Tableau_TXT()
Dim chemin As String, Tm!, T As Variant
Tm = Timer
CheminFichierTxt = CreateObject("WScript.Shell").specialFolders("Desktop") & "\" & "EnCours.txt"


With Sheets("Feuil1")
    T = .Range(.Cells(1, 1), .Cells(.Rows.Count, 2).End(3))
End With

Open CheminFichierTxt For Output As #2
    For i = 1 To UBound(T, 1)
        Print #2, T(i, 1) & "\" & T(i, 2)
    Next i
Close #2
MsgBox Timer - Tm
End Sub
Cordialement
 
- 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

  • Question Question
Microsoft 365 Extraction via pdf
Réponses
1
Affichages
84
Réponses
19
Affichages
757
Retour