Macro multi-choix ?

Ograk Messages postés 2 Date d'inscription mardi 12 janvier 2010 Statut Membre Dernière intervention 13 janvier 2010 - 12 janv. 2010 à 20:43
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 13 janv. 2010 à 14:37
Bonjour, j'aimerais savoir si c'est possible d'avoir de multiples conditions en utilisant "Do While" ?

Actuellement j'ai créé ceci :

...
...
Do while Agence <> "Bordeaux"
If Agence = "Bordeaux" Then
Workbooks.Open:mon fichier.xls
Loop
End If
...
...

Sauf que nous avons des agences sur paris, lyon, ..... et chacune possède son propre fichier.

J'ai essayé plusieures méthodes pensant qu'elles fonctionnerraient mais aucune n'a abouti.
Exemple :
Do while not agence = "Bordeaux" Or "Lyon"

Si il existe une autre possibilité que "Do while" je suis preneur également.
Merci pour votre aide

5 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
12 janv. 2010 à 22:52
Bonjour,

ton code :
Do while Agence <> "Bordeaux"
If Agence = "Bordeaux" Then
Workbooks.Open:mon fichier.xls
Loop

est assez surprenant, de toutes manières !
Comment veux-tu que tant que Agence <> "Bordeaux", tu puisses tomber sur le cas = "Bordeaux"
C'est paradoxal !

____________________
Très intéressante fable, L'OISELEUR, L'AUTOUR ET L'ALOUETTE !
Cliquer sur "Réponse acceptée" (en bas d'une solution avérée adéquate) rendra service à d'autres. PENSEZ-Y.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
12 janv. 2010 à 22:56
et je préfère ne pas relevere ton End If qui apparaît après le loop !
Le problème est qu'on ne peut en plus même pas t'aider à y voir plus clair avec ce seul morceau de code (on ne sazit même pas où et comment évolue la variable Agence, ni où est compmpent évolue le nom de ton fichier !
C'est à ce stade de l'hébreu pour nous et toutes les boules de crystal sont en panne


____________________
Très intéressante fable, L'OISELEUR, L'AUTOUR ET L'ALOUETTE !
Cliquer sur "Réponse acceptée" (en bas d'une solution avérée adéquate) rendra service à d'autres. PENSEZ-Y.
0
Ograk Messages postés 2 Date d'inscription mardi 12 janvier 2010 Statut Membre Dernière intervention 13 janvier 2010
13 janv. 2010 à 12:04
Voilà ce que j'ai actuellement :

Elle est encore au stade de création.


Sub Auto_Open()

Etablissement = InputBox("Saisissez la ville de votre établissement", "Etablissement", "")
If Etablissement = "" Then
fermer = MsgBox("Voulez-vous fermer l'application", vbOKCancel, "Attention !")
If fermer = vbOK Then
Workbooks.Close
End If
End If

If Etablissement = "lyon" Then
Workbooks.Open Filename:="\\cluster\profils$\data\Stats test\lyon.xls"
ElseIf Etablissement = "bordeaux" Then
Workbooks.Open Filename:="\\cluster\profils$\data\Stats test\bordeaux.xls"
Else
Do While Etablissement <> "lyon"
Etablissement = InputBox("Saisissez la ville de votre établissement", "Etablissement", "")
Loop
End If
If Etablissement = "lyon" Then
Workbooks.Open Filename:="\\cluster\profils$\data\Stats test\lyon.xls"
ElseIf Etablissement = "bordeaux" Then
Workbooks.Open Filename:="\\cluster\profils$\data\Stats test\bordeaux.xls"
End If
End Sub
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
13 janv. 2010 à 14:06
Ton truc est de plus en plus bizarre ! Notamment cette partie, qui va boucler sans cesse sur ton inputbox tant que réponse différente de "Lyon" ! (on se demande alors quelle pourrait être la finalité, dans un tel cas, d'unbe condition sir "Luon" (puisque forcément "Lyon") !
Do While Etablissement <> "lyon"
Etablissement = InputBox("Saisissez la ville de votre établissement", "Etablissement", "")
Loop
End If
If Etablissement = "lyon" Then 


Et si tu nous expliquais plutôt clairement et de manière détailléez cxe que tu as etr ce que tu cherches à faire exactement (en français et en termes ne laissant aucun doute, s'il te plait)? (on se fatiguerait probablement beaucoup moins )

Maintenant : je constate que tu ouvres un fichier xls portant le nom de la ville choisie !
Pourquoi, alors, ne pas mettre tous ces fichiers dans un seul répertoire, les afficher dans une listbox et ouvrir le fichier cliqué, plutôt que d'empoisonner l'existence de l'utilisateur, en lui imposant une inputbox ? Ce serait nettement plus efficace et nettement moins lourd pour l'utilisateur !

____________________
Très intéressante fable, L'OISELEUR, L'AUTOUR ET L'ALOUETTE !
Cliquer sur "Réponse acceptée" (en bas d'une solution avérée adéquate) rendra service à d'autres. PENSEZ-Y.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
13 janv. 2010 à 14:37
Regarde par exemple ce que fait ceci :

sur une feuille : un bouton de commande commandbutton1 et une listbox ListBox1 (les deux étant choisis dans la boîte de contrôles activex)

et ce code sur le module de ta feuille :

Private monrep As String
Private Sub CommandButton1_Click()
 Dim mesfics As String, monfiltre As String
 monrep = "e:\cluster" ' <<<<=== ici ton chemin de répertoire de tes villes, terminé par \
 monfiltre = "*.xls"
 ListBox1.Clear
 mesfics = Dir(monrep & monfiltre, vbhuidden Or vbNormal)
  Do While mesfics <> ""
     ListBox1.AddItem mesfics
     mesfics = Dir
  Loop
End Sub

Private Sub ListBox1_Click()
 MsgBox monrep & ListBox1.Text
End Sub

Lance ===>> clique sur le bouton ===>> regarde ta liste se remplir ===>> clique sur un élément de la liste et regarde !

C'est à monb sens on ne peut plus claire ! à toi de jouer comme tu l'entends avec !




____________________
Très intéressante fable, L'OISELEUR, L'AUTOUR ET L'ALOUETTE !
Cliquer sur "Réponse acceptée" (en bas d'une solution avérée adéquate) rendra service à d'autres. PENSEZ-Y.
0
Rejoignez-nous