Pb mise à jour de fichier mais sans écraser....

lolo57

XLDnaute Occasionnel
Bonsoir, j'ai le problème suivant:
-Je vien de créer un fichier avec des données ( ex; noms, prenoms...)
et si un jour je veux rajouter une macro ou quelques choses du genre sur une copie du fichier comment ajouter la macros sans éfacer mes données du classeur.


Jespère avoir été assé explicite sinon dites moi le je meteré une piece jointe ;)



Bonne soirée


Laurent
 
B

Bricofire

Guest
Bonsoir lolo57, :)

Dans le principe, c'est assez simple, je l'ai fait pour une appli qui est évolutive (futur Barbatruc ;) ), mais bien trop grosse pour tenir en zip50... Tu pars sur ta nouvelle version d'une coquille vide sans les données que tu vas prendre dans l'ancienne version.

Je te donne une piste avec un extrait du code de la routine qui fait la chose, ça dépend de la structure de ton classeur sinon (nb de feuilles, feuilles masquées, protections etc...).
Le principe est que le fichier s'appelle par exemple 'DVD Maison - 5.12', tu y ajoutes des fonctionnalités sup avec du code et tu veux permettre que tout à chacun puisse upgrader, tu fournit la nouvelle mouture (5.13 par exemple) équipée d'un bouton de maj. Si on clique, il demande le N° de l'ancienne version à upgrader, via un input box, (ici 5.12) qui est censée être dans le répertoire que tu as désigné comme à conserver.(sinon=filtre)

Le résultat de l'inputbox concaténé au nom du chemin est dans la variable NomClass2.
Ta routine ouvre donc ce classeur, Active la feuille Films (supposée seule ici), se place en tête des données à récupérer, les copies et les colles dans la feuille vierge du nouveau classeur(5.13 = NomVer ici). Ensuite on referme l'ancien classeur (qu'on pourrait supprimer) sans modifs et on sauve le nouveau !



Workbooks.Open Filename:=NomClass2
Worksheets('Films').Activate
Range('A5').Select
ActiveCell.CurrentRegion.Copy _
Destination:=Workbooks('DVD Maison - ' & NomVer).Sheets('Films').Range('A5')
Workbooks(Nomfic).Close SaveChanges:=False
Workbooks('DVD Maison - ' & NomVer).Activate
Workbooks('DVD Maison - '& Nomver).Save
End Sub



Donc de base comme vu précédemment, c'est simple, la complexité vient ensuite, pour que ce soit fiable d'imposer une structure à conserver et de prévoir des filtres et traitement d'erreur selon les manips à pb imaginables...(fichier absent, mal renommé etc...)

Ca c'est pour les cas ou tu veux que quelqu'un complètement béotien puisse le faire en auto, sinon si c'est des manip privées à toi , ben avec des copier-coller des routines vba, ça marche ;)

Bonne nuit,

Bfr
 

Discussions similaires

Statistiques des forums

Discussions
312 228
Messages
2 086 421
Membres
103 205
dernier inscrit
zch