Importation exportation fichier Excel vers fichier Excel

Bonjour voila je vous explique mon projet.

J'utilise un fichier excel avec 5 feuilles sur 20 qui servent de base de données

elles se nomment Articles Clients Fournisseurs Transporteurs Nomenclature.

j'ai crée un bouton " Export" qui copie les 5 feuilles vers un fichier .xls qui se nomme SauvegardeBdd.xls

j'aimerais crée un Bouton "IMPORT" qui me permette le protocole inverse

à savoir:

  • ouvrir le fichier SauvergardeBdd.xls
  • Copier les 5 Feuilles
  • Coller les 5 Feuilles dans mon classeur
  • Fermer le classeur SauvegardeBdd.xls

Voici le code j'ai utiliser pour le Bouton EXPORT:

Sub Export_Bureau()

Dim Chemin As String

Application.ScreenUpdating = False
Application.DisplayAlerts = False

Chemin = ThisWorkbook.Path & "\"

With ThisWorkbook
    Worksheets("Articles").Visible = True
    Worksheets("Clients").Visible = True
    Worksheets("Fournisseurs").Visible = True
    Worksheets("Transporteurs").Visible = True
    Worksheets("Nomenclature").Visible = True

    Sheets(Array("Articles", "Clients", "Fournisseurs", "Transporteurs", "Nomenclature")).Copy
End With

With ActiveWorkbook
    For i = 1 To .Sheets.Count
        Sheets(i).Cells.Copy
        Sheets(i).Cells.PasteSpecial Paste:=xlPasteValues
        Application.CutCopyMode = False
        Cells.Validation.Delete
    Next

    .SaveAs (Chemin & "SauvegardeBDD" & ".xls")
    Application.DisplayAlerts = True
    .Save
    .Close
End With

Application.ScreenUpdating = True
Worksheets("Articles").Visible = False
Worksheets("Clients").Visible = False
Worksheets("Fournisseurs").Visible = False
Worksheets("Transporteurs").Visible = False
Worksheets("Nomenclature").Visible = False

End Sub

POur le Bouton IMPORT:

Sub Bouton80_Cliquer()

Application.DisplayAlerts = False
Application.ScreenUpdating = False

Dim titre As String
Dim wbk1 As Workbook
Dim wbk2 As Workbook

