renomer mon fichier excel a l ouverture par deux cellule - VB/VBA/VBS - Programmation
Marsh Posté le 19-12-2014 à 09:26:02
Je doute que ça soit possible avec "l'architecture" que tu proposes : comment veux-tu qu'un fichier ouvert puisse changer de nom ? L'OS va refuser vu que le fichier est déjà en cours d'utilisation.
Par contre, tu peux faire qu'à l'ouverture de ton fichier Excel, son contenu soit copié dans un nouveau fichier Excel portant le nom que tu veux, auquel t'ajouteras une petite macro qui sera exécutée une fois le "transfert" terminé qui fermera le fichier original et le supprimera.
Marsh Posté le 19-12-2014 à 14:21:17
bonjour
merci de votre réponse
mais je me suis mal explique
a l ouverture du fichier il y a un userform qui apparaît et la les personne devront rentrée le nouveau nom du fichier qui une fois valide le nom ira se mettre dans la cellule B1 et dans A1 il y a un code qui mes d'office la date du jour donc le fichier lui et déjà ouvert depuis quelque secondes donc peut être que la ont pourra le faire
sinon pouvez vous me donner le code pour faire a votre magniere
merci de votre aide
Marsh Posté le 19-12-2014 à 14:26:01
Merci de faire un effort pour vous exprimer d'une manière plus intelligible
Par ailleurs, ici, on ne donne pas une solution toute faite. L'auteur d'un topic poste son code, dit où ça coince et on l'aide. Mais pas de solution clé en main
Marsh Posté le 19-12-2014 à 16:30:51
rebonjour
je suis sur se code depuis plusieurs jours mais la je ne comprend pas pourquoi cela ne marche pas donc j avais decider de passer a autre chose
se que je vous ais parle avant
mais je prefererais garder se code que voici
Sub trouverlechemindufichier()
On Error Resume Next
' trouverlechemindufichier Macro
Dim Chemin As String, Fichier As String
Dim Nom As String
'Dim Filename As String
Nom = Day(Date) & "-" & Month(Date) & "-" & Year(Date) & "_" & ActiveWorkbook.Name 'Cet exemple montre comment afficher le nom du classeur actif.
''Nom = "NomClasseur_" & Format(Date, "yyyymmdd" ) & "_" & Format(Time, "hhmmss" ) & ".xls"
Chemin = ThisWorkbook.Path 'code pour enregister fichier avec B1
Fichier = Chemin & "\" & Range("B1" ) & ".xltm" 'code pour enregister fichier avec B1
ActiveWorkbook.SaveAs Filename:=Fichier 'code pour enregister fichier avec B1
'ActiveWorkbook.SaveCopyAs ActiveWorkbook.Path & "\" & Nom
' rep = MsgBox("Votre base de données est sauvegardée sous le nom : " & Nom, vbYes + vbInformation, "Copie sauvegarde classeur" )
Filename = Fichier
'code pour envoyer le fichier filename en C:\Users\etc
ActiveWorkbook.SaveAs Filename:= _
"C:\Users\A03GEN-10097\fiches de controle\Filename.xltm", FileFormat:= _
xlOpenXMLTemplateMacroEnabled, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False ' createBackup pour enregistrer une copie du classeur actif si true
End Sub
le probleme c est qu ils enregistre bien le ou je veut mais pas 1 fichier avec la date mais 3 fichiers 1 exemple date du jour +Filename le 2 fichier exmple la reference en B1 de la feuille active et le 3 eme Filename mes moi je voudrais date du jour+reference B1
pouriez vous m aider je suis vraiment perdu
merci
Marsh Posté le 19-12-2014 à 17:08:39
Franchement, c'est vraiment pas facile de comprendre ce que vous écrivez
Marsh Posté le 20-12-2014 à 10:43:34
Bonjour
Je m’excuse mes pour moi qui le projet c était simple de le comprendre
Donc je vais vous expliquer le fonctionnement de a a z
En 1) le fichier s’ouvre nome fichier1 aussi tot l ouverture un userform s ouvre
2)il faut remplir un textbox d une référence et des optionbutton pour dire d aller mettre cette référence dans les formulaire choisi ensuite ont valide par un bouton
3)la référence e doit aussi se mettre dans la cellule B1 de ma feuille MENU
4) j ais oublie que des l ouverture du fichier en A1 Feuille Menu la date du jour se mes automatiquement
5) ont remplie les formulaire choisi
6) une fois remplis ont reviens sur la feuille menu
7 ) ont click sur un bouton enregistrement et c est la que le code suivant doit enregistrer dans un premier temps le fichier avec un nouveau nom qui se trouve en A1 c est la date du jour et
B1 qui est la référence voici un exemple : 20-12-2014-IS 15425 MA
8) Je veux quand premier il se renommé comme l exemple
9 )Et en deuxieme qu il mon premier chemin que j ais choisi et ensuite celons l année dans la date il ouvrent un des sous dossier qu’ ils comporte comme nom 2014 2015 2016 2017 2018 2019 2020 etc.…
Et dans chaque sous dossier ils y a des sous sous dossier avec comme reference 0 a 10000, 10001 a 15000, 15001 a 20000 , 20001 a 25000 , 25001 a 30000 etc….
10) Donc la il devrait choisire le sous dossier 2014 et ensuite celon les 5 chiffres de la reference dans le nom 15425 qu il ouvre le sous sous dossier dont la reference est comprise donc le 15001 a 20000
11) Et ensuite fermer le fichier
Donc voici mon premer probleme
Quand je click sur enregistrement il va bien s enregistrer dans mon premier chemin "C:\Users\A03GEN-10097\fiches de contrôle
Donc c etais ma premiere etape mais déjà la il m enregistre 3 fichiers le premier renome 20-12-2014 Filename , le deuxieme Filename et le troixieme IS 15425 MA
Mais mois je veux 1 seule fichier renome 20-12-2014-IS 15425 MA.xlsm e en suite qu il suive les instruction 9) et 10) et 11)
J espere etre un peut plus claire
Revoici le code pour déjà regler le probleme des 3 fichier en 1 seule
Sub trouverlechemindufichier()
On Error Resume Next
' trouverlechemindufichier Macro
Dim Chemin As String, Fichier As String
Dim Nom As String
'Dim Filename As String
Nom = Day(Date) & "-" & Month(Date) & "-" & Year(Date) & "_" & ActiveWorkbook.Name 'Cet exemple montre comment afficher le nom du classeur actif.
''Nom = "NomClasseur_" & Format(Date, "yyyymmdd" ) & "_" & Format(Time, "hhmmss" ) & ".xls"
Chemin = ThisWorkbook.Path 'code pour enregister fichier avec B1
Fichier = Chemin & "\" & Range("B1" ) & ".xltm" 'code pour enregister fichier avec B1
ActiveWorkbook.SaveAs Filename:=Fichier 'code pour enregister fichier avec B1
'ActiveWorkbook.SaveCopyAs ActiveWorkbook.Path & "\" & Nom
' rep = MsgBox("Votre base de données est sauvegardée sous le nom : " & Nom, vbYes + vbInformation, "Copie sauvegarde classeur" )
Filename = Fichier
'code pour envoyer le fichier filename en C:\Users\etc
ActiveWorkbook.SaveAs Filename:= _
"C:\Users\A03GEN-10097\fiches de controle\Filename.xltm", FileFormat:= _
xlOpenXMLTemplateMacroEnabled, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False ' createBackup pour enregistrer une copie du classeur actif si true
End Sub
Merci de votre aide
Marsh Posté le 24-12-2014 à 13:17:11
Rassure-moi : le français n'est pas ta langue natal, right
Marsh Posté le 18-12-2014 à 17:53:36
bonjour
voici mon premier probleme
je voudrais qu a l ouverture de mon fichier excel
le fichier soit renomer par en premier la date du jour qui se trouve en A1 de la feuille active
et ensuite par une reference que l ont rentre au debut par un textbox qui se trouve sur userform
et qui envoie la reference dans la cellule B1 de la feuille active
le nouveau nom devrai resemble a cette exemple 18-12-2014-IS 15250 MA
je vous expliquerais mon deuxieme probleme
plus tard
merci a lavance de votre reponse