passer une variable à 1 macro

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

TOFatJOB

XLDnaute Occasionnel
Bonjour à tous,

j'ai un traitement de données société M
Je souhaite faire le même travail pour la société T

Comment faire pour que la macro me demande :

Société à traiter ? T ou M dans une fenêtre d'intérogation

et passe cette variable pour la suite de la macro ?
 
bonjour tout les deux et le forum

En complément de l'excellente réponse de galopin, si tu veux que ta variable soit accessible depuis n'inporte quel macro :

Déclare public en tête de module , la variable r : Public r As String

puis , en s'appuyant sur la macro de galopin :

Sub Test()
r = InputBox('Société à traiter ?', , 'Société Anomyme')
Traitement
End Sub

Sub Traitement()
MsgBox 'Vous avez choisi : ' & r
vev
End Sub

Sub vev()
MsgBox 'Vous avez vraiment choisi : ' & r
End Sub

Au plaisir de vous lire tout les deux.

Salut
Hervé

Message édité par: Hervé, à: 26/02/2005 11:52
 
Salut à tous et toutes

Les réponses me semble excellentes à un détai près....

Dans un premier temps, je forcerais le choix en proposant la macro suivante sur la base de celles de Galopin01:

Sub Sparkle()

Choix:
R = InputBox('Société à traiter (M/T) ?', , 'Société Anomyme')
If R = 'T' Or R = 't' Or R = 'M' Or R = 'm' Then
MsgBox 'Vous avez choisi : ' & R
Else:
MsgBox 'Votre choix n'est pas correct'+Chr(13)+'Recommencez'
GoTo Fin
End If

Ok:
----- Variantes à saisir en fonction de l'analyse ci-dessous ---

Fin:

End Sub

Les données traitées pour la société M doivent-elles disparaitre au profit des données de la société T?

Dans les options proposées jusqu'à présent la réponse est OUI...

Sinon il est préférable d'avoir soit un fichier différent par société et dans ce cas, la macro doit être affectée 'à tous les classeurs' et de ce fait devenir executable depuis n'importe quel état du fichier à traité (c'est à dire fichier ouvert ou non) ou alors avoir un fichier dans lequel 2 feuilles sont distincte appelées par exemple 'M' et 'T' et dans ce cas la macro est affecté au 'classeur uniquement'

1) méthode par 2 fichiers différents existant sur le disque dur ( Donc à créer dans 'MES DOCUMENTS' pour l'exemple ) :
- Le premier appelé 'T' et le second 'M'

La section 'Ok' de la macro aura donc pour code :

On Error GoTo Fin
If R = 'T' Or R = 't' Then
Workbooks.Open FileName:= _
'C:\\Documents and Settings\\Propriétaire\\Mes documents\\T.xls'
Else Workbooks.Open FileName:= _
'C:\\Documents and Settings\\Propriétaire\\Mes documents\\M.xls'
Ton_nom_de_macro_à_executer_ici


2) Méthode par 2 feuilles différentes 'T' et 'M' sur le même fichier

La section 'Ok' de la macro aura donc pour code :

If R = 'T' Or R = 't' Then
Sheets('T').Select
Else
Sheets('M').Select
End if
Ton_nom_de_macro_à_executer_ici

Salut à tous et à bientôt
 
Je viens de m'appercevoir que l'éditeur de texte n'a pas pris en compte certaines infos....

A savoir, lorsque la section 'Ok' de macro appèle les fichiers ( dans le cas 1 ), il manque '\\' pour cheminer les directories...

A vos claviers...
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
330
Réponses
2
Affichages
237
Réponses
3
Affichages
309
Réponses
12
Affichages
351
Réponses
2
Affichages
272
Retour