Chemin = ("ThisWorkbook.Path" & "\" & "SauvegardeBDD.xls")

Set wbksource = ThisWorkbook
Set wbkbdd = Workbooks.Open(Chemin) ' jouvre le classeur (titre)

With wkbdd
    Sheets(Array("Articles", "Clients", "Fournisseurs", "Transporteurs", "Nomenclature")).Copy
End With

With wbksource
    For i = 1 To .Sheets.Count
        Sheets(i).Cells.PasteSpecial Paste:=xlPasteValues
        Application.CutCopyMode = False
        Cells.Validation.Delete
    Next

    Application.DisplayAlerts = True
    .Save
End With

Application.ScreenUpdating = True
Worksheets("Articles").Visible = False
Worksheets("Clients").Visible = False
Worksheets("Fournisseurs").Visible = False
Worksheets("Transporteurs").Visible = False
Worksheets("Nomenclature").Visible = False
'.Close
End Sub

Pouvez vous m aider à le faire fonctionner et ou pas l 'optimiser , je suis débutant en vba

Merci

bonjour

solution, si tu cherches vraiment à faire des sauvegardes : pas de VBA

chaque jour (ou semaine) tu fais '"enregistrer sous"

et tu tapes

SauvTonfichier20180804

ces fichiers successifs vont rester à où tu les mets (disque externe...)

rangés par date (voir comment taper une date ci-dessus)

dans 15 ans tu retrouves tout (je retrouve depuis 1997 ! date de mon premier vrai PC)

de temps en temps, tu en détruis pour faire de la place

en cas de plantage de l'original, tu copies/colles au clavier et à la souris les 5 onglets (évènement très rare, tu peux te permettre de passer 4 minutes ! )

si ce n'est pas pour une sauvegarde, alors il semble qu'il faut revoir la gestion des données.

ton avis ?

alors il ne s agit pas de sauvegarde fréquente mais temporaire et le fichier pourrais Etre utiliser par plusieurs personnes

L'option EXPORT IMPORT est faite pour permettre aux utilisateurs de recharger le base de donnees en cas de modification du fichier ( correction de bug , MAJ etc )

Vu que le fichier utilise les infos dans les feuilles pour etre utiliser mais que ces infos peuvent changer en fonction des utilisateurs

je souhaiterais leur donner la possibilité de sauvegarder leur base de travail et de la recharger au cas ou .

Les devis bon de commande etc sont sauvegardés autrement.

Il s agit juste des BDD que j ai besoin de pouvoir changer à ma guise en 1 clic, exemple si je n ai pas de BDD, je peux l importer .....etc

J 'ai vraiment besoin qu'un bouton exporte et l autre importe uniquement ces 5 feuilles

De plus, il pourrait s agir de 50 utilisateurs de BDD différentes donc 50 x 4 minutes

Mais merci pour ton idéé

Bonjour,

Le code n'est pas nécessairement le meilleur.

Mais il fonctionne.

Voir si ça convient...

ric

Super je cherchais qqch de fonctionel pas forcement optimiser au niveau Code

Merci pour ton aide

Par contre l 'import des feuilles se fait mais il lance un debogage pour :

For Each Sh In ThisWorkbook.Worksheets
    Sh.Select
    Sh.Range("A1").Select
Next Sh

Sinon impeccable Merci

alors il ne s agit pas de sauvegarde fréquente mais temporaire et le fichier pourrais Etre utiliser par plusieurs personnes

L'option EXPORT IMPORT est faite pour permettre aux utilisateurs de recharger le base de donnees en cas de modification du fichier ( correction de bug , MAJ etc )

Vu que le fichier utilise les infos dans les feuilles pour etre utiliser mais que ces infos peuvent changer en fonction des utilisateurs

je souhaiterais leur donner la possibilité de sauvegarder leur base de travail et de la recharger au cas ou .

Les devis bon de commande etc sont sauvegardés autrement.

Il s agit juste des BDD que j ai besoin de pouvoir changer à ma guise en 1 clic, exemple si je n ai pas de BDD, je peux l importer .....etc

J 'ai vraiment besoin qu'un bouton exporte et l autre importe uniquement ces 5 feuilles

De plus, il pourrait s agir de 50 utilisateurs de BDD différentes donc 50 x 4 minutes

Mais merci pour ton idéé

rebonjour

1/

50 utilisateurs ?

et 50 BDD différentes ?

jamais je ne me risquerais à développer une telle appli sous Excel.

quel est le BUT de cette appli ?

2/

tu parles de bons de commandes, c'est donc une gestion commerciale

pour 2 ou 3 personnes, c'est déjà très difficile de le faire sous Excel.

as-tu envisagé un progiciel ?

2bis/

tu veilles à séparer les données du fichier programme, c'est une excellente idée. C'est ce qui est conseillé pour Access par exemple. Sauf qu'Excel ne fonctionne pas bien du tout dans cette configuration. Excel mélange les données et le programme, c'est un avantage pour développer de petites appli (maximum 3 ou 4 tables en saisie et quelques utilisateurs)

Tu dois alors faire des machins difficiles et risqués avec VBA.

Courage.

3/

d'un clic on peut récupérer les données d'hier et écraser les données du jour : alors il faut prévoir un message d'alerte et de confirmation

bon travail

amitiés

J 'ai pris connaissance de ton message pour te répondre clairement il s agit d 'un programme d'apprentissage pour des magasiniers dans différents departements.

il crée des devis des bon de commande etc pour que les apprenants apprennent le protocole de gestion de commande en logistique.

la base de donnée articles contient 500 articles fournisseurs 10 transporteurs 5 clients 20 et la nomenclature permet détablir les reférences des articles.

mon problème est que chaque centre à son magasin ecole simulé donc des articles des fournisseurs des clients différents mais le fonctionnement reste le même .

du coup, je me voyait mal crée un fichier par centre mais plutot importer et exporter les BDD .

le programme est pas lourd moins d'1 Mo mais j'essaie de me faciliter le travail si je fais des corrections dans le VBA ou autre .

Cordialement

et merci pour tes conseils

Je remets un message parce que la méthode qui m'a été proposer fonctionne mais ajoute une erreur dans le fonctionnement de mon programme car j 'ai crée des liste de données pour utiliser les valeurs présentes dans les feuilles l'option IMPORT ouvre le classeur sauvegardebdd copie les feuilles mais en feuille supplémentaire puis il supprime les 5 feuilles et renomme les nouvelles comme les précédentes ce qui annule les formules que j 'ai crée ....

serait il possible que les feuilles soit copier / coller d'un classeur à un autre sans modifier la structure ?

re

si c'est pour de la formation, inutile de sauvegarder. Ni les données, ni le programme.

ceci dit, ton programme, le vrai sera sous Excel ? ce sera le même ?

j'espère que non. Excel n'est pas du tout équipé pour ça.

dès lors pourquoi ne pas apprendre directement le vrai progiciel ?

amitiés

Bonjour ocidius, bonjour le forum,

Voici une version qui ne copie que les données sans toucher aux feuilles.

Voir si ça convient.

ric

16sources-2.xlsm (35.93 Ko)

merci RIC

Rechercher des sujets similaires à "importation exportation fichier"