Importer une feuille excel
spouich
-
spouich -
spouich -
Bonjour,
J'ai une application ".xls" en deux parties :
-Un fichier "gestion.xls" contient le programme, les userforms, les paramètres;
-Un fichier "bdd.xls" contient la base de données.
Je voudrais qu'à l'ouverture de "gestion.xls", le programme importe le fichier "bdd.xls" et copie les données pour être gérées par le programme.
Pour être clair :
-"Gestion.xls" contient plusieurs feuilles :
:: "Internal" pour les paramètres internes (chemin d'accès, etc)
:: "External" pour les données que je souhaite importer
:: "Work" pour les calculs excel standard
-"bdd.xls" contient une seule feuille :
::"Base" qui contient toutes les données.
Autrement dit, tout en vulgarisant complètement le langage, à l'ouverture du programme principal, je voudrais un truc du genre :
Voilà, je sais très bien que ce code va tout faire planter, mais c'est juste pour donner l'idée de ce que je cherche. Autrement dit un code qui tient en moins de 10 lignes, facile à comprendre, et qui donne du résultat...
Pouvez-vous m'aider ?
Merci d'avance.
J'ai une application ".xls" en deux parties :
-Un fichier "gestion.xls" contient le programme, les userforms, les paramètres;
-Un fichier "bdd.xls" contient la base de données.
Je voudrais qu'à l'ouverture de "gestion.xls", le programme importe le fichier "bdd.xls" et copie les données pour être gérées par le programme.
Pour être clair :
-"Gestion.xls" contient plusieurs feuilles :
:: "Internal" pour les paramètres internes (chemin d'accès, etc)
:: "External" pour les données que je souhaite importer
:: "Work" pour les calculs excel standard
-"bdd.xls" contient une seule feuille :
::"Base" qui contient toutes les données.
Autrement dit, tout en vulgarisant complètement le langage, à l'ouverture du programme principal, je voudrais un truc du genre :
'Ceci est complètement vulgarisé
open workbook "c:\DATABASE\bdd.xls"
sheets("bdd.Base").range("A1:IV65535").copy
sheets("Gestion.External").range("A1").paste
Voilà, je sais très bien que ce code va tout faire planter, mais c'est juste pour donner l'idée de ce que je cherche. Autrement dit un code qui tient en moins de 10 lignes, facile à comprendre, et qui donne du résultat...
Pouvez-vous m'aider ?
Merci d'avance.
1 réponse
-
Salut spouich
Avec le mode enregistrement de macros et quelques retouches voila ce que ça donne
Code à placer dans un module de gestion.xlsSub Importer_BDD()
'
Application.ScreenUpdating = False
Windows("gestion.xls").Activate
Sheets("External").Select
Cells.Select
Selection.ClearContents
Range("A1").Select
Workbooks.Open Filename:="c:\DATABASE\bdd.xls"
Sheets("Base").Select
Cells.Select
Selection.Copy
Windows("gestion.xls").Activate
ActiveSheet.Paste
Range("A1").Select
Windows("bdd.xls").Activate
Application.DisplayAlerts = False
ActiveWindow.Close
Application.ScreenUpdating = True
End Sub
Et si tu veux que la macro s'exécute automatiquement à l'ouverture de gestion.xls, placer ce code dans ThisWorkbookPrivate Sub Workbook_Open()
Importer_BDD
End Sub