Importer feuille Excel sur un autre fichier via VBA

Bonjour à tous,

je suis en train d'essayer de créer un fichier excel avec macros afin de gagner du temps. Le but serait de charger une liste de donné via un fichier excel jusqu'à mon autre fichier excel avec vba qui permettra toute sorte de filtre et de formules.

Voici un exemple en pj. Le soucis est que lorsque je choisi le fichier à importer, il créé un nouvel excel. J'aimerai que cela soit fait dans celui avec la macro. Aussi, je voudrais que le bouton qui apparait pour importer la feuille, disparaisse une fois l'importation faite.

Quelqu'un pourrait-il m'aider.

MErci d'avance

170macro-test.zip (18.04 Ko)

Bonsoir,

Je dois un peu fatigué car je vois ton code ouvrir un classeur et copier une feuille, de façon passablement contournée... Mais je ne vois nullement de création de classeur !

Enfin, rien qui reflète le question que tu poses !

Cordialement.

Bonjour, oui j'ai peut être mal expliqué le truc.

Je voulais pouvoir choisir un fichier excel et qu'il se copie dans le fichier avec la macro pour charger cette feuille même.

Peut être suis je totalement à côté de la plaque.

Un peu d'aide serais très apprécié.

Bonjour,

Il était question de fichier créé dans une nouvelle instance d'Excel, ce qui méritait qu'on examine comment tu parvenais à ce résultat... !

Si cette question disparaît, ta macro, si je me souviens bien de ce que j'ai lu, devrait faire ce que tu souhaites. En quoi ne fonctionne-t-elle pas ? Où se situe l'erreur ?

Cordialement.

A mon sens au lieu de copier le fichier dans celui de ma macro, je me retrouve à le copier dans un nouveau classeur. Cela ne me convient pas en faite. Au niveau du code, j'ai reçu un coup de main donc je ne maîtrise pas la totalité du code. D'où ma question.

Selon ton code la feuille est copiée dans le classeur qui contient la macro, en dernière position !

J'imagine. Le truc c'est que je ne sais pas quoi changer exactement sans que sa bug. A chaque fois sa a buger. Quelqu'un peut il voir dans le fichier joint et par la même occasion m'expliquer ?

Si tu as une erreur à l'exécution, il convient que tu indiques le numéro d'erreur et sur quelle ligne elle se produit.

Je n'ai pas de message d'erreur apparemment

Private Sub CommandButton1_Click() '

Dim Classeur_choisi As Long

Static Classeur_choisi_bis As String

Select Case UserForm1.CommandButton1.Caption

Case "Feuille à Copier"

With Application.FileDialog(msoFileDialogOpen)

.AllowMultiSelect = False

.Show

For Classeur_choisi = 1 To .SelectedItems.Count

Workbooks.Open (.SelectedItems(Classeur_choisi))

Next Classeur_choisi

End With

Classeur_choisi_bis = ActiveWorkbook.Name

ActiveWorkbook.Saved = True

UserForm1.CommandButton1.Caption = "Copier cette Feuille"

Case "Copier cette Feuille"

ActiveWorkbook.ActiveSheet.Copy after:=ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count)

Windows(Classeur_choisi_bis).Activate

Application.DisplayAlerts = False

ActiveWorkbook.Close

Unload UserForm1

Sheets("Feuil1").Select

Application.DisplayAlerts = True

ActiveWorkbook.Save

End Select

End Sub

Bonjour,

cela fonctionne, il fallait juste enregistrer ton fichier en 'prenant en charge les macros'

crdlt,

André

365macro-test.xlsm (26.51 Ko)

Bonjour, il fonctionne, cependant, j'aimerai que le fichier soit copié dans "macro test". A chaque fois, il m'ouvre un autre fichier. Cela ne me convient pas car je vais mettre en place d'autres macro.

Pouvez vous m'aider ?

Personne ?

Bonjour,

Tu n'as pas apporté beaucoup d'éléments pour éclairer le dysfonctionnement que tu crois avoir !

Soit il y a une erreur, et on aborde la question en essayant de cerner la cause de l'erreur et les conditions dans lesquelles elle survient, soit le résultat ne concorde pas à ce qui est attendu et l'on fait l'état de ce qui aurait dû être comparé à ce qui est arrivé...

Tu dis qu'il n'y a pas d'erreur ! Mais tu ne dresses pas d'état détaillé comparatif de ce qui déroge au résultat attendu.

Que se passe-t-il donc après avoir cliqué une première fois sur le bouton, et ensuite après le deuxième clic ? (car ton code a l'air conçu pour opérer en deux clics successifs sur le même bouton).

Et s'il te plait, il serait bien de mettre le code sous balises Code (dans le post). En tout état de cause, je m'abstiens de le lire si on me le balance comme un vieil os à son chien !

Bonjour,

lorsque j'ouvre mon fichier macro j'ai un bouton "charger". Lorsque je clique sur charger, il m'ouvre une fenêtre pour choisir le fichier excel qui devra être copié. Jusqu'ici tout va bien. Là où cela sort visiblement de mes compétences c'est que lorsque je choisi le fichier, il m'ouvre un autre excel. Il ne l'intègre pas à mon fichier d'origine (celui avec la macro)

Je ne sais pas quelle balise je dois mettre pour mettre le code. Donc voici le code en espérant qu'il soit lu.

Private Sub CommandButton1_Click() '

Dim Classeur_choisi As Long

Static Classeur_choisi_bis As String

Select Case UserForm1.CommandButton1.Caption

Case "Feuille à Copier"

With Application.FileDialog(msoFileDialogOpen)

.AllowMultiSelect = False

.Show

For Classeur_choisi = 1 To .SelectedItems.Count

Workbooks.Open (.SelectedItems(Classeur_choisi))

Next Classeur_choisi

End With

Classeur_choisi_bis = ActiveWorkbook.Name

ActiveWorkbook.Saved = True

UserForm1.CommandButton1.Caption = "Copier cette Feuille"

Case "Copier cette Feuille"

ActiveWorkbook.ActiveSheet.Copy after:=ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count)

Windows(Classeur_choisi_bis).Activate

Application.DisplayAlerts = False

ActiveWorkbook.Close

Unload UserForm1

Sheets("Feuil1").Select

Application.DisplayAlerts = True

ActiveWorkbook.Save

End Select

End Sub

Rechercher des sujets similaires à "importer feuille fichier via vba"