Import tout simple d'un classeur fermé

Bonjour,

Malgré tous les scripts que vous m'avez fourni pour certaines fonctions, je n'ai pas réussi à les adapterpour cette nouvelle fonction qui semble pourtant beaucoup plus simple.

Je veux importer les valeurs qui se trouve dans le fichier1.xlsm (fermé et quelque part sur mon disque) de la feuille nomenclature vers le fichier base.xlsm dans la feuille nomenclature (celui ci est ouvert). La macro sera exécuté a partir de la page accueil.

Merci encore à tous

Cordialement

Zyglur

104fichier1.xlsm (11.54 Ko)
102base.xlsm (11.25 Ko)

Bonjour

Tu ne dis pas ce que tu veux importer. Toute la Feuille?

A te lire

Cordialement

Bonjour Amadéus,

Je veux principalement importer les colonnes A, B et L dans les meme colonnes de destination pour faire simple.

Mais il se peut que je doive importer toute la plage utilisée, ce qui serait mon premier choix.

Merci

-- 21 Mai 2011, 18:26 --

Bonsoir,

Pour expliquer plus clairement j'ai 2 choix possible, je ne sais pas encore lequel sera definitif.

Le 1er :

Copier les toutes valeurs de la feuille nomenclature du fichier choisi dans mon repertoire (ici le fichier1 en exemple) dans la feuille nomenclature du fichier base.(fichier ouvert qui execute la macro).

2eme choix:

Ne copier que les colonnes A, B et L du fichier1 dans les colonnes A, B et L du fichier base.

Merci

Cordialement

Zyglur

Bonsoir,

Je patauge toujours.

J'ai essayé un bout de code, mais ca plante des le depart

Sub transbase()

Dim ws_fic As Worksheet, ws_base As Worksheet
Dim tabl1(), tabl2()
Dim plg1 As Range, plg2 As Range
Set ws_fic = Worksheets("nomenclature")
Set ws_base = Worksheets("nomenclature")

Application.ScreenUpdating = False
Application.Dialogs(xlDialogOpen).Show
fichier_traite = ActiveWorkbook.Name

With ws_fic
 Set plg1 = .Range("a1:z")
 tabl1 = plg1
End With

With Workbooks("base.xlsm")
 With ws_base
  Set plg2 = .Range("a1:z")
  plg2 = tabl2
  tabl1 = tabl2
 End With
End With

Workbooks(fichier_traite).Close

End Sub

Cordialement

Zyglur

Bonjour,

Le fichier fermé, sera-t-il toujours le même, et stocker dans le même dossier de ton disque dur, ou il te faudra une invit afin de sélectionner le fichier ? Sinon il faudrait faire un choix pour l'import complet ou seulement des 3 colonnes, le code ne sera pas le même

Enfin je commence à regarder ce que je peux faire.

Bonjour,

Effectivement le fichier a ouvrir ne sera jamais le meme (y'a une partie du code qui permet d'ouvrir et de choisir le fichier source).

Dans un 1er temps j'importe toute les valeurs des colonnes de A1:M.

Mais si je peux avoir un bout de code pour l'import juste des 3 colonnes ca serait bien.

J'avais un code mais il n'y avait qu'une feuille dans les fichiers et la comme il y en a plusieurs, il faut specifier laquelle on copie, ca me pose soucis.

Je bloque vraiment depuis une semaine.

Merci de ton aide

Cordialement

Zyglur

Re,

Voilà un premier essai, par contre je n'ai pas trop réussi à me dépatouiller avec ta fenêtre d'invit de choix de dossier, car j'ai l'habitude de faire mes imports de données en classeur fermé.

je l'ai remplacé par une simple promptbox qui demande le nom du fichier via un chemin de répertoire codé en dur (à modifer avec le tiens pour essayer du coup) pour mes tests.

Sinon après appuie sur le bouton, l'import se fait bien sur les colonnes A,B et L du fichier1 vers le fichier base.

il y a surement moyen de faire plus optimisé, mais je suis au boulot et je débute aussi

Sur la feuille, à associer au click sur le bouton:

Sub import()

Dim i As Integer
Dim chem2 As String

chem2 = InputBox( _
    Prompt:="Rentrer le nom du fichier à partir duquel faire les copies svp")

i = 1
Call import_donnee(i, chem2)
i = 2
Call import_donnee(i, chem2)
i = 12
Call import_donnee(i, chem2)

End Sub

et ensuite dans un module :

Sub import_donnee(i As Integer, chem2 As String)

Dim appExcel As Excel.Application       'Application Excel
Dim wbExcel As Excel.Workbook           'Classeur Excel
Dim myWkb As Workbook
Dim chem As String

chem = "D:\Data\Users\aguinot\Desktop\" & chem2 & ".xlsm"
'Chemin du fichier à ouvrir => à modifier

Set myWkb = ThisWorkbook

Set appExcel = CreateObject("Excel.Application")
'Ouverture de l'application

On Error Resume Next

With Application
       .ScreenUpdating = False 'evite le defilement des fenêtres
       .EnableEvents = False   'evite les messages d'alerte
End With

'ouverture d'un second classeur :
Set wbExcel = Workbooks.Open(chem, False, False, , , , True)

wbExcel.Worksheets("nomenclature").Activate
Cells(1, i).Select
ActiveCell.EntireColumn.Select
Selection.Copy

myWkb.Worksheets("nomenclature").Activate
Cells(1, i).Select
ActiveCell.EntireColumn.Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Application.CutCopyMode = False

wbExcel.Close (False)

With Application
       .ScreenUpdating = True 'on réinitialise
       .EnableEvents = True   'Idem
End With

End Sub
230base-modif.xlsm (23.01 Ko)

Bonsoir Zirak,

Cela fonctionne, mais pas tout a fait comme je voudrais.

Il faut pouvoir choisir le fichier a importer par la boite de dialogue(pas de definition de chemin ni de fichier en vba) , que tout ce passe a partir de la macro et pas des feuilles.

J'essai d'adapter mais je bloque toujours.

Merci

Cordialement

Zyglur

Très honnetement, j'ai fais divers essais avec la boite de dialogue, mais j'ai pas réussi à m'en sortir, ca faisait bien la copy, mais ca ne reprennait pas le bon fichier pour le coller.

Je réessayerais demain si j'ai pas trop de boulot, à moins que quelqu'un de plus compétent passe par là entre temps.

Je sais que Dan et Claude sont les rois en la matière... et d'autres que j'ai oublié de citer mais qui se reconnaitront

Je débute aussi, et j'ai du mal a savoir ce quil faut faire comme declarations (ce qui va etre utile ou pas), comment naviguer dans le fichier qui vient d'etre ouvert et de repasser au fichier lanceur de la macro pour y copier les infos.

J'ai quand meme reussit a me debrouiller sur pas mal de chose qui se passent uniquement dans le fichier en cours, mais des que ca touche au fichier fermé, c'est galère...

Merci a toi

Zyglur

Re bonjour,

Voilà, finalement ce n'était pas si compliqué, la copie se fait bien après ouverture du fichier avec la boîte de dialogue.

158base-modif.xlsm (22.74 Ko)

Merci Zirak,

Cela fonctionne, mais il faut que tout soit dans la macro et pas dans le feuille.

Cordialement

Zyglur

Rechercher des sujets similaires à "import tout simple classeur ferme"