macro par macro

  • Initiateur de la discussion stephon
  • Date de début
S

stephon

Guest
Bonjour à tous.

Pas très clair comme titre, je sais mais c'est un peu compliqué.

Voilà, ce que je souhaite, c'est pouvoir 'intégré' une macro crée en VB dont le texte se trouve dans un fichier .txt.

En fait, je souhaite trouver une solution afin de permettre à des utilisateurs non expérimentés de lancer une macro dans n'importe quel fichier Excel.

Actuellement, ils m'appellent et je viens créer la macro dans les fichiers qu'ils souhaitent.

Mais je souhaiterais automatiser cette manip (je ne peux venir systématiquement immédiatement).

A ce souci s'ajoute le fait que dans ma macro, je créé en fait un nouveau fichier que j'enregistre dans un répertoire.

Et le nom de ce répertoire est saisi par MOI dans le texte de la macro au moment ou j'installe la macro.

Un peu compliqué, non ?

Mais l'avantage, c'est que le nom de ce répertoire est le même que le nom du fichier courant.

Ouf, c'est fini !

Quelqu'un (qui m'aurais compris !!) aurait-il une idée ?

Merci d'avance.
 

Creepy

XLDnaute Accro
Bonjour,

Je fais des macro pour d'autres personnes de l'entreprise.

Plusieurs possibilités s'offrent à toi :

1 - La plus simple est de créer tes macros et de les sauvegarder en .XLA. Tu inclus dedans une génération de bouton et voila. L'utilisateur ouvre le fichier, ca charge la macro et crée un nv bouton y'a plus qu'a cliquer dessus.

Pas très long puisque le code de génération du bouton est toujours le même tu n'as juste qu'à faire un copier/coller.

J'ai même fait un XLS pré-formaté ave le code de création du bouton, que j'ouvre, je modifie les 2/3 propriétés importantes et voila.

2 - L'autre technique que j'utilise aussi est que je rajoute sur le poste des utilisateurs un bouton avec cette macro :

Code:
Sub LoadModule()
'
' Cette Macro Charge un fichier Module .Bas
' Pratique pour les développements spécifiques à un service
'
Dim tmpBas As String
Dim Ws As Workbook

Set Ws = ActiveWorkbook
  'ajouter le module de code contenant les fonctions
  If Ws Is Nothing Then
  MsgBox 'Pas de feuille Excel ouverte' & Chr(10) & 'Impossible d'ouvrir un module', vbCritical, 'Attention ...'
  Exit Sub
  Else
  tmpBas = Application.GetOpenFilename(filefilter:='Fichier de Module (*.BAS), *.bas', Title:='Quel Module ?'Â'Â') ', MultiSelect = false)
    If tmpBas = 'Faux' Or tmpBas = '' Then
    Exit Sub
    End If
  ActiveWorkbook.VBProject.VBComponents.Import tmpBas
  MsgBox 'Module importé avec succès !!', vbOKOnly, 'Résultat ..'
  End If
  End Sub

Ce code affiche une fenêtre qui demande quel fichier .BAS importer. Les fichiers BAS sont les fichiers générés quand tu exportes un module. Je vais faire une création auto de bouton par macro mais je n'ai pas eu le temps pour l'instant.

2 - !Pour le fichier, Si tu utilises la méthode 1 tu n'as qu'à faire un truc du genre Set WS as Activeworkbook pour récupérer le nom du classeur en cours.

Pour la méthode 2 tu fais une variable publique qui récupère le nom du classeur actif et on ne parle plus. Dans TOUTES tes macros tu feras appelles toujouors à cette même variable.

++

Creepy

Message édité par: Creepy, à: 03/06/2005 09:32
 

Discussions similaires

Statistiques des forums

Discussions
312 609
Messages
2 090 194
Membres
104 449
dernier inscrit
Miguel937