OVH Cloud OVH Cloud

Je n'arrive pas à ...

4 réponses
Avatar
RV
Bonjour,
J'ai une ListBox nommée Préfixe avec les options fmMultiSelectMulti et
fmListStyleOption.
A l'appel du UserForm, je mets toutes les sélections à True.
Je peux à volonté décocher puis cocher divers sélections.
Ce que je n'arrive pas à faire avec le bouton CommandButton1_Click
(Valider), c'est lancer une procédure si la 1ère sélection
Préfixe.Selected(i) = False. En fait, Excel me sort de la procédure dès que
la valeur est à False.
Je ne comprends pas pourquoi !?!
Voici le code:

Private Sub CommandButton1_Click()

For i = 0 To Préfixe.ListIndex
If Préfixe.Selected(i) = True Then
Call Macro1
End If
Next i

End Sub

Merci
Cordialement
RV

4 réponses

Avatar
michdenis
Bonjour Rv,

As-tu essayé quelque chose comme ceci :

Prefix = Nom du contrôle "ListBox"

'------------------------
Private Sub UserForm_Initialize()

With Me.Prefix
.MultiSelect = fmMultiSelectMulti
.ListStyle = fmListStyleOption
.RowSource = "Feuil1!A1:A10"
End With

End Sub
'------------------------

Private Sub CommandButton1_Click()

Dim Nb As Integer
Nb = Me.Prefix.ListCount - 1

For a = 0 To Nb
If Me.Prefix.Selected(a) = True Then
MsgBox Me.Prefix.List(a)
'MaMacro
End If
Next

End Sub
'------------------------


Salutations!




"RV" a écrit dans le message de news:
Bonjour,
J'ai une ListBox nommée Préfixe avec les options fmMultiSelectMulti et
fmListStyleOption.
A l'appel du UserForm, je mets toutes les sélections à True.
Je peux à volonté décocher puis cocher divers sélections.
Ce que je n'arrive pas à faire avec le bouton CommandButton1_Click
(Valider), c'est lancer une procédure si la 1ère sélection
Préfixe.Selected(i) = False. En fait, Excel me sort de la procédure dès que
la valeur est à False.
Je ne comprends pas pourquoi !?!
Voici le code:

Private Sub CommandButton1_Click()

For i = 0 To Préfixe.ListIndex
If Préfixe.Selected(i) = True Then
Call Macro1
End If
Next i

End Sub

Merci
Cordialement
RV
Avatar
RV
Bonsoir MichDenis,
Merci, mais...
En fait je remplis ma ListBox avec des noms de fichiers que je vais chercher
dans un répertoire.
Le but est d'afficher ces fichiers(au nombre de 7 mais cela peut varier en +
ou en -) d'un répertoire X dans la ListBox afin de n'ouvrir que ceux qui
sont selectionnés par l'utilisateur.
Cela fonctionne si les valeurs sont à True, dès que la valeur est à False la
procédure s'arrête, et les selections suivantes (à True) ne sont pas
ouvertes
La selection multiple et le style option sont mis par défaut dans les
propriétés de la ListBox.
Je ne me sert pas du RowSource...
Aurais-tu une idée ?
Merci
Cordialement
RV


"michdenis" a écrit dans le message de news:

Bonjour Rv,

As-tu essayé quelque chose comme ceci :

Prefix = Nom du contrôle "ListBox"

'------------------------
Private Sub UserForm_Initialize()

With Me.Prefix
.MultiSelect = fmMultiSelectMulti
.ListStyle = fmListStyleOption
.RowSource = "Feuil1!A1:A10"
End With

End Sub
'------------------------

Private Sub CommandButton1_Click()

Dim Nb As Integer
Nb = Me.Prefix.ListCount - 1

For a = 0 To Nb
If Me.Prefix.Selected(a) = True Then
MsgBox Me.Prefix.List(a)
'MaMacro
End If
Next

End Sub
'------------------------


