Changer nom de feuille à nom variable...
Résolu/Fermé
GermPeru
Messages postés
172
Date d'inscription
mercredi 7 décembre 2016
Statut
Membre
Dernière intervention
27 mars 2018
-
7 déc. 2016 à 23:00
GermPeru Messages postés 172 Date d'inscription mercredi 7 décembre 2016 Statut Membre Dernière intervention 27 mars 2018 - 4 janv. 2017 à 22:41
GermPeru Messages postés 172 Date d'inscription mercredi 7 décembre 2016 Statut Membre Dernière intervention 27 mars 2018 - 4 janv. 2017 à 22:41
A voir également:
- Changer nom de feuille à nom variable...
- Changer dns - Guide
- Trouver un numéro de portable avec un nom ✓ - Forum Mobile
- Trouver une adresse avec un nom de famille gratuit ✓ - Forum Mobile
- Changer nom iphone - Guide
- Téléchargez cette image pour trouver le nom du fichier. il correspond au nom de cette loutre. comment s'appelle-t-elle ? - Forum Windows
4 réponses
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 710
8 déc. 2016 à 09:04
8 déc. 2016 à 09:04
Bonjour,
à nom variable m'empêche d'exécuter ma procédure
Ben non, au debut de cette procedure cherchez le nom de la feuille.
à nom variable m'empêche d'exécuter ma procédure
Ben non, au debut de cette procedure cherchez le nom de la feuille.
Utilisateur anonyme
8 déc. 2016 à 09:10
8 déc. 2016 à 09:10
Bonjour GermPeru, bonjour le forum,
Je te laisse lire mon message #1 ; si ma réponse te convient, n'oublies
pas de revenir sur ce sujet, en haut de page, pour cliquer sur le lien
« Marquer comme résolu ». Et à l'avenir, évite de créer plus d'un sujet
pour le même problème !
Cordialement. :)
Je te laisse lire mon message #1 ; si ma réponse te convient, n'oublies
pas de revenir sur ce sujet, en haut de page, pour cliquer sur le lien
« Marquer comme résolu ». Et à l'avenir, évite de créer plus d'un sujet
pour le même problème !
Cordialement. :)
GermPeru
Messages postés
172
Date d'inscription
mercredi 7 décembre 2016
Statut
Membre
Dernière intervention
27 mars 2018
Modifié par GermPeru le 3/01/2017 à 22:44
Modifié par GermPeru le 3/01/2017 à 22:44
Merci de votre réponse cela m´aider a comprendre le fonctionnement de nom des feuilles.
J´avais publier deux fois le meme probleme pcq je návais pas créer de comptee et que je ne savais pas trop comment faire.
J´avais publier deux fois le meme probleme pcq je návais pas créer de comptee et que je ne savais pas trop comment faire.
GermPeru
Messages postés
172
Date d'inscription
mercredi 7 décembre 2016
Statut
Membre
Dernière intervention
27 mars 2018
3 janv. 2017 à 22:11
3 janv. 2017 à 22:11
Bonjour a tous et merci de vos conseils,
Voila ou jén suis avec mon code, en faite je colle mes données extraite dans un nouveu fichier et depuis ce fichier j enregistre.
Mes blocages sont les suivant:
-je n´arrive pas a mettre un mot de passe sur le nouveau fichier créé, j´ai essayé de différentes maniéres mais rien ne se passe, le fichier se créé mais pas de mdp
-jáimerais lorsque je lance ma maccro enregistrer mon nouveau fichier, jusque la cela fonctionne, mais aussi ouvrir le fichier originel "guardarcomo", mais rien ne se passe
Je vous indique le code.
Sub Guardar()
Dim wb As Workbook
Dim Chemin As String
Chemin = "C:\Users\user\Desktop\lotes\"
'on cree et on renomme un nouveau classeur'
ActiveWorkbook.SaveAs Filename:=Chemin & Worksheets("Hoja1").[F2].Value & " " & Worksheets("Hoja1").[D2] & " " & Format(Date, "yyyy-mm-dd") & ".xlsm"
'mdp
ActiveWorkbook.Protect Password:="Dispensacion"
'ouverture du fichier originel
Set wb = Workbooks.Open("C:\Users\user\Desktop\guardarcomo.xlsm")
'fermeture du fichier
ActiveWorkbook.Close
End Sub
Merci d´avance,
Germain
Voila ou jén suis avec mon code, en faite je colle mes données extraite dans un nouveu fichier et depuis ce fichier j enregistre.
Mes blocages sont les suivant:
-je n´arrive pas a mettre un mot de passe sur le nouveau fichier créé, j´ai essayé de différentes maniéres mais rien ne se passe, le fichier se créé mais pas de mdp
-jáimerais lorsque je lance ma maccro enregistrer mon nouveau fichier, jusque la cela fonctionne, mais aussi ouvrir le fichier originel "guardarcomo", mais rien ne se passe
Je vous indique le code.
Sub Guardar()
Dim wb As Workbook
Dim Chemin As String
Chemin = "C:\Users\user\Desktop\lotes\"
'on cree et on renomme un nouveau classeur'
ActiveWorkbook.SaveAs Filename:=Chemin & Worksheets("Hoja1").[F2].Value & " " & Worksheets("Hoja1").[D2] & " " & Format(Date, "yyyy-mm-dd") & ".xlsm"
'mdp
ActiveWorkbook.Protect Password:="Dispensacion"
'ouverture du fichier originel
Set wb = Workbooks.Open("C:\Users\user\Desktop\guardarcomo.xlsm")
'fermeture du fichier
ActiveWorkbook.Close
End Sub
Merci d´avance,
Germain
GermPeru
Messages postés
172
Date d'inscription
mercredi 7 décembre 2016
Statut
Membre
Dernière intervention
27 mars 2018
>
Utilisateur anonyme
4 janv. 2017 à 14:02
4 janv. 2017 à 14:02
Bonjour et merci Albank,
J´avais essayé cette posibilité mais cela ne fonctionne pas. L'application excel reste ouverte mais se n´ouvre pas le document "guardarcomo".
Et de plus savez vous pourquoi le document enregistré ne comporte pas de mot de passe?
Cordialement
J´avais essayé cette posibilité mais cela ne fonctionne pas. L'application excel reste ouverte mais se n´ouvre pas le document "guardarcomo".
Et de plus savez vous pourquoi le document enregistré ne comporte pas de mot de passe?
Cordialement
Utilisateur anonyme
>
GermPeru
Messages postés
172
Date d'inscription
mercredi 7 décembre 2016
Statut
Membre
Dernière intervention
27 mars 2018
4 janv. 2017 à 14:56
4 janv. 2017 à 14:56
Je te propose ce code VBA :
Option Explicit Sub Guardar() Dim Chemin As String, NF As String: Chemin = "C:\Users\user\Desktop\lotes\" With Worksheets("Hoja1") NF = .[F2] & " " & .[D2] & " " & Format(Date, "yyyy-mm-dd") & ".xlsm" End With ' on sauvegarde le classeur actuel sous un autre nom ActiveWorkbook.SaveAs Chemin & NF, 52, "Dispensacion" ' attention : ce classeur est resté ouvert ; si on le ferme, la macro ' actuelle s'arrêtera (il me semble bien, je te laisse le vérifier). ' ouverture du fichier originel Workbooks.Open "C:\Users\user\Desktop\guardarcomo.xlsm" ' le 1er classeur (sauvegardé sous un autre nom) est resté ouvert, ' donc tu as maintenant 2 classeurs ouverts. ' fermeture du classeur actuel ActiveWorkbook.Close End Sub
À te lire pour avoir ton avis, albkan. Cordialement. :)
GermPeru
Messages postés
172
Date d'inscription
mercredi 7 décembre 2016
Statut
Membre
Dernière intervention
27 mars 2018
>
Utilisateur anonyme
4 janv. 2017 à 15:24
4 janv. 2017 à 15:24
Merci de ta reponse,
Du coup j´ai plein de question:
-un classeur est ouvert mais c´est le nouveau classeur créé, je pense pcq cela reste l´activeWorkbook
-maintenant il y a un mot de passe pour l´ouverture de ce fichier, GENIAL mais a quel moment dans le code tu définis le mdp ?
- pourquoi en début de code tu définis option explicit?
-pourquoi tu définis NF a quoi te sers cette variable?
Merci :)
Du coup j´ai plein de question:
-un classeur est ouvert mais c´est le nouveau classeur créé, je pense pcq cela reste l´activeWorkbook
-maintenant il y a un mot de passe pour l´ouverture de ce fichier, GENIAL mais a quel moment dans le code tu définis le mdp ?
- pourquoi en début de code tu définis option explicit?
-pourquoi tu définis NF a quoi te sers cette variable?
Merci :)
Utilisateur anonyme
>
GermPeru
Messages postés
172
Date d'inscription
mercredi 7 décembre 2016
Statut
Membre
Dernière intervention
27 mars 2018
Modifié par albkan le 4/01/2017 à 16:43
Modifié par albkan le 4/01/2017 à 16:43
Quand on ouvre un fichier, il apparaît dans la fenêtre active,
et ce fichier devient alors le classeur actif : ActiveWorkbook
-----------------------------------------------------
NF est une variable de type String ; c'est donc une chaîne de caractères.
Je l'ai appelée ainsi pour : « Nom Fichier » ; ensuite, je l'ai bien affectée
avec ton nom de fichier :
.[F2] & " " & .[D2] & " " & Format(Date, "yyyy-mm-dd") & ".xlsm"
Si tu lances toujours cette macro depuis ta feuille "Hoja1", tu peux remplacer
With Worksheets("Hoja1") NF = .[F2] & " " & .[D2] & " " & Format(Date, "yyyy-mm-dd") & ".xlsm" End With
par :
NF = [F2] & " " & [D2] & " " & Format(Date, "yyyy-mm-dd") & ".xlsm"
Attention : il n'y a plus de point devant [F2] et [D2] !
Même si NF est utilisé une fois seulement, je préfère le faire ainsi pour
la lisibilité du code : l'instruction SaveAs devient bien plus claire !
Autre option : se passer de NF et utiliser le caractère de continuation
de ligne « _ », mais je préfère la 1ère façon ; à toi de choisir ! ;)
-----------------------------------------------------
Voici l'instruction qui sauvegarde le classeur sous un autre nom :
SaveAs nom_du_classeur, format_du_fichier, mot_de_passe
nom_du_classeur : Chemin & NF ; comme ton Chemin se termine par « \ »,
c'est OK ; sinon, il aurait fallu mettre : Chemin & "\" & NF
format_du_fichier : 52 correspond à ce format de fichier (avec macros) :
xlOpenXMLWorkbookMacroEnabled
mot_de_passe : c'est ici qu'il faut mettre ton mot de passe, celui que
tu veux pour le classeur que tu enregistres sous un autre nom.
-----------------------------------------------------
Si on met « Option Explicit », il doit obligatoirement être au début du Module.
Quand on le met, ça oblige le programmeur à déclarer toutes les variables
et constantes utilisées. Ainsi, lors de la compilation du programme, ça va
s'arrêter sur une erreur si une variable ou constante n'a pas été déclarée.
Idem si on appelle une function ou une sub dont le nom est inexistant.
Souvent, c'est un nom mal orthographié qui cause l'erreur ; rappel :
Une variable déclarée, mais sans type associé a le type Variant.
-----------------------------------------------------
Dans mon code VBA, après les avoir lus, tu peux bien sûr
supprimer tous les commentaires qui te sont inutiles.
-----------------------------------------------------
Merci de répondre à ce message, ainsi qu'à celui-ci. :)
Utilisateur anonyme
4 janv. 2017 à 19:32
4 janv. 2017 à 19:32
Réponse à ton message #11.
----------------------------------------
Voici quels sont tes 2 fichiers :
Tu as le fichier guardarcomo.xlsm ; pour simplifier, on va appeler
ton 2ème fichier : Fichier2.xlsm ; c'est celui dont le nom est créé
avec [F2] et [D2] (variable NF).
----------------------------------------
Chronologie des diverses étapes :
Au départ, tu as ouvert le fichier guardarcomo.xlsm ; c'est donc
le classeur actif, qui apparaît dans la fenêtre active.
Puis la macro enregistre ce fichier sous un autre nom (nom NF),
avec l'instruction SaveAs (qui aussi lui met ton mot de passe).
Le fichier qui vient d'être sauvegardé, donc Fichier2.xlsm
devient alors le classeur actif.
Donc avec l'instruction ActiveWorkbook.Close
c'est bien Fichier2.xlsm qui est fermé et pas
guardarcomo.xlsm
Après fermeture de Fichier2.xlsm c'est ton dernier fichier ouvert
qui devient actif, en l'occurence : guardarcomo.xlsm
----------------------------------------
Si tu ne ferme pas Fichier2.xlsm et que tu veux retourner sur
ton classeur originel : Workbooks("guardarcomo").Select
----------------------------------------
rappel : mon pseudo s'écrit albkan, pas Albank ;)
----------------------------------------
Voici quels sont tes 2 fichiers :
Tu as le fichier guardarcomo.xlsm ; pour simplifier, on va appeler
ton 2ème fichier : Fichier2.xlsm ; c'est celui dont le nom est créé
avec [F2] et [D2] (variable NF).
----------------------------------------
Chronologie des diverses étapes :
Au départ, tu as ouvert le fichier guardarcomo.xlsm ; c'est donc
le classeur actif, qui apparaît dans la fenêtre active.
Puis la macro enregistre ce fichier sous un autre nom (nom NF),
avec l'instruction SaveAs (qui aussi lui met ton mot de passe).
Le fichier qui vient d'être sauvegardé, donc Fichier2.xlsm
devient alors le classeur actif.
Donc avec l'instruction ActiveWorkbook.Close
c'est bien Fichier2.xlsm qui est fermé et pas
guardarcomo.xlsm
Après fermeture de Fichier2.xlsm c'est ton dernier fichier ouvert
qui devient actif, en l'occurence : guardarcomo.xlsm
----------------------------------------
Si tu ne ferme pas Fichier2.xlsm et que tu veux retourner sur
ton classeur originel : Workbooks("guardarcomo").Select
----------------------------------------
rappel : mon pseudo s'écrit albkan, pas Albank ;)
GermPeru
Messages postés
172
Date d'inscription
mercredi 7 décembre 2016
Statut
Membre
Dernière intervention
27 mars 2018
4 janv. 2017 à 20:19
4 janv. 2017 à 20:19
Dsl pour m´etre trompé sur ton pseudo...
Je ne suis pas tout a fait dáccord sur la chronologie, le fait est que dans le code:
Ce qui fait que le classeur actif est guardarcomo... et donc celui qui se ferme
J'ai donc essayé de rendre le classeur actif celui créé:
Mais cela ne marche pas...
Merci albkan :)
Je ne suis pas tout a fait dáccord sur la chronologie, le fait est que dans le code:
Sub Guardar() .... ' ouverture du fichier originel Workbooks.Open "C:\Users\user\Desktop\guardarcomo.xlsm" ' fermeture du classeur actuel ActiveWorkbook.Close End Sub
Ce qui fait que le classeur actif est guardarcomo... et donc celui qui se ferme
J'ai donc essayé de rendre le classeur actif celui créé:
Workbooks(Chemin & NF).Select
Mais cela ne marche pas...
Merci albkan :)
Utilisateur anonyme
>
GermPeru
Messages postés
172
Date d'inscription
mercredi 7 décembre 2016
Statut
Membre
Dernière intervention
27 mars 2018
4 janv. 2017 à 22:24
4 janv. 2017 à 22:24
Oui, tu as tout à fait raison ; désolé : je me suis trompé !
En effet, après l'instruction ActiveWorkbook.SaveAs ...
le fichier originel guardarcomo.xlsm n'est plus ouvert.
Je te propose donc ce nouveau code VBA :
Option Explicit ' Cette macro est normalement dans le classeur guardarcomo.xlsm ; donc quand ' tu lances l'exécution, c'est guardarcomo.xlsm qui est le classeur actif. Sub Guardar() Dim Chemin As String, NF As String: Chemin = "C:\Users\user\Desktop\lotes\" With Worksheets("Hoja1") NF = .[F2] & " " & .[D2] & " " & Format(Date, "yyyy-mm-dd") & ".xlsm" End With ' On sauvegarde le classeur actif guardarcomo.xlsm sous le nom NF, ' et suite à cela, le seul classeur ouvert est NF. ActiveWorkbook.SaveAs Chemin & NF, 52, "Dispensacion" ' NF est donc le seul classeur ouvert, et c'est le classeur actif. ' AVANT de le refermer, on ouvre guardarcomo.xlsm Workbooks.Open "guardarcomo.xlsm" ' Tu as donc maintenant tes 2 fichiers ouverts en même temps : ' NF et guardarcomo.xlsm ; et c'est ce dernier qui est actif. ' Comme guardarcomo est actif, le plus simple pour fermer NF est : Workbooks(NF).Close End Sub
Dis-moi ce que tu en penses, et si ça te convient. :)
GermPeru
Messages postés
172
Date d'inscription
mercredi 7 décembre 2016
Statut
Membre
Dernière intervention
27 mars 2018
>
Utilisateur anonyme
Modifié par GermPeru le 4/01/2017 à 22:44
Modifié par GermPeru le 4/01/2017 à 22:44
C´est que je suis tres concentré sur les conseils que l´on me donne :)
J´ai juste remplacé ce bout de code:
par
Et cela marche a merveille, si je pourrais je mettrais un double résolu pour toi albkan ;)
Je n´ai pas encore la bonne logique d'ecriture mais grâce a des conseils avisé je sens que je comprends pluss mieuxx
MERCI!!
J´ai juste remplacé ce bout de code:
Workbooks.Open "guardarcomo.xlsm"
par
Workbooks.Open "C:\Users\user\Desktop\guardarcomo.xlsm"
Et cela marche a merveille, si je pourrais je mettrais un double résolu pour toi albkan ;)
Je n´ai pas encore la bonne logique d'ecriture mais grâce a des conseils avisé je sens que je comprends pluss mieuxx
MERCI!!
3 janv. 2017 à 22:03