Automatiser des mises à jour de fichiers extérieurs

Résolu/Fermé
Signaler
Messages postés
466
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
15 décembre 2014
-
Messages postés
466
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
15 décembre 2014
-
Bonjour,

Je crée des outils excel en VBA pour mon entreprise et son réseau d'agence.
J'ai crée notamment une base de données personnelle (avec macro/vba) pour chacun des salariés.

Cependant je suis amené régulièrement à modifier certains éléments de la base de données pour la faire évoluer en ajoutant des fonctionnalités.

Du coup les salariés doivent effectuer à chaque mise à jour des copier/coller entre leur base de données et ma base de données mise à jour.


Je voulais donc savoir s'il était possible d'effectuer une mise à jour d'un fichier à un autre en conservant certains éléments pour ne pas les perdre ? Et surtout de manière automatique. Merci !

2 réponses

Messages postés
12257
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
3 septembre 2021
2 667
Regarde ceci :

Sub ImporterDonnees()
Dim Fichier, WbkCopy As Workbook, WbkColle As Workbook
Dim Resultat As Variant

  'On attribue à la variable WbkColle le fichier actuel (celui que tu viens d'envoyer)
  Set WbkColle = ThisWorkbook
  
  'Sélection du fichier
  Fichier = Application.GetOpenFilename("Fichiers Excels, *.xls*")
  'En cas de clic sur "ANNULER"
  If Fichier <> False Then
    'On ouvre le fichier en question (l'ancien fichier)
    Set WbkCopy = Workbooks.Open(Fichier)
      'ICI TU COPIES-COLLES du genre :
    WbkCopy.Sheets("BDD").Range("A3:H45").Copy WbkColle.Sheets("BDD").Range("A3")
    'On ferme l'ancien fichier 
    WbkCopy.Close
  End If
'Spécial bonus : boite de dialogue enregistrer sous :
Fichier = Application.GetSaveAsFilename
ActiveWorkbook.SaveAs Filename:=fichier
Set WbkCopy = Nothing
Set WbkColle = Nothing
End Sub

1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41989 internautes nous ont dit merci ce mois-ci

Messages postés
466
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
15 décembre 2014
336
Wahou génial !
Le bonus est top aussi, je n'y avais pas pensé, mais c'est une excellente idée franchement !

Merci merci merci pijaku !
C'est parfait et parfaitement fonctionnel, je n'aurais qu'à adapter à mon fichier.
Messages postés
12257
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
3 septembre 2021
2 667
Mais de rien.
A+
Messages postés
466
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
15 décembre 2014
336
Une petite question, à quoi sert la variable "Resultat" déclarée au début ?
Je ne la retrouve nul part ailleurs.

Merci !
Messages postés
12257
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
3 septembre 2021
2 667
Parce qu'elle ne sert à rien. Tu peux la virer.
J'ai recopié ce code sur un autre sujet ou elle servait...

De rien!
Messages postés
466
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
15 décembre 2014
336
Ah d'accord je voulais être sûr !
Merci encore et bonne journée !
Messages postés
12257
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
3 septembre 2021
2 667
Bonjour,

Il te suffit d'automatiser les copier-coller sur chaque fichier de chaque employé...

Pour cela, il te suffit d'avoir accès à ces fichiers, d'en faire la liste des chemins d'accès...
Messages postés
466
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
15 décembre 2014
336
Oui alors l'idée de Charles Dupont et de Joceline Cabaret, c'est exactement ça. Le nom du fichier peut ne pas être le même également.

Par contre je pensais plutôt à une inversion de ta deuxième partie.
Les gens vont recevoir le nouveau fichier par mail, ils l'enregistrent où il veulent.
Dans ce nouveaux fichier ce sera plutôt du code VBA qui change, des macros, userform en plus etc...
Donc je pense qu'il vaut mieux aller chercher les données de leur BDD pour les copier dans la nouvelle. Qu'en pense-tu ?

Et surtout suis-je plus clair ? :S
Messages postés
12257
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
3 septembre 2021
2 667
En clair, tu leur envoie un fichier par mail, eux l'enregistre, puis l'ouvre.
Tu souhaites, lors de la première ouverture de ce fichier que celui-ci importe automatiquement la feuille nommée "bdd" de leur ancien fichier.

C'est possible, à condition de connaitre :
- le chemin d'accès à leur fichier (mais comme ils l'enregistrent ou ils veulent, il va falloir qu'ils nous l'indique)
- l'endroit, la ou les feuilles à importer
- l'endroit, la ou les feuilles ou tu veux coller ces données...
Messages postés
466
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
15 décembre 2014
336
Oui voilà c'est exactement ça !
Okay donc en gros je peux faire un système où ils ont juste à indiquer le chemin d'accès du fichier et je peux faire en sorte que le reste se fasse automatiquement non ?

Et est-ce qu'il est possible de faire ça grâce à un système du genre "Parcourir" plutôt qu'avec un Textbox ?

Merci beaucoup pijaku !
Messages postés
12257
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
3 septembre 2021
2 667
est-ce qu'il est possible de faire ça grâce à un système du genre "Parcourir"
C'est bien à cela que je pensais...

Par contre, si tu ne me dis pas :
- l'endroit, la ou les feuilles à importer
- l'endroit, la ou les feuilles ou tu veux coller ces données...
je ne peux pas continuer...
Messages postés
466
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
15 décembre 2014
336
Ah d'accord super !

Oui pardon, les feuilles à importer seront dans l'ancien fichier, elles ont le même nom et si besoin on peut récupérer juste une plage de cellule non ?

Par exemple :
Le fichier BDD V1.xls de Bernard a comme feuille BDD. La plage A3:H45 m'intéresse
Le nouveau fichier BDD V2.xls peut aller chercher dans le fichier BDD V1.xls, la feuille BDD et la plage A3:H45, non ?

Si c'est ça ta demande, je suis capable de le faire.
C'est surtout sur le système "parcourir" où je vais avoir du mal.