EXCEL copier et coller par 2 macros
Fermé
demarez69
Messages postés
32
Date d'inscription
vendredi 16 novembre 2007
Statut
Membre
Dernière intervention
4 juin 2020
-
25 janv. 2013 à 09:09
Heliotte Messages postés 1491 Date d'inscription vendredi 26 octobre 2012 Statut Membre Dernière intervention 28 janvier 2013 - 25 janv. 2013 à 18:14
Heliotte Messages postés 1491 Date d'inscription vendredi 26 octobre 2012 Statut Membre Dernière intervention 28 janvier 2013 - 25 janv. 2013 à 18:14
A voir également:
- EXCEL copier et coller par 2 macros
- Liste déroulante excel - Guide
- Si et excel - Guide
- Copier coller pdf - Guide
- Word et excel gratuit - Guide
- Formule excel - Guide
7 réponses
Heliotte
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
92
25 janv. 2013 à 11:22
25 janv. 2013 à 11:22
Désolé pour le retard .. certaines obligations...
Voici une façon de faire:
Il faut que les deux classeurs soit ouvert .. sinon, il faut utiliser un autre moyen.
Cordialement.
Voici une façon de faire:
Public Sub CopierColler() Dim CopierFichier As String, CollerFichier As String Dim CopierFeuille As String, CollerFeuille As String Dim CopierLigne As Long, CollerLigne As Long Dim CopierColonne As Long, CollerColonne As Long ' CopierFichier = "FicherOriginal.xls" CollerFichier = "FicherCopie.xls" CopierLigne = 1: CopierColonne = 3 CollerColonne = 3 If (Cells(1, 3).Value <> "") Then CollerLigne = Columns(3).Find("*", , , , xlByColumns, xlPrevious).Row Else CollerLigne = 1 End If CopierFeuille = "Feuil1": CollerFeuille = "Feuil1" ' Dim Contenu As Long Contenu = Workbooks(CopierFichier).Sheets(CopierFeuille).Cells(CopierLigne, CopierColonne).Value Workbooks(CollerFichier).Sheets(CollerFeuille).Cells(CollerLigne, CollerColonne).Value = Contenu End Sub
Il faut que les deux classeurs soit ouvert .. sinon, il faut utiliser un autre moyen.
Cordialement.
Heliotte
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
92
25 janv. 2013 à 13:29
25 janv. 2013 à 13:29
Je vais tenter de répondre le mieux possible à vos questions .. n'hésitez pas si vous ne saisissez pas tout..
Comment faire pour créer cette macro ? Pour l'instant je crée une macro bidon et je remplace le texte par celui qu'on me propose, il y a sans doute plus logique !
Une procédure (tant qu'à faire, parlons correctement), public ou privée, porte un nom, ex: Public Sub CopierColler() ..
Cette phrase annonce le début d'une procédure de type "publique" (donc, on peut l'appeler dans Excel avec Menu, Outils, Macro, Macro, NomDeLaProcédure ou via un bouton de commande.
Pour en revenir à la procédure que j'ai écrite plus haut, c'est toute la procédure à coller dans un module .. mais il y a un peu de travail pour vous !
Il faut donner des noms ou des nombres aux différentes variables:
- remplacer FicherOriginal.xls par le vrai nom de fichier d'origine,
- remplacer FicherCopie.xls par le vrai nom de fichier dans lequel vous aller coller la valeur de la cellule,
- remplacer, si nécessaire, CopierFeuille par le vrai nom de la feuille (onglet) du classeur original,
- remplacer, si nécessaire, CollerFeuille par le vrai nom de la feuille (onglet) du classeur dans lequel vous aller coller la valeur de la cellule,
Passons à la numérotation des cellules:
J'ai remplacé la valeur d'une cellule par un nom à deux composantes .. la radical donne le classeur (Copier = la classeur à partir duquel on récolte la donnée; Coller = le classeur où l'on colle la donnée) et le suffixe .. qui est soit Ligne, soit Colonne.
Pour les numéros de ligne .. pas d'explication
Par contre, pour les numéro de colonne :
1 = A ; 2 = B ; 3 = C ... 26 = Z; 27 = AA .. etc.
Comment faire pour créer cette macro ? Pour l'instant je crée une macro bidon et je remplace le texte par celui qu'on me propose, il y a sans doute plus logique !
Une procédure (tant qu'à faire, parlons correctement), public ou privée, porte un nom, ex: Public Sub CopierColler() ..
Cette phrase annonce le début d'une procédure de type "publique" (donc, on peut l'appeler dans Excel avec Menu, Outils, Macro, Macro, NomDeLaProcédure ou via un bouton de commande.
Pour en revenir à la procédure que j'ai écrite plus haut, c'est toute la procédure à coller dans un module .. mais il y a un peu de travail pour vous !
Il faut donner des noms ou des nombres aux différentes variables:
CopierFichier = "FicherOriginal.xls" CollerFichier = "FicherCopie.xls" CopierFeuille = "Feuil1": CollerFeuille = "Feuil1"
- remplacer FicherOriginal.xls par le vrai nom de fichier d'origine,
- remplacer FicherCopie.xls par le vrai nom de fichier dans lequel vous aller coller la valeur de la cellule,
- remplacer, si nécessaire, CopierFeuille par le vrai nom de la feuille (onglet) du classeur original,
- remplacer, si nécessaire, CollerFeuille par le vrai nom de la feuille (onglet) du classeur dans lequel vous aller coller la valeur de la cellule,
Passons à la numérotation des cellules:
CopierLigne = 1: CopierColonne = 3 CollerColonne = 3 If (Cells(1, 3).Value <> "") Then CollerLigne = Columns(3).Find("*", , , , xlByColumns, xlPrevious).Row Else CollerLigne = 1 End If
J'ai remplacé la valeur d'une cellule par un nom à deux composantes .. la radical donne le classeur (Copier = la classeur à partir duquel on récolte la donnée; Coller = le classeur où l'on colle la donnée) et le suffixe .. qui est soit Ligne, soit Colonne.
Pour les numéros de ligne .. pas d'explication
Par contre, pour les numéro de colonne :
1 = A ; 2 = B ; 3 = C ... 26 = Z; 27 = AA .. etc.
Heliotte
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
92
25 janv. 2013 à 09:20
25 janv. 2013 à 09:20
Bonjour Eric,
Quand vous parlez de "dossier" .. ce sont deux fichiers qui se trouve dans le même répertoire du collègue "X" ?
Quand vous parlez de "dossier" .. ce sont deux fichiers qui se trouve dans le même répertoire du collègue "X" ?
demarez69
Messages postés
32
Date d'inscription
vendredi 16 novembre 2007
Statut
Membre
Dernière intervention
4 juin 2020
5
25 janv. 2013 à 09:36
25 janv. 2013 à 09:36
Bonjour,
Je suis bluffé par votre réactivité ! Bravo et merci beaucoup de m'aider...
Alors, je vais essayer d'être plus précis : ce sont 2 feuilles de calcul qui ne sont pas dans le même dossier (je ne sais pas vraiment ce qu'est un "fichier").
Par ailleurs, je précise que les cellules à copier sont des formules et que je ne dois coller que les valeurs.
Je suis bluffé par votre réactivité ! Bravo et merci beaucoup de m'aider...
Alors, je vais essayer d'être plus précis : ce sont 2 feuilles de calcul qui ne sont pas dans le même dossier (je ne sais pas vraiment ce qu'est un "fichier").
Par ailleurs, je précise que les cellules à copier sont des formules et que je ne dois coller que les valeurs.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
demarez69
Messages postés
32
Date d'inscription
vendredi 16 novembre 2007
Statut
Membre
Dernière intervention
4 juin 2020
5
Modifié par demarez69 le 25/01/2013 à 12:16
Modifié par demarez69 le 25/01/2013 à 12:16
Aîe, je savais bien que ça allait se compliquer ! Mais bon, depuis le temps que je dois me mettre aux macros, autant profiter de l'occasion. J'espère que je ne vais pas vous décourager pour autant.
Donc ce texte que vous m'envoyer, je présume que c'est la liste de commandes qu'il me faut greffer dans une macro. D'où mes questions complémentaires :
- Comment faire pour créer cette macro ? Pour l'instant je crée une macro bidon et je remplace le texte par celui qu'on me propose, il y a sans doute plus logique !
- Je présume qu'il me faut préciser l'adresse des cellules à copier et de la feuille de destination. Comment dois-je m'y prendre ?
- Cette commande unique est-elle sensée suffire ? je ne suis pas sûr que l'on puisse relier la feuille d'origine et celle de destination sans passer par le "vide-poche" (progiciel d'origine un tantinet "hermétique !)
- Comment créer un bouton associé ? ou 2...
Rq : J'ai changé la disposition des cases pour avoir toutes les valeurs intéressantes sur la même ligne. Donc plus de problème de collage avec ou sans liaison. Il me suffit donc de copier cette suite de cases dans un premier temps pour la coller sur la première ligne vide de la feuille de destination dans un 2ème temps.
Donc ce texte que vous m'envoyer, je présume que c'est la liste de commandes qu'il me faut greffer dans une macro. D'où mes questions complémentaires :
- Comment faire pour créer cette macro ? Pour l'instant je crée une macro bidon et je remplace le texte par celui qu'on me propose, il y a sans doute plus logique !
- Je présume qu'il me faut préciser l'adresse des cellules à copier et de la feuille de destination. Comment dois-je m'y prendre ?
- Cette commande unique est-elle sensée suffire ? je ne suis pas sûr que l'on puisse relier la feuille d'origine et celle de destination sans passer par le "vide-poche" (progiciel d'origine un tantinet "hermétique !)
- Comment créer un bouton associé ? ou 2...
Rq : J'ai changé la disposition des cases pour avoir toutes les valeurs intéressantes sur la même ligne. Donc plus de problème de collage avec ou sans liaison. Il me suffit donc de copier cette suite de cases dans un premier temps pour la coller sur la première ligne vide de la feuille de destination dans un 2ème temps.
demarez69
Messages postés
32
Date d'inscription
vendredi 16 novembre 2007
Statut
Membre
Dernière intervention
4 juin 2020
5
25 janv. 2013 à 14:42
25 janv. 2013 à 14:42
Merci d'avoir pris le temps de me donner ces détails. Je vais essayer de digérer tout ça. Nul doute que ça va me prendre un certain temps...
Je vous tiens au courant.
Je vous tiens au courant.
Heliotte
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
92
25 janv. 2013 à 18:14
25 janv. 2013 à 18:14
Bonsoir Eric,
En relisant mon code, je me suis aperçu qu'il y a une erreur .. il faut ajouter "+ 1" à la ligne de recherche de la dernière ligne non-vide .. sinon, on écrit toujours sur la même ligne .. mille excuses.
J'en ai profité pour ajouter des commentaires .. autant que j'ai pu.
Voici le lien du fichier : http://cjoint.com/data3/3AzsnTeOKgr.htm
Bon week-end,
Heliotte.
En relisant mon code, je me suis aperçu qu'il y a une erreur .. il faut ajouter "+ 1" à la ligne de recherche de la dernière ligne non-vide .. sinon, on écrit toujours sur la même ligne .. mille excuses.
J'en ai profité pour ajouter des commentaires .. autant que j'ai pu.
Voici le lien du fichier : http://cjoint.com/data3/3AzsnTeOKgr.htm
Bon week-end,
Heliotte.