[Résolu] Enregistrer un nouveau fichier en gardant le fichier d'origine intact

racoune

XLDnaute Nouveau
Bonjour, Bonsoir ou tout ce qui pourra vous plaire.

Pour ne pas vous enquiquiner trop longtemps, voici donc mon problème:

j'essaye tant bien que mal de créer une copie d'un fichier excel. A savoir que la copie doit comporter un autre nom que le fichier d'origine (en gros le fichier d'origine sert de matrice et il est important de garder la matrice telle quelle).

A savoir: j'ai un fichier (excel) A qui sera rempli par les utilisateurs. Une macro basique permet alors de transférer les info sur un autre fichier excel B (qui correspond au fichier d'origine cité ci-dessus). Une fois ce fichier B rempli avec les données en A, une sauvegarde est effectuée pour créer un dernier fichier C dont le titre dépend de cellules.
Mais le hic c'est que je n'arrive pas à sauvegarder une copie de B pour donner C. Soit B disparait pour devenir C, soit je n'arrive pas à renommer C.

Voici le code utilisé (il se trouve dans le fichier A où sont entrées les informations par les utilisateurs):

Code:
Sub nouveaux_patients()
Dim np As Workbook

Set np = Application.Workbooks.Open("D:\TRAME TOMO.xls", True)
 
  np.Worksheets("plan Ttt").Range("B2") = ThisWorkbook.Worksheets("Feuil1").Range("D4")
  np.Worksheets("plan Ttt").Range("B1") = ThisWorkbook.Worksheets("Feuil1").Range("D5")
  np.Worksheets("plan Ttt").Range("D15") = ThisWorkbook.Worksheets("Feuil1").Range("D6")
  np.Worksheets("plan Ttt").Range("H15") = ThisWorkbook.Worksheets("Feuil1").Range("D7")
  np.Worksheets("plan Ttt").Range("F15") = ThisWorkbook.Worksheets("Feuil1").Range("D8")
  np.Worksheets("plan Ttt").Range("B27") = ThisWorkbook.Worksheets("Feuil1").Range("D9")
 
np.SaveAs "D:\" & Range("D4").Value & "" & Range("D5").Value & ".xls"
' la ligne ci-dessus semble buguée mais je ne comprends pas où
    
' ou nf.Save mais dans ce cas pas de modification du nom du fichier de sortie
 
np.Close
 
End Sub


Merci par avance et toutes mes excuses pour mon manque de connaissances en macro/vba
 
Dernière édition:

TooFatBoy

XLDnaute Barbatruc
Re : Enregistrer un nouveau fichier en gardant le fichier d'origine intact

ok marcel, je comprends mieux ton message à présent mais le problème de ta proposition c'est que la macro ne fonctionnerait que patient par patient alors que je souhaite créer les fichiers pour 1 à 10 colonnes (patient) en même temps en ne cliquant qu'une fois sur un bouton.
C'est pour ça que je demandais comment alimenter la macro : en scannant toute la ligne 5 du tableau ou en mettant une valeur en B13.
 

racoune

XLDnaute Nouveau
Re : Enregistrer un nouveau fichier en gardant le fichier d'origine intact

Effectivement si je ne lis pas tout ton message ça ne va pas le faire.

Hum, grossièrement, mettre une valeur en B13 ne suffirait pas, à moins que la valeur signifie "créer X fichiers" où X=valeur en B13. MAIS ça oblige l'utilisateur à faire une manip supplémentaire (entre le nombre de fichiers à créer) et ça ne donne pas de limite de fichiers à créer où alors il faudrait ajouter une restriction.

Le fait de scanner les cellules pour une ligne correspondrait plus à la demande. En effet, si la cellule est vide, pas de création de fichier pour la colonne et si la cellule est remplie, alors le fichier est créé (même si les informations sont incomplètes pour le reste de la colonne). MAIS le gros problème est que si l'utilisateur remplie toute la colonne exceptée la cellule scannée alors le fichier ne sera pas créé (d'où l'ajout d'une alerte pour demander la confirmation pour réinitialiser le tableau et je pense mettre une alerte pour chaque fichier créé, peut-être)
 

TooFatBoy

XLDnaute Barbatruc
Re : Enregistrer un nouveau fichier en gardant le fichier d'origine intact

Effectivement si je ne lis pas tout ton message ça ne va pas le faire.
En fait c'est de ma faute : tu ne pouvais pas voir que je parlais de scanner le tableau car c'était dans le message où j'ai fait une fausse manip et j'ai dû tout retaper.

