Automatiser des mises à jour de fichiers extérieurs

Résolu/Fermé
Kusco Messages postés 466 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 15 décembre 2014 - 11 déc. 2013 à 17:22
Kusco Messages postés 466 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 15 décembre 2014 - 13 déc. 2013 à 14:05
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 !

A voir également:

2 réponses

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 745
12 déc. 2013 à 11:50
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
Kusco Messages postés 466 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 15 décembre 2014 336
12 déc. 2013 à 12:08
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.
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 745
12 déc. 2013 à 12:17
Mais de rien.
A+
0
Kusco Messages postés 466 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 15 décembre 2014 336
13 déc. 2013 à 13:49
Une petite question, à quoi sert la variable "Resultat" déclarée au début ?
Je ne la retrouve nul part ailleurs.

Merci !
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 745
13 déc. 2013 à 14:02
Parce qu'elle ne sert à rien. Tu peux la virer.
J'ai recopié ce code sur un autre sujet ou elle servait...

De rien!
0
Kusco Messages postés 466 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 15 décembre 2014 336
13 déc. 2013 à 14:05
Ah d'accord je voulais être sûr !
Merci encore et bonne journée !
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 745
12 déc. 2013 à 10:20
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...
0
Kusco Messages postés 466 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 15 décembre 2014 336
12 déc. 2013 à 10:26
Bonjour pijaku,

Merci d'être encore là pour me venir en aide !
C'est à dire concrètement ?
Car je vais envoyer le nouveau fichier sur le réseau donc chacun le récupérera.

Après par exemple il faudrait que je crée un bouton mise à jour qui va me demander le chemin de l'ancien fichier. Et que cela effectue les copier-coller sur chaque page. C'est bien cela ?
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 745
12 déc. 2013 à 10:37
C'est à toi à être + clair là...

Chaque employé à un fichier, situé à un emplacement précis, selon l'employé.
Par exemple :
- Charles Dupont à son fichier bdd.xlsx dans le répertoire :
F:\Widows\Utilisateurs\charles.dupont\Travail\Fichiers Excel\bdd.xlsx
- Joceline Cabaret à son fichier bdd.xlsx dans le répertoire :
F:\Widows\Utilisateurs\joceline.cabaret\Mes documents\Travail\Macros\Perso\Excel\bdd.xlsx
etc...

Et toi, tu as ton document à toi, que tu mets à jour et dont, par exemple, lors de la mise à jour du 12/12/2013, tu souhaites envoyer à tous tes collaborateurs le contenu de la cellule Feuil3 B35, dans chaque fichier, à la cellule Feuil52 G67.

C'est bien ça?
0
Kusco Messages postés 466 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 15 décembre 2014 336
12 déc. 2013 à 10:42
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
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 745
12 déc. 2013 à 10:47
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...
0
Kusco Messages postés 466 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 15 décembre 2014 336
12 déc. 2013 à 10:56
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 !
0