Copier & Coller Excel

Fermé
Stéphanie - 20 mars 2009 à 14:17
Mike-31 Messages postés 18352 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 décembre 2024 - 22 mars 2009 à 16:35
Bonjour,
J'ai 10 dossiers excel, j'aimerai avoir une macro ou autres pour me copier :
la colonne A de mon premier dossier , coller en A dans ma feuil1
La colonne B de mon 2° dossier, coller en B dans ma feuil1
La colonne C de mon 3° dossier, coller en C dans ma feuil1
La colonne D de mon 3° dossier, coller en D dans ma feuil1
La colonne E de mon 3° dossier, coller en E dans ma feuil1
La colonne F de mon 3° dossier, coller en F dans ma feuil1
La colonne G de mon 3° dossier, coller en G dans ma feuil1
La colonne H de mon 3° dossier, coller en H dans ma feuil1...
Une macro qui me permettrait de ne pas ouvrir tous les dossiers et me faciliterait la vie.
Voilà, un problème qui me bloque depuis quelques jours.
Merci
A voir également:

8 réponses

Mike-31 Messages postés 18352 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 décembre 2024 5 110
20 mars 2009 à 15:41
Salut,

Si j'ai bien tout compris, dans mon exemple, (fichier à récupérer avec le lien ci-dessous), le fichier dans le quel les données seront transférées s'appelle Récap. Pour l'exemple trois fichiers à transférer qui se nomment respectivement Dossier1, Dossier2, Dossier3
Avec ce code tout simple, tous les fichiers doivent être ouverts

https://www.cjoint.com/?dwpLsemavQ

Code VBA à adapter et compléter

Sub Macro1()

Windows("Dossier1.xls").Activate
Sheets("Feuil1").Columns("A:A").Copy

Windows("Récap.xls").Activate
Sheets("Feuil1").Range("A1").Select

Selection.PasteSpecial Paste:=xlPasteValues
Windows("Dossier2.xls").Activate
Sheets("Feuil2").Columns("B:B").Copy

Windows("Récap.xls").Activate
Sheets("Feuil1").Range("B1").Select

Selection.PasteSpecial Paste:=xlPasteValues
Windows("Dossier3.xls").Activate
Sheets("Feuil3").Columns("C:C").Copy


Windows("Récap.xls").Activate
Sheets("Feuil1").Range("C1").Select

Selection.PasteSpecial Paste:=xlPasteValues
Range("A1").Select
Application.CutCopyMode = False
End Sub

A+
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
20 mars 2009 à 16:43
Bonjour,

XL<2007
1/dans ton énoncé, tu écris 3 classeurs (dossier1, dossier2, dossier3) dont plusieurs colonnes dans le 3...
ne serait pas plutôt 4, 5, 6, etc (ce n'est pas génant si tu en as 255!...)?
2/ veux tu réellement toute la colonne ou un grand nombre de lignes ?
3/ tous ces classeurs sont -ils dans le m^me répertoire ? sinon explique l'architecture

sans ces renseignements, je ne peux pas te proposer une solution avec fichiers sources fermés...
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
20 mars 2009 à 17:44
heu...
J'ai aussi besoin de la ligne où tu débutes.par exemple: 2 si tu as une étiquette en 1
0
Bonjour,
hou! la! Je me suis trompée quand j'ai posé ma question. J'ai fait un copier /coller et j'ai oublié de rectifier.
Je suis vraiment navré de mon erreur et je la rectifie de suite .
J'ai 10 dossiers excel, j'aimerai avoir une macro ou autres pour me copier :
la colonne A de mon premier dossier , coller en A dans ma feuil1
La colonne B de mon 2° dossier, coller en B dans ma feuil1
La colonne C de mon 3° dossier, coller en C dans ma feuil1
La colonne D de mon 4° dossier, coller en D dans ma feuil1
La colonne E de mon 5° dossier, coller en E dans ma feuil1
La colonne F de mon 6° dossier, coller en F dans ma feuil1
La colonne G de mon 7° dossier, coller en G dans ma feuil1
La colonne H de mon 8° dossier, coller en H dans ma feuil1...
La colonne I de mon 9° dossier, coller en H dans ma feuil1...
La colonne J de mon 10° dossier, coller en H dans ma feuil1...
Une macro qui me permettrait de ne pas ouvrir tous les dossiers et me faciliterait la vie.
4 Dossiers sur le bureau, 3 Dossiers dans mes documents, 3 Dossiers dans mes documents - excel
Je voudrai copier les colonnes en priorité comme ci-dessous et si je peux en plus choisir mes lignes c'est encore mieux.
Le début à copier est à la cellule 1 mais si toute fois je voudrai le faire à la cellule 2. Comment dois-je m'y prendre.
Voilà, un problème qui me bloque depuis quelques jours.
Merci.
0
Stéphanie > Stéphanie
21 mars 2009 à 21:41
Décidément,
Bonjour,
hou! la! Je me suis trompée quand j'ai posé ma question. J'ai fait un copier /coller et j'ai oublié de rectifier.
Je suis vraiment navré de mon erreur et je la rectifie de suite .
J'ai 10 dossiers excel, j'aimerai avoir une macro ou autres pour me copier :
la colonne A de mon premier dossier , coller en A dans ma feuil1
La colonne B de mon 2° dossier, coller en B dans ma feuil1
La colonne C de mon 3° dossier, coller en C dans ma feuil1
La colonne D de mon 4° dossier, coller en D dans ma feuil1
La colonne E de mon 5° dossier, coller en E dans ma feuil1
La colonne F de mon 6° dossier, coller en F dans ma feuil1
La colonne G de mon 7° dossier, coller en G dans ma feuil1
La colonne H de mon 8° dossier, coller en H dans ma feuil1...
La colonne I de mon 9° dossier, coller en I dans ma feuil1...
La colonne J de mon 10° dossier, coller en J dans ma feuil1...
Une macro qui me permettrait de ne pas ouvrir tous les dossiers et me faciliterait la vie.
4 Dossiers sur le bureau, 3 Dossiers dans mes documents, 3 Dossiers dans mes documents - excel
Je voudrai copier les colonnes en priorité comme ci-dessous et si je peux en plus choisir mes lignes c'est encore mieux.
Le début à copier est à la cellule 1 mais si toute fois je voudrai le faire à la cellule 2. Comment dois-je m'y prendre.
Voilà, un problème qui me bloque depuis quelques jours.
Merci.
0
Mike-31 Messages postés 18352 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 décembre 2024 5 110
21 mars 2009 à 22:15
Salut,

pas très compliqué, le seul problème est l'adresse exacte de chaque fichier, alors pour tous ceux qui voudraient t'écrire un code tu vas faire exactement ceci.
pour un des fichier source sur le bureau, tu vas lancer l'assistant macro et enregistrer une macro fichier ouvrir et tu ouvres le fichier arréter l'enregistrement.

Tu colles la macro et le nom des autres fichiers a traiter qui se trouve au même endroit.
Tu fais la même chose avec un Dossier dans mes documents, et un Dossier dans mes documents excel et pour chaque étape le nom de chaque fichier

et le nombre de ligne à copier exemple de A1 à A50

Avec ça on pourra t'écrire un code qui fonctionnera

A+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
22 mars 2009 à 09:57
Bonjour à tous,
Stéphanie,
La première chose INDISPENSABLE à faire; tu ranges les classeurs concernés (dossier 1 à N) dans le m^me répertoire
(nota: mettre les fichiers sur le bureau est idéal pour manger inutilement de la mémoire et planter ton ordi)

tu trouveras ci joint une maquette avec 4 classeurs (dossiers) et le classeur "recap" ( le dossier2 comporte environ 1200 données). tu pourras travailler avec 255 dossiers (limite XL<2007),
les classeurs sources restent fermés comme tu le souhaitais mais la condition rédhibitoire pour fonctionner en "fermé" est que les données doivent être du m^me type: nombres ou texte... si c'est le cas, on passerait alors en fichiers ouverts mais en évitant de faire des copier-coller extrêmement lents

https://www.cjoint.com/?dyjTaRVPRt
pour fonctionner, n'oublie pas de mettre les macros en sécurité moyenne ou basse (outils-macros-sécurité)

j'attends tes réactions
0
Bonjour,
C'est vraiment formidable, j'ai essayé votre solution et je la trouve remarquable. je vais l'essayer plus amplement . Je vous tiendrai au courant de comment cela se passe avec mes dossiers.
Et Merci.
0
Mike-31 Messages postés 18352 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 décembre 2024 5 110
22 mars 2009 à 11:56
Salut Stephanie et Michel_m,

Une autre approche peut être plus basique, le seul bémol est le chemin de chaque fichier qui reste à déterminer et modifier

https://www.cjoint.com/?dylZdWFkVz

Bon Dimanche
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
22 mars 2009 à 12:27
re, mike

hé oui, tout dépend de ce rangement...

mais pourquoi fais-tu toujours des "copier-coller" avec des "select-selection", il y a + rapide et + simple.... je précise qu'il n'y a rien de péjoratif dans ce que je dis, bien sûr!

edit à 1240H
par exemple:
ThisWorkbook.Sheets(1).Range("A1:A50") = Workbooks("classeur1.xls").Sheets(1).Range("A1:A50").Value
0
Mike-31 Messages postés 18352 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 décembre 2024 5 110
22 mars 2009 à 16:35
Salut Michel_m,

Je comprend très bien ce que tu veux dire dans il y a plus simple et plus rapide, suivant la formulation de la demande, j'essaye de proposer des codes facile à interpréter et surtout à suivre pour permettre au demandeur de pouvoir le modifier facilement.
Il n'y a pas très longtemps j'ai vu des codes proposés sur un forum concurrent et demander sur notre forum sa modification PAS TRES SYMPAT

Dans le code présent, j'ai séparé chaque groupe pour permettre à Stéphanie de copier uniquement le chemin d'accès de chaque fichier.

Au passage, je change de conversation, serais tu faire clignoter les séparateurs d'heure dans une cellule, je dis bien les deux points : et non pas le contenu de la cellule 16:33:25

Bonne fin de Dimanche

A+
0