Enfin... pas tout à fait "tout" : je viens de voir que j'ai justement oublié de retaper cette partie où je parlais de, soit scanner tout le tableau, soit entrer une valeur en B13.
Désolé.
 
Dernière édition:

TooFatBoy

XLDnaute Barbatruc
Re : Enregistrer un nouveau fichier en gardant le fichier d'origine intact

Je vous place en fichier joint que les utilisateurs devront remplir. Il faudrait un seul bouton pour lancer une macro générale et non un bouton par colonne comme actuellement.
Pardon pour les questions qui vont suivre, mais je ne comprends pas bien la philosophie de la chose.

Si ce sont les utilisateurs qui doivent remplir ce fichier, pourquoi y a-t-il 10 colonnes demandant chacune le nom et le prénom ?
Je suppose que chaque utilisateur ne doit pas pouvoir voir les données des autres...

Pourquoi ne remplissent-ils pas directement le fichier final ?

Es-tu vraiment obligé de créer un fichier par client ?

A quoi va servir ce fichier ? Sera-t-il rechargé plus tard ?

Bref, comment tout ceci doit-il fonctionner globalement au final ?
 

racoune

XLDnaute Nouveau
Re : Enregistrer un nouveau fichier en gardant le fichier d'origine intact

petit curieux va.

Mais pour répondre à ta demande: l'utilisateur dont je parle est celui qui va ouvrir le fichier dit "trame" dans lequel il pourra inscrire les données relatives à 1 jusque 10 clients. En gros, l'utilisateur sera celui qui gère les informations nécessaires à la création des fichiers "client".

La macro en elle-même permettra de gagner quelques précieuses minutes (nous ne rentrerons pas dans les dédales administratifs) puisqu'il n'y aura qu'un fichier à ouvrir (celui dans lequel on entre toutes les info) et non plus X fichiers à créer, remplir puis sauvegarder dans le dossier adéquat. L'utilisateur (en fait il peut y en avoir plusieurs sur le long terme et tous n'ont pas les même compétences informatiques) passera très souvent par le fichier "trame", ce qui le rend très utile voire indispensable.

Chaque "client" doit avoir son propre fichier pour des soucis d'organisation et d'identitovigilance (en fait je travaille dans un milieu médical et non pas commercial).

Donc le but de tout ceci est multiple:
- centraliser les données
- créer des fichiers spécifiques à chaque patient ("client")
- gagner du temps lors de l'utilisation (même aussi minime qu'il puisse être)
- faciliter l'utilisation des fichiers excel

J'espère avoir répondu à ta demande car c'est la moindre des choses pour toute l'aide que tu m'as apporté. Que vous m'avez apporté.

Ceci dit, ma requête est complétée (en mettant de côté l'optimisation qui relève d'un autre soucis). Peut-être pourrais-je mettre en post en résolu?
 

TooFatBoy

XLDnaute Barbatruc
Re : [Résolu] Enregistrer un nouveau fichier en gardant le fichier d'origine intact

De rien. ;)

La propreté du code, on s'en moque un peu, tant que ça fonctionne parfaitement sans erreur et que l'exécution n'est pas trop lente.


Je pensais que tu voulais créer une gestion complète des fiches de patients (enregistrement de la fiche, lecture de la fiche, modification de la fiche, etc.).
Du coup je te trouvais peut-être "mal parti" selon les évolutions que tu envisageais par la suite.
C'est pour ça que je posais ces questions. ;)

Mais si tu as déjà atteint là le but de ton classeur Excel, alors c'est parfait, tu peux mettre en "résolu".
[edit]Je vois, au titre de ce message, qu'en fait tu l'as déjà mis en "résolu".[/edit]


Bonne soirée
 
Dernière édition:

racoune

XLDnaute Nouveau
Re : [Résolu] Enregistrer un nouveau fichier en gardant le fichier d'origine intact

Ah oui mais non (très clair comme phrase).

Il ne s'agit pas de faire une gestion complète mais de faciliter une tâche répétitive et peu intéressante (il faut le dire). Donc je comprends pourquoi tu pensais que ça partait mal.

On a réussi à se comprendre.

Bye mister Marcel
 

Discussions similaires

Statistiques des forums

Discussions
312 316
Messages
2 087 172
Membres
103 490
dernier inscrit
zatougraf