Impression d'un userform de feuille provenant d'un autre fichier
Fermé
sieyapdji
-
21 oct. 2015 à 15:42
PlacageGranby Messages postés 393 Date d'inscription mercredi 26 mars 2014 Statut Membre Dernière intervention 7 mars 2019 - 23 oct. 2015 à 14:56
PlacageGranby Messages postés 393 Date d'inscription mercredi 26 mars 2014 Statut Membre Dernière intervention 7 mars 2019 - 23 oct. 2015 à 14:56
A voir également:
- Impression d'un userform de feuille provenant d'un autre fichier
- Spouleur d'impression - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier host - Guide
4 réponses
PlacageGranby
Messages postés
393
Date d'inscription
mercredi 26 mars 2014
Statut
Membre
Dernière intervention
7 mars 2019
26
21 oct. 2015 à 19:20
21 oct. 2015 à 19:20
Bonjour,
Je ne suis pas le meilleur en VBA, mais ne voyant pas de réponse pour l'instant, je me lance.
https://www.cjoint.com/c/EJvroYTjmrP
Ci-joint, un fichier avec un listbox et deux bouton.
Le premier bouton choisit le fichier et liste les feuilles.
L'autre permet d'imprimer les sélections faites dans le listbox.
Bien sûr, le tout est a adapter selon vos besoins et particularité.
Je me suis grandement inspiré du code que vous avez écrit a quelques différences pret :
- Pas de userform
- Au lieu d'avoir a écrire sans faute le chemin et le nom de fichier en A1, une boite de dialogue est relié au bouton.
Dans les améliorations possibles :
- Inscrire aussi le chemin du fichier dans le listbox et permettre de lister les feuilles de plusieurs fichiers en même temps.
Je ne suis pas le meilleur en VBA, mais ne voyant pas de réponse pour l'instant, je me lance.
https://www.cjoint.com/c/EJvroYTjmrP
Ci-joint, un fichier avec un listbox et deux bouton.
Le premier bouton choisit le fichier et liste les feuilles.
L'autre permet d'imprimer les sélections faites dans le listbox.
Bien sûr, le tout est a adapter selon vos besoins et particularité.
Je me suis grandement inspiré du code que vous avez écrit a quelques différences pret :
- Pas de userform
- Au lieu d'avoir a écrire sans faute le chemin et le nom de fichier en A1, une boite de dialogue est relié au bouton.
Dans les améliorations possibles :
- Inscrire aussi le chemin du fichier dans le listbox et permettre de lister les feuilles de plusieurs fichiers en même temps.
Merci bcp PlacageGranby vraiment tu es le messi. ça fait plusieurs jour que je boucle dessus. c'est exactement ce que je voulais.
mais stp j'ai un autre soucis dans mon dossier.
dans mon dossier j'ai un classeur protégé par mot de passe. lorsque je sélection un fichier autre pour l'ouvrir ce classeur protégé par mot de passe s'ouvre automatiquement et du coup ça me génère des erreurs.
quand j'enlève ce fichier dans ce dossier ça marche normalement. mais ce fichier est important pour que d'autre fonctionne
stp tu peux savoir d'ou ça viens. merci bcp
mais stp j'ai un autre soucis dans mon dossier.
dans mon dossier j'ai un classeur protégé par mot de passe. lorsque je sélection un fichier autre pour l'ouvrir ce classeur protégé par mot de passe s'ouvre automatiquement et du coup ça me génère des erreurs.
quand j'enlève ce fichier dans ce dossier ça marche normalement. mais ce fichier est important pour que d'autre fonctionne
stp tu peux savoir d'ou ça viens. merci bcp
PlacageGranby
Messages postés
393
Date d'inscription
mercredi 26 mars 2014
Statut
Membre
Dernière intervention
7 mars 2019
26
Modifié par PlacageGranby le 22/10/2015 à 15:09
Modifié par PlacageGranby le 22/10/2015 à 15:09
Re-Bonjour,
J'ai tester ici, et lorsqu'il y a un mot de passe, il est demandé à l'ouverture via un popup.
Si on ne veut pas entrer le mot de passe, alors il est possible de le coder.
La présence du paramètre Password n'empèchera pas la macro d'ouvrir les autres fichiers.
Lorsque le fichier n'est pas protèger, le password est oublié :o
Ce qui est sûr, c'est que selon l'importance de ce fichier, il faudrait sécuriser aussi le fichier avec la macro pour qu'un utilisateur ne puisse pas voir le mot de passe dans les macro.
J'ai tester ici, et lorsqu'il y a un mot de passe, il est demandé à l'ouverture via un popup.
Si on ne veut pas entrer le mot de passe, alors il est possible de le coder.
Set xlBook = xlApp.Workbooks.Open(Filename:=chemin_fichier, Password:="test")
La présence du paramètre Password n'empèchera pas la macro d'ouvrir les autres fichiers.
Lorsque le fichier n'est pas protèger, le password est oublié :o
Ce qui est sûr, c'est que selon l'importance de ce fichier, il faudrait sécuriser aussi le fichier avec la macro pour qu'un utilisateur ne puisse pas voir le mot de passe dans les macro.
sieyapdji
>
PlacageGranby
Messages postés
393
Date d'inscription
mercredi 26 mars 2014
Statut
Membre
Dernière intervention
7 mars 2019
23 oct. 2015 à 10:24
23 oct. 2015 à 10:24
Re-bonjour PlacageGranby vraiment merci pour l'aide que tu m'apportes sur ce projet. En quelques jours j'ai beaucoup évolué en VBA. stp où est ce que je dois insérer ce bout de code pour que ça fonctionne. j'ai essayé partout mais ça ne fonctionne pas. merci bcp
PlacageGranby
Messages postés
393
Date d'inscription
mercredi 26 mars 2014
Statut
Membre
Dernière intervention
7 mars 2019
26
23 oct. 2015 à 14:06
23 oct. 2015 à 14:06
Re-Bonjour,
Voici la ligne que tu avais pour ouvrir un fichier.
Le "nouveau" code, est en fait une modification de l'ancien code.
On ajoute seulement le mot de passe en paramètre pour que LE fichier avec un mot de passe s'ouvre comme les autres.
"test" est un exemple. Remplacer "test" par le vrai mot de passe (conserver les "guillemet").
Si vous avez plusieurs fichiers avec des mots de passe différent, alors ce code ne marchera pas.
Voici la ligne que tu avais pour ouvrir un fichier.
Set xlBook = xlApp.Workbooks.Open Filename:=chemin_fichier
Le "nouveau" code, est en fait une modification de l'ancien code.
Set xlBook = xlApp.Workbooks.Open(Filename:=chemin_fichier, Password:="test")
On ajoute seulement le mot de passe en paramètre pour que LE fichier avec un mot de passe s'ouvre comme les autres.
"test" est un exemple. Remplacer "test" par le vrai mot de passe (conserver les "guillemet").
Si vous avez plusieurs fichiers avec des mots de passe différent, alors ce code ne marchera pas.
PlacageGranby vraiment merci pour l'aide que tu m'apportes sur ce projet. En quelques jours j'ai beaucoup évolué en VBA. stp où est ce que je dois insérer ce bout de code pour que ça fonctionne. j'ai essayé partout mais ça ne fonctionne pas. merci bcp
PlacageGranby voici le problème. dans un dossier j'ai 10 classeurs et parmis ces classeurs il y en a un qui à un mot de passe et je ne voudrais pas que les gens ouvre ce fichier. les autres fichiers fonctionne grâce à ce fichier. le problème c'est que quand je selectionne un fichier avec ton application ce fichier avec mot de passe ouvre par defaut et me demande d'entrer le mot de passe. c'est un fichier qui ne peut être consulté par quelqu'un d'autre que moi. merci bcp pour ton aide
PlacageGranby
Messages postés
393
Date d'inscription
mercredi 26 mars 2014
Statut
Membre
Dernière intervention
7 mars 2019
26
Modifié par PlacageGranby le 23/10/2015 à 14:57
Modifié par PlacageGranby le 23/10/2015 à 14:57
Re
Bon je comprend mieux le problème.
Un utilisateur peut essayer d'ouvrir le fichier protéger même sans passer par la macro.
Il pourrait essayer d'ouvrir le fichier directement via excel.
Tu pourrais bouger le fichier protéger dans un sous-répertoire.
A vérifier qu'il n'y ait pas de macro dans ce fichier. Elle pourrait être touché quand on bouge le fichier.
Tu pourrais aussi poser un filtre sur la botie de dialogue. Et jouer avec la première lettre des fichiers. Même chose, tu dois vérifier qu'il n'y a pas d'autre macro sur ces fichiers qui pourrait être perturbé par un changement du nom des fichiers.
On remplace
qui nous listait tout les fichier *.xls* (xls, xlsx, xlsm )
Pour :
Qui nous liste seulement les fichers excel commençant par la lettre A.
Tu pourrait mettre un préfixe a chaque fichiers genre "FAI_" (pour fichier à imprimer) que tu veux que les utilisateurs voit.
Genre changer toto.xls par FAI_toto.xls
Et dans ton code, .InitialFileName = "FAI_*.xls"
Donc, la boite de dialogue va seulement montrer les fichiers voulu.
Et finalement,
Voici un lien vers la deuxième version du fichier comprenant un préfixe FAI_ pour la boite de dialogue
https://www.cjoint.com/c/EJxm3AnunrP
Bon je comprend mieux le problème.
Un utilisateur peut essayer d'ouvrir le fichier protéger même sans passer par la macro.
Il pourrait essayer d'ouvrir le fichier directement via excel.
Tu pourrais bouger le fichier protéger dans un sous-répertoire.
A vérifier qu'il n'y ait pas de macro dans ce fichier. Elle pourrait être touché quand on bouge le fichier.
Tu pourrais aussi poser un filtre sur la botie de dialogue. Et jouer avec la première lettre des fichiers. Même chose, tu dois vérifier qu'il n'y a pas d'autre macro sur ces fichiers qui pourrait être perturbé par un changement du nom des fichiers.
On remplace
chemin_fichier = Application.GetOpenFilename("Fichiers,*.xls*")
qui nous listait tout les fichier *.xls* (xls, xlsx, xlsm )
Pour :
'** Choisit le fichier **' Dim fd As FileDialog, chemin_fichier As String Set fd = Application.FileDialog(msoFileDialogFilePicker) With fd .InitialFileName = "a*.xls" .AllowMultiSelect = False .Show If .SelectedItems.Count > 0 Then chemin_fichier = .SelectedItems(1) Else MsgBox "Erreur lors de la sélection du fichier" Exit Sub End If End With Range("B1").Value = chemin_fichier 'Inscrit le chemin + fichier en B2
Qui nous liste seulement les fichers excel commençant par la lettre A.
Tu pourrait mettre un préfixe a chaque fichiers genre "FAI_" (pour fichier à imprimer) que tu veux que les utilisateurs voit.
Genre changer toto.xls par FAI_toto.xls
Et dans ton code, .InitialFileName = "FAI_*.xls"
Donc, la boite de dialogue va seulement montrer les fichiers voulu.
Et finalement,
Voici un lien vers la deuxième version du fichier comprenant un préfixe FAI_ pour la boite de dialogue
https://www.cjoint.com/c/EJxm3AnunrP