Salutations!




"RV" a écrit dans le message de news:

Bonjour,
J'ai une ListBox nommée Préfixe avec les options fmMultiSelectMulti et
fmListStyleOption.
A l'appel du UserForm, je mets toutes les sélections à True.
Je peux à volonté décocher puis cocher divers sélections.
Ce que je n'arrive pas à faire avec le bouton CommandButton1_Click
(Valider), c'est lancer une procédure si la 1ère sélection
Préfixe.Selected(i) = False. En fait, Excel me sort de la procédure dès
que
la valeur est à False.
Je ne comprends pas pourquoi !?!
Voici le code:

Private Sub CommandButton1_Click()

For i = 0 To Préfixe.ListIndex
If Préfixe.Selected(i) = True Then
Call Macro1
End If
Next i

End Sub

Merci
Cordialement
RV





Avatar
michdenis
Bonjour RV,

Voici une procédure qui devrait fonctionner :

Ton formulaire devrait être affiché en fenêtre non-modale !

Si tu as des problèmes... encore faut-il les décrire !

'-----------------------------------------
Private Sub CommandButton1_Click()

Dim Nb As Integer, T(), Chemin As String
Dim A As Integer, B As Integer, File As String
Nb = Me.Prefix.ListCount - 1

'chemin où sont tes fichiers
Chemin = "c:Excel"

For A = 0 To Nb
If Me.Prefix.Selected(A) = True Then
ReDim Preserve T(B)
T(B) = Me.Prefix.List(A)
B = B + 1
Me.Prefix.Selected(A) = False
End If
Next

For A = LBound(T) To UBound(T)
File = ""
If LCase(Right(T(A), 4)) <> ".xls" Then
File = T(A) & ".xls"
Else
File = T(A)
End If
If Dir(Chemin & File) <> "" Then
Workbooks.Open T(A)
End If
Next

End Sub
'-----------------------------------------


Salutations!



"RV" a écrit dans le message de news:
Bonsoir MichDenis,
Merci, mais...
En fait je remplis ma ListBox avec des noms de fichiers que je vais chercher
dans un répertoire.
Le but est d'afficher ces fichiers(au nombre de 7 mais cela peut varier en +
ou en -) d'un répertoire X dans la ListBox afin de n'ouvrir que ceux qui
sont selectionnés par l'utilisateur.
Cela fonctionne si les valeurs sont à True, dès que la valeur est à False la
procédure s'arrête, et les selections suivantes (à True) ne sont pas
ouvertes
La selection multiple et le style option sont mis par défaut dans les
propriétés de la ListBox.
Je ne me sert pas du RowSource...
Aurais-tu une idée ?
Merci
Cordialement
RV


"michdenis" a écrit dans le message de news:

Bonjour Rv,

As-tu essayé quelque chose comme ceci :

Prefix = Nom du contrôle "ListBox"

'------------------------
Private Sub UserForm_Initialize()

With Me.Prefix
.MultiSelect = fmMultiSelectMulti
.ListStyle = fmListStyleOption
.RowSource = "Feuil1!A1:A10"
End With

End Sub
'------------------------

Private Sub CommandButton1_Click()

Dim Nb As Integer
Nb = Me.Prefix.ListCount - 1

For a = 0 To Nb
If Me.Prefix.Selected(a) = True Then
MsgBox Me.Prefix.List(a)
'MaMacro
End If
Next

End Sub
'------------------------


Salutations!




"RV" a écrit dans le message de news:

Bonjour,
J'ai une ListBox nommée Préfixe avec les options fmMultiSelectMulti et
fmListStyleOption.
A l'appel du UserForm, je mets toutes les sélections à True.
Je peux à volonté décocher puis cocher divers sélections.
Ce que je n'arrive pas à faire avec le bouton CommandButton1_Click
(Valider), c'est lancer une procédure si la 1ère sélection
Préfixe.Selected(i) = False. En fait, Excel me sort de la procédure dès
que
la valeur est à False.
Je ne comprends pas pourquoi !?!
Voici le code:

Private Sub CommandButton1_Click()

For i = 0 To Préfixe.ListIndex
If Préfixe.Selected(i) = True Then
Call Macro1
End If
Next i

End Sub

Merci
Cordialement
RV





Avatar
RV
Re-bonsoir MichDenis,
Merci pour l'aide apportée.
Bonne soirée.
Cordialement.
RV


"michdenis" a écrit dans le message de news:

Bonjour RV,

Voici une procédure qui devrait fonctionner :

Ton formulaire devrait être affiché en fenêtre non-modale !

Si tu as des problèmes... encore faut-il les décrire !

'-----------------------------------------
Private Sub CommandButton1_Click()

Dim Nb As Integer, T(), Chemin As String
Dim A As Integer, B As Integer, File As String
Nb = Me.Prefix.ListCount - 1

'chemin où sont tes fichiers
Chemin = "c:Excel"

For A = 0 To Nb
If Me.Prefix.Selected(A) = True Then
ReDim Preserve T(B)
T(B) = Me.Prefix.List(A)
B = B + 1
Me.Prefix.Selected(A) = False
End If
Next

For A = LBound(T) To UBound(T)
File = ""
If LCase(Right(T(A), 4)) <> ".xls" Then
File = T(A) & ".xls"
Else
File = T(A)
End If
If Dir(Chemin & File) <> "" Then
Workbooks.Open T(A)
End If
Next

End Sub
'-----------------------------------------


Salutations!



"RV" a écrit dans le message de news:

Bonsoir MichDenis,
Merci, mais...
En fait je remplis ma ListBox avec des noms de fichiers que je vais
chercher
dans un répertoire.
Le but est d'afficher ces fichiers(au nombre de 7 mais cela peut varier en
+
ou en -) d'un répertoire X dans la ListBox afin de n'ouvrir que ceux qui
sont selectionnés par l'utilisateur.
Cela fonctionne si les valeurs sont à True, dès que la valeur est à False
la
procédure s'arrête, et les selections suivantes (à True) ne sont pas
ouvertes
La selection multiple et le style option sont mis par défaut dans les
propriétés de la ListBox.
Je ne me sert pas du RowSource...
Aurais-tu une idée ?
Merci
Cordialement
RV


"michdenis" a écrit dans le message de news:

Bonjour Rv,

As-tu essayé quelque chose comme ceci :

Prefix = Nom du contrôle "ListBox"

'------------------------
Private Sub UserForm_Initialize()

With Me.Prefix
.MultiSelect = fmMultiSelectMulti
.ListStyle = fmListStyleOption
.RowSource = "Feuil1!A1:A10"
End With

End Sub
'------------------------

Private Sub CommandButton1_Click()

Dim Nb As Integer
Nb = Me.Prefix.ListCount - 1

For a = 0 To Nb
If Me.Prefix.Selected(a) = True Then
MsgBox Me.Prefix.List(a)
'MaMacro
End If
Next

End Sub
'------------------------


Salutations!




"RV" a écrit dans le message de news:

Bonjour,
J'ai une ListBox nommée Préfixe avec les options fmMultiSelectMulti et
fmListStyleOption.
A l'appel du UserForm, je mets toutes les sélections à True.
Je peux à volonté décocher puis cocher divers sélections.
Ce que je n'arrive pas à faire avec le bouton CommandButton1_Click
(Valider), c'est lancer une procédure si la 1ère sélection
Préfixe.Selected(i) = False. En fait, Excel me sort de la procédure dès
que
la valeur est à False.
Je ne comprends pas pourquoi !?!
Voici le code:

Private Sub CommandButton1_Click()

For i = 0 To Préfixe.ListIndex
If Préfixe.Selected(i) = True Then
Call Macro1
End If
Next i

End Sub

Merci
Cordialement
RV