Userform à supprimer par macro

jojodanslalune

XLDnaute Junior
Bonjour à tous,

J'ai créé un fichier qui lance un userform au lancement. Une fois les choix faits par l'utilisateur, l'utilisateur peut enregistrer à l'aide d'un bouton qui active une macri le fichier dans un endroit précis et sous un nom précis. Néanmoins j'ai une difficulté. Lorsque l'utilisateur enregistre son fichier, je souhaiterais que le userform n'apparaisse plus dans son nouveau fichier. Je ne sais pas du tout quoi ajouter dans ma macro d'enregistrement pour que le userform soit annulé. Est-ce possible?

C'est le tout dernier truc qui bloque pour mon fichier et je suis un peu inquiet que cela ne soit pas possible de le réaliser ! :eek:
 

pierrejean

XLDnaute Barbatruc
Re : Userform à supprimer par macro

bonjour jojodanslalune

une idée a creuser:

au lieu de
sauvegarder le fichier sous un autre nom

Creer un nouveau fichier du nom voulu
et copier ensuite les feuilles dans ce fichier

la macro aura quelques lignes de plus mais l'userform ne suivra pas
 

bqtr

XLDnaute Accro
Re : Userform à supprimer par macro

Bonjour jojodanslalune, pierrejean

Un exemple à adapter (chemin et nom de fichier ainsi que le nom de l'Userform).

Il faut activer la référence suivante : (dans VBA, menu Outils/Références).
Microsoft Visual Basic for Applications Extensibility 5.3

Code:
Sub Sans_Usf()

Dim VBComp As VBComponent
ThisWorkbook.SaveAs "Q:\bilans\toto.xls"
Set VBComp = ThisWorkbook.VBProject.VBComponents("Userform1")
ThisWorkbook.VBProject.VBComponents.Remove VBComp
ThisWorkbook.Save

End Sub
La macro enregistre le fichier sous un autre nom, "toto.xls", dans le répertoire "Q:\bilans", puis supprime le userform1 du fichier "toto".

Bonne journée

Edit :

Pour éviter d'avoir à activer la référence manuellement (comme ça tu es sûr qu'elle sera cochée):

Code:
Sub Sans_Usf()

Dim VBComp
Dim ref As String

ref = "C:\Program Files\Fichiers communs\Microsoft Shared\VBA\VBA6\VBE6EXT.OLB"
ThisWorkbook.VBProject.References.AddFromFile ref
ThisWorkbook.SaveAs "Q:\bilans\toto.xls"
Set VBComp = ThisWorkbook.VBProject.VBComponents("Userform1")
ThisWorkbook.VBProject.VBComponents.Remove VBComp
ThisWorkbook.Save

End Sub
Il faut juste adapter le chemin de la référence qui peut varié selon l'ordinateur, dans Outils/Référence. Lorsque tu coches la case devant cette dernière, tu as le chemin au bas de la boite de dialogue.

A+
 
Dernière édition:

jojodanslalune

XLDnaute Junior
Re : Userform à supprimer par macro

Merci pour vos idées !

J'ai réussi à contourner le problème en faisant un useform utilisable dans toutes les conditions. Je dois avouer que je ne le sentais pas de me lancer dans tout ça pour l'instant.

J'espère néanmoins que ce post servira également à quelqu'un. Je m'y mettrai pendant mes congés.

Merci à vous ! ;-)
 

Discussions similaires

Statistiques des forums

Discussions
312 491
Messages
2 088 888
Membres
103 982
dernier inscrit
krakencolas