Copier coller colonne

je souhaite copier les colonnes A B C a la suite dans un autre classeur

j'ai une erreur dans le code mais je n'arrive pas à corriger

Sub test()

Workbooks.OpenText Filename:="H:\Nouveau dossier (2)\FicA.txt", Origin:=xlWindows, _

StartRow:=1, DataType:=xlDelimited, Semicolon:=True

Range("B:B,C:C,D:D,E:E,F:F,G:G,H:H,J:J,L:L,M:M,N:N").Delete

'Copier les cellules désirées

Sheets("ficA").Range("A2:C512000").Copy

'Activer le classeur de destination

Workbooks("classeurarrivé.xlsm").Activate

'Coller les cellules

Worksheets(1).Paste Destination:=Range("A2")

'quitter le mode de copie (équivalent à la touche "Echap"

Application.CutCopyMode = False

Workbooks("ficA").Close SaveChanges:=False

Workbooks.OpenText Filename:="H:\Nouveau dossier (2)\FicB.txt", Origin:=xlWindows, _

StartRow:=1, DataType:=xlDelimited, Semicolon:=True

Range("A:A,C:C,D:D,E:E,F:F,G:G,J:J").Delete

Range("C2:A" & Range("A65000").End(xlUp).Row).Select

Range("C2:A" & Range("A65000").End(xlUp).Row).Copy

Workbooks("classeurarrivé.xlsm").Activate

Range("C2:A" & Range("A65000").End(xlUp).Row).Paste

Workbooks("FicB").Close SaveChanges:=False

End Sub

Bonjour,

Il manquait, entre autres, les extensions de fichiers lors de la demande de fermeture.

Mais je ne suis pas sûr de tout bien comprendre.

Aussi, je ne vois pas l'utilité de supprimer les colonnes qui ne sont pas à importer.

À tester si ça convient ....

   .... le bon code est quelques posts plus bas  ... 

Gelinotte

merci super ça marche

mais j'ai un autre souci lorsque je veut reproduire cette étape j'ai le dernier ou avant dernier coller qui ne fonctionne pas ou qui doit remplacer un autre

Sub test()

Workbooks.OpenText Filename:="H:\Nouveau dossier (2)\ficA.txt", Origin:=xlWindows, _

StartRow:=1, DataType:=xlDelimited, Semicolon:=True

Range("B:B,C:C,D:D,E:E,F:F,G:G,H:H,J:J,L:L,M:M,N:N").Delete

'Copier les cellules désirées

Sheets("ficA").Range("A2:C512000").Copy

'Activer le classeur de destination

Workbooks("classeurarrivé.xlsm").Activate

'Coller les cellules

Worksheets(1).Paste Destination:=Range("A2")

'quitter le mode de copie (équivalent à la touche "Echap"

Application.CutCopyMode = False

Workbooks("ficA.txt").Close SaveChanges:=False

Workbooks.OpenText Filename:="H:\Nouveau dossier (2)\ficB.txt", Origin:=xlWindows, _

StartRow:=1, DataType:=xlDelimited, Semicolon:=True

Range("A:A,C:C,D:D,E:E,F:F,G:G,J:J").Delete

Range("C2:A" & Range("A1048576").End(xlUp).Row).Select

Range("C2:A" & Range("A1048576").End(xlUp).Row).Copy

Workbooks("classeurarrivé.xlsm").Activate

Worksheets(1).Paste Destination:=Range("A" & Range("A1048576").End(xlUp).Row)

Workbooks("ficB.txt").Close SaveChanges:=False

Name "H:\Nouveau dossier (2)\ficc.csv" As "H:\Nouveau dossier (2)\ficc.Txt"

Workbooks.OpenText Filename:="H:\Nouveau dossier (2)\ficc.Txt", Origin:=xlWindows, _

StartRow:=1, DataType:=xlDelimited, Semicolon:=True

Range("B:B,C:C,D:D,E:E,F:F,G:G,H:H,J:J,L:L,M:M").Delete

Range("C2:A" & Range("A1048576").End(xlUp).Row).Select

Range("C2:A" & Range("A1048576").End(xlUp).Row).Copy

Workbooks("classeurarrivé.xlsm").Activate

Worksheets(1).Paste Destination:=Range("A" & Range("A1048576").End(xlUp).Row)

Workbooks("ficc.Txt").Close SaveChanges:=False

End Sub

Bonjour,

Je ne comprends toujours pas l'utilité de supprimer des colonnes avant de copier ce qui reste.

Quoi qu'il en soit, tu as copié le code pour le fichier à colonne C, mais tu n'as pas adapté les colonnes à supprimer.

Range("B:B,C:C,D:D,E:E,F:F,G:G,H:H,J:J,L:L,M:M").Delete

devrait sûrement être

Range("A:A,B:B,D:D,E:E,F:F,G:G,H:H,J:J,L:L,M:M").Delete

Gelinotte

non c'est bien ça pour ma suppression de colonne (je ne conserve que les données que je veut traiter )

après suppression des colonnes il me reste colonnes A B C de données (les trois fichier totalisé je devrais avoir environ 30 000 ligne mais j'en ai que 15 000 environ avec la macro)

Bonjour,

Dis-moi pour que je comprenne.

Du fichier FicA.txt, tu extrais la colonne A que tu colles dans la colonne A du fichier classeurarrivé.xlsm

Du fichier FicB.txt, est-ce bien la colonne B que tu veux coller dans la colonne B du fichier classeurarrivé.xlsm ??

Ou bien tu colles cette colonne B dans dans la colonne A (à la suite) dans le fichier classeurarrivé.xlsm ??

Sinon, peux-tu m'expliquer ?

Merci l'avance

Gelinotte

a chaque fichier je supprime les colonnes inutile et il me reste a chaque fois que trois colonnes pour tout les fichier (colonnes A B C) après chaque traitement je veut copier les colonnes dans un autre classeur feuille 1 a la suite (classeur arrivé)


je veut une feuille ou la colonnes A des trois fichier soit sur une même colonnes de même pour B et C donc une feuille avec colonnes A B C qui constitué des colonnes A B C des trois fichier

Bonjour,

Good, ça a pris du temps, mais je viens de comprendre.

Je te reviens sous peu.

Gelinotte

Bonjour,

Il restera à vérifier les colonnes à supprimer.

Pour mes tests, j'ai été jusqu'à N sur les 3 fichiers.

Est-ce que ça conviendrait ?

 ... code corrigé plus bas ... 

Gelinotte


Bonjour,

Ouupppssss!

J'ai effectué une petite correction dans le code du poste précédent : End(xlUp).Row + 1)

J'avais oublié le + 1.

Ça avait pour conséquence d'écraser la dernière ligne dans le fichier cible.

C'est corrigé...

Désolé

Gelinotte


Bonjour,

Encore des corrections ...

Sub test()
Workbooks.OpenText Filename:="H:\Nouveau dossier (2)\FicA.txt", Origin:=xlWindows, _
   StartRow:=1, DataType:=xlDelimited, Semicolon:=True

Range("B:H,J:J,L:L,M:N").Delete
   'Copier les cellules désirées
Sheets("ficA").Range("A2:C" & Range("A" & Rows.Count).End(xlUp).Row).Copy
   'Activer le classeur de destination
Workbooks("classeurarrivé.xlsm").Activate
   'Coller les cellules
Worksheets(1).Paste Destination:=Range("A2")
   'quitter le mode de copie (équivalent à la touche "Echap"
Application.CutCopyMode = False
Workbooks("ficA.txt").Close SaveChanges:=False

Workbooks.OpenText Filename:="H:\Nouveau dossier (2)\FicB.txt", Origin:=xlWindows, _
StartRow:=1, DataType:=xlDelimited, Semicolon:=True
Range("A:A,C:G,J:J,K:N").Delete
Range("A2:C" & Range("A" & Rows.Count).End(xlUp).Row).Copy
Workbooks("classeurarrivé.xlsm").Activate
Worksheets(1).Paste Destination:=Range("A" & Range("A" & Rows.Count).End(xlUp).Row + 1)
Workbooks("FicB.txt").Close SaveChanges:=False

Name "H:\Nouveau dossier (2)\ficC.csv" As "H:\Nouveau dossier (2)\ficC.txt"
Workbooks.OpenText Filename:="H:\Nouveau dossier (2)\ficC.txt", Origin:=xlWindows, _
StartRow:=1, DataType:=xlDelimited, Semicolon:=True
Range("B:H,J:J,L:L,M:N").Delete
Range("A2:C" & Range("A" & Rows.Count).End(xlUp).Row).Copy
Workbooks("classeurarrivé.xlsm").Activate
Worksheets(1).Paste Destination:=Range("A" & Range("A" & Rows.Count).End(xlUp).Row + 1)
Workbooks("ficc.Txt").Close SaveChanges:=False

End Sub

Gelinotte

j'ai toujours le problème je crois que lorsque la copie du troisième fichier ce fait elle vient remplacer la copie du deuxième fichier

Bonjour,

Pour les tests, j'ai créé les 3 fichiers "ficA.txt", "ficB.txt" et "ficC.csv".

Dans chacun, j'ai placés des données différentes pour être sûr qu'il y ait bien ajout au bas dans le fichier cible.

Ici, ça fonctionne correctement.

Si tes fichiers "ficA.txt", "ficB.txt" et "ficC.csv" ne contiennent pas de données sensibles, peux-tu les joindre ici ?

Gelinotte

en colonnes a j'ai des identifiant (chiffre) en colonne b et c j'ai du texte

Bonjour,

Si tu peux, place le fichier cible à moitié écran et le VBE sur l'autre moitié (à moins que tu aies 2 écrans).

Essaie de faire un pas-à-pas (touche F8) du code pour voir où ça coince.

Si A tu as des identifiants, la colonne A ne devrait jamais être supprimée ... voir traitement de "FicB.txt"

Gelinotte

Bonjour,

christine854 a écrit :

j'ai toujours le problème je crois que lorsque la copie du troisième fichier ce fait elle vient remplacer la copie du deuxième fichier

Le 3e fichier est bien un .csv ? Car, au début du traitement du 3e segment, tu renommes le FicC.csv en FicC.txt

Gelinotte

c'est le deuxième fichier qui ne se colle pas

oui le troisième fichier et un csv que je passe en txt pour l'ouverture mais la macro fonctionne pour le troisième c'est pour le deuxième que ça bloque l’étape collage ne fonctionne pas

Bonjour,

Le nom de ce 2e fichier, dans le dossier sur le H:, correspond bien, minuscules et majuscules, au nom dans le code ??

Car, je le répète, sur ma machine ça fonctionne bien.

Gelinotte

j'ai trouver l'erreur venais de la partie de suppression des colonnes qui allais jusqu’à N j'ai remis jusqu’à M et ça marche

gros gros merci pour le temps que tu as accordé a mon problème

tout marche encore merci

Rechercher des sujets similaires à "copier coller colonne"