Comment copier une autre feuille Excel dans mon fichier ?
Luke94
Messages postés
61
Date d'inscription
Statut
Membre
Dernière intervention
-
Luke94 Messages postés 61 Date d'inscription Statut Membre Dernière intervention -
Luke94 Messages postés 61 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
étant novice en la matière et cherchant depuis des jours..., auriez vous la réponse à cette question :
Je dispose d'un fichier Excel avec deux feuilles de calcul A et B. Pour ce fichier, j'ai codé une petite macro me permettant de mettre en forme les données situées sur la feuille B pour afficher les infos dont j'ai besoin sur la feuille A.
Les données situées sur la feuille B sont issues d'un export d'un autre logiciel. Actuellement, je fais cet export dans un fichier Excel, je copie l'ensemble des données que je colle ensuite dans ma feuille B.
Ce que j'aimerai bien faire, c'est disposer d'un bouton de commande dans ma feuille A, me demandant d'importer le fichier en question. J'irai alors le chercher par cette invit de commande et la macro associée copierait les données de la feuille source (export) dans ma feuille B. Je n'aurais ensuite plus qu'à appliquer ma macro existante pour transformer mes données.
Vous l'aurez compris, je trouve très lourd d'avoir à ouvrir les deux fichiers et de faire du copier/coller...
Merci d'avance pour vos réponses !
étant novice en la matière et cherchant depuis des jours..., auriez vous la réponse à cette question :
Je dispose d'un fichier Excel avec deux feuilles de calcul A et B. Pour ce fichier, j'ai codé une petite macro me permettant de mettre en forme les données situées sur la feuille B pour afficher les infos dont j'ai besoin sur la feuille A.
Les données situées sur la feuille B sont issues d'un export d'un autre logiciel. Actuellement, je fais cet export dans un fichier Excel, je copie l'ensemble des données que je colle ensuite dans ma feuille B.
Ce que j'aimerai bien faire, c'est disposer d'un bouton de commande dans ma feuille A, me demandant d'importer le fichier en question. J'irai alors le chercher par cette invit de commande et la macro associée copierait les données de la feuille source (export) dans ma feuille B. Je n'aurais ensuite plus qu'à appliquer ma macro existante pour transformer mes données.
Vous l'aurez compris, je trouve très lourd d'avoir à ouvrir les deux fichiers et de faire du copier/coller...
Merci d'avance pour vos réponses !
A voir également:
- Comment copier une autre feuille Excel dans mon fichier ?
- Fichier bin - Guide
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier rar - Guide
- Liste déroulante excel - Guide
6 réponses
bonjour,
j'ai modifié le code en ce sens :
Sub ouvrirfichierpourcopiercellules()
a = ActiveWorkbook.Name 'la variable a = nom du fichier actuel
MsgBox "Merci de choisir dans le fenêtre ci-après le fichier à exporter"
Application.Dialogs(xlDialogOpen).Show 'ouvre la boîte de dialogue ouvrir
b = ActiveWorkbook.Name ' la variable égale au nom du fichier que tu viens d'ouvrir
Cells.Copy 'copie toute la feuille
Workbooks(a).Activate 'active le classeur ou tu veux copier
Sheets("Feuille1").Select 'sélectionne la feuille 1
ActiveSheet.Paste
Workbooks(b).Close 'ferme le fichier d'ou tu as pris les cellules
End Sub
j'ai modifié le code en ce sens :
Sub ouvrirfichierpourcopiercellules()
a = ActiveWorkbook.Name 'la variable a = nom du fichier actuel
MsgBox "Merci de choisir dans le fenêtre ci-après le fichier à exporter"
Application.Dialogs(xlDialogOpen).Show 'ouvre la boîte de dialogue ouvrir
b = ActiveWorkbook.Name ' la variable égale au nom du fichier que tu viens d'ouvrir
Cells.Copy 'copie toute la feuille
Workbooks(a).Activate 'active le classeur ou tu veux copier
Sheets("Feuille1").Select 'sélectionne la feuille 1
ActiveSheet.Paste
Workbooks(b).Close 'ferme le fichier d'ou tu as pris les cellules
End Sub
bonjour,
voici la macro
Sub ouvrirfichierpourcopiercellules()
a = ActiveWorkbook.Name 'la variable a = nom du fichier actuel
Application.Dialogs(xlDialogOpen).Show 'ouvre la boîte de dialogue ouvrir
b = ActiveWorkbook.Name ' la variable égale au nom du fichier que tu viens d'ouvrir
Sheets("export").Select 'sélectionnes la feuille export
Cells.Copy 'copie toute la feuille
Workbooks(a).Activate 'active le classeur ou tu veux copier
Sheets("Feuille1").Select 'sélectionne la feuille 1
ActiveSheet.Paste
Workbooks(b).Close 'ferme le fichier d'ou tu as pris les cellules
End Sub
voici la macro
Sub ouvrirfichierpourcopiercellules()
a = ActiveWorkbook.Name 'la variable a = nom du fichier actuel
Application.Dialogs(xlDialogOpen).Show 'ouvre la boîte de dialogue ouvrir
b = ActiveWorkbook.Name ' la variable égale au nom du fichier que tu viens d'ouvrir
Sheets("export").Select 'sélectionnes la feuille export
Cells.Copy 'copie toute la feuille
Workbooks(a).Activate 'active le classeur ou tu veux copier
Sheets("Feuille1").Select 'sélectionne la feuille 1
ActiveSheet.Paste
Workbooks(b).Close 'ferme le fichier d'ou tu as pris les cellules
End Sub
Bonjour,
merci pour votre réponse qui me permet d'avancer. Mais, je vais préciser mon besoin.
En fait, j'ai un peu simplifié car j'ai plusieurs feuilles de calcul A, B, C, D,... et chaque fois les données de B sont récupérées pour les placer dans la feuille A, les données de la feuille D pour récupérer pour être placées dans la feuille C,...etc
C'est pourquoi, le fichier que je récupère ne s'appelle pas toujours "export".
J'aurais besoin que la macro m'ouvre une fenêtre de dialogue avec un texte du style "quel fichier voulez vous importer ?" et me permettant d'aller chercher dans mon arborescence le fichier qui va bien.
Une fois sélectionnée, la macro fera ensuite la recopie de l'ensemble des données de la feuille "export" dans la feuille contenant le bouton de commande.
Ainsi, je placerai un bouton de commande dans ma feuille A mais aussi dans ma feuille C.
En espérant que mes explications soient compréhensibles.
Merci d'avance !
merci pour votre réponse qui me permet d'avancer. Mais, je vais préciser mon besoin.
En fait, j'ai un peu simplifié car j'ai plusieurs feuilles de calcul A, B, C, D,... et chaque fois les données de B sont récupérées pour les placer dans la feuille A, les données de la feuille D pour récupérer pour être placées dans la feuille C,...etc
C'est pourquoi, le fichier que je récupère ne s'appelle pas toujours "export".
J'aurais besoin que la macro m'ouvre une fenêtre de dialogue avec un texte du style "quel fichier voulez vous importer ?" et me permettant d'aller chercher dans mon arborescence le fichier qui va bien.
Une fois sélectionnée, la macro fera ensuite la recopie de l'ensemble des données de la feuille "export" dans la feuille contenant le bouton de commande.
Ainsi, je placerai un bouton de commande dans ma feuille A mais aussi dans ma feuille C.
En espérant que mes explications soient compréhensibles.
Merci d'avance !
Bonjour,
merci beaucoup pour ton dernier message. J'ai adapté de la manière suivante car j'avais un souci au niveau de la sélection :
Private Sub CommandButton1_Click()
a = ActiveWorkbook.Name 'la variable a = nom du fichier actuel
MsgBox "Merci de choisir dans le fenêtre ci-après le fichier à exporter"
Application.Dialogs(xlDialogOpen).Show 'ouvre la boîte de dialogue ouvrir
b = ActiveWorkbook.Name ' la variable égale au nom du fichier que tu viens d'ouvrir
Sheets(1).Select 'car le nom du 1er onglet n'est pas forcément Feuil1
Selection.Copy
Workbooks(a).Activate 'active le classeur ou tu veux copier
Sheets("Données brutes").Select 'sélectionne la feuille en question
ActiveSheet.Paste
Workbooks(b).Close 'ferme le fichier d'ou tu as pris les cellules
Sheets("DEPARTS").Select 'sélectionne la feuille en question
Call Transfo 'appel ma macro de transformation des données brutes
End Sub
Il me reste un dernier souci : ma macro de transformation se charge de transformer les données brutes qui sont notamment séparées par des virgules et autres tabulations avant d'en extraire les données essentielles.
Or, lorsque j'effectue avant la recopie, Excel détecte justement cela et me propose déjà une mise en forme... : "L'assistant Texte a déterminé que mes données sont de type délimitées"
Je voudrais éviter l'ouverture de cette fenêtre et laisser la macro "Transfo" faire son travail et me faire aussi gagner du temps...
Merci d'avance !
merci beaucoup pour ton dernier message. J'ai adapté de la manière suivante car j'avais un souci au niveau de la sélection :
Private Sub CommandButton1_Click()
a = ActiveWorkbook.Name 'la variable a = nom du fichier actuel
MsgBox "Merci de choisir dans le fenêtre ci-après le fichier à exporter"
Application.Dialogs(xlDialogOpen).Show 'ouvre la boîte de dialogue ouvrir
b = ActiveWorkbook.Name ' la variable égale au nom du fichier que tu viens d'ouvrir
Sheets(1).Select 'car le nom du 1er onglet n'est pas forcément Feuil1
Selection.Copy
Workbooks(a).Activate 'active le classeur ou tu veux copier
Sheets("Données brutes").Select 'sélectionne la feuille en question
ActiveSheet.Paste
Workbooks(b).Close 'ferme le fichier d'ou tu as pris les cellules
Sheets("DEPARTS").Select 'sélectionne la feuille en question
Call Transfo 'appel ma macro de transformation des données brutes
End Sub
Il me reste un dernier souci : ma macro de transformation se charge de transformer les données brutes qui sont notamment séparées par des virgules et autres tabulations avant d'en extraire les données essentielles.
Or, lorsque j'effectue avant la recopie, Excel détecte justement cela et me propose déjà une mise en forme... : "L'assistant Texte a déterminé que mes données sont de type délimitées"
Je voudrais éviter l'ouverture de cette fenêtre et laisser la macro "Transfo" faire son travail et me faire aussi gagner du temps...
Merci d'avance !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour !
Application.DisplayAlerts = False 'désactive les messages d'erreurs
ouverture du fichier
...
(ton code)
...
fermeture du fichier
Application.DisplayAlerts = True 'réactive les messages d'erreurs.
En espérant t'avoir aidé
@+
Application.DisplayAlerts = False 'désactive les messages d'erreurs
ouverture du fichier
...
(ton code)
...
fermeture du fichier
Application.DisplayAlerts = True 'réactive les messages d'erreurs.
En espérant t'avoir aidé
@+
Bonjour,
merci beaucoup pour ton aide mais malheureusement, j'ai toujours le même message me demandant quelle mise en forme je souhaite...
Il s'agit de l'assistant texte qui me demande de choisir entre les virgules, points virgules,... etc pour d"limiter mes colonnes, chose que ma macro prend ensuite en compte...
Merci d'avance !
merci beaucoup pour ton aide mais malheureusement, j'ai toujours le même message me demandant quelle mise en forme je souhaite...
Il s'agit de l'assistant texte qui me demande de choisir entre les virgules, points virgules,... etc pour d"limiter mes colonnes, chose que ma macro prend ensuite en compte...
Merci d'avance !