Importer une feuille excel

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 :

'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

  1. Yoda
     
    Salut spouich

    Avec le mode enregistrement de macros et quelques retouches voila ce que ça donne

    Code à placer dans un module de gestion.xls
    Sub 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 ThisWorkbook
    Private Sub Workbook_Open()
    Importer_BDD
    End Sub
    0
    1. spouich
       
      Yeeees ! Parfaitement ce que je recherchais, merci beaucoup.
      Je l'ai adapté à mon appli, ça marche exactement comme je le souhaitais !
      Maintenant, je n'ai plus qu'à le bidouiller pour inverser le transfert quand je souhaite 'exporter' la base de données :)

      Merci beaucoup.
      0