Comment copier une autre feuille Excel dans mon fichier ?

Fermé
Luke94 Messages postés 61 Date d'inscription jeudi 22 novembre 2012 Statut Membre Dernière intervention 13 novembre 2023 - 24 juil. 2013 à 15:58
Luke94 Messages postés 61 Date d'inscription jeudi 22 novembre 2012 Statut Membre Dernière intervention 13 novembre 2023 - 29 juil. 2013 à 09:20
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 !
A voir également:

6 réponses

melanie1324 Messages postés 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
24 juil. 2013 à 17:02
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
1
melanie1324 Messages postés 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
24 juil. 2013 à 16:10
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
0
Luke94 Messages postés 61 Date d'inscription jeudi 22 novembre 2012 Statut Membre Dernière intervention 13 novembre 2023
24 juil. 2013 à 16:50
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 !
0
Luke94 Messages postés 61 Date d'inscription jeudi 22 novembre 2012 Statut Membre Dernière intervention 13 novembre 2023
26 juil. 2013 à 10:13
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 !
0

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

Posez votre question
SelhY AkA Messages postés 3 Date d'inscription mardi 23 juillet 2013 Statut Membre Dernière intervention 26 juillet 2013
26 juil. 2013 à 11:40
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é

@+
0
Luke94 Messages postés 61 Date d'inscription jeudi 22 novembre 2012 Statut Membre Dernière intervention 13 novembre 2023
29 juil. 2013 à 09:20
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 !
0