Listbox : action unique sur sélection de feuilles multiples.

NicoLaRochelle

XLDnaute Nouveau
Bonjour à tous,

Mes recherches dans les archives étant infructueuses... J'en appelle à votre aide !

J'utilise une macro qui donne sous la forme d'un userform la liste des feuilles ouvertes dans le classeur. C'est très pratique pour naviguer dans le classeur.

Ca ressemble à ça :

C'est (je crois) CHTI160 qui l'avait mise en ligne (et gros merci d'ailleurs).

Bref...

Moi ce que j'aimerai faire c'est l'adapter pour faire agir une macro annexe uniquement aux feuilles que j'aurai sélectionné.
sur ce Userform j'ai donc activé l'option (selection multiple), j'ai ajouté un bouton OK et un Bouton Cancel.

Et je suis parti sur ce code qui ne fonctionne pas ...

'Private Sub CommandButton1_Click()
ValidationMAJ
End Sub

Private Sub CommandButton2_Click()
Unload MaBoite
End Sub


Sub ValidationMAJ()

Dim j As Integer
Dim i As Integer

For i = 0 To ListBox2.ListCount - 1
If ListBox2.Selected(i) = True Then
For j = 1 To Sheets.Count
If Sheets(j).Name = ListBox2.Value Then
MISE_A_JOUR
End If
Next j
End If
Next i

End Sub


Donc... I NEED HELP !

Merci.
 

NicoLaRochelle

XLDnaute Nouveau
Re : Listbox : action unique sur sélection de feuilles multiples.

La macro de listing des feuilles...

Option Explicit
Option Base 0
Dim TabFile() As String
Dim TabSheet() As String


Private Sub ListBox1_Click()
'Ces 5 lignes sont obligatoires pour un fonctionnement sur Mac
Static Flag As Boolean
If Not Flag Then
Flag = True
Exit Sub
End If
ListSheet (ListBox1.ListIndex + 1)

End Sub

Private Sub UserForm_Initialize()
Dim i As Byte

'Création du tableau des fichiers ouverts
ReDim TabFile(Workbooks.Count - 1)
For i = 1 To UBound(TabFile) + 1
TabFile(i - 1) = Workbooks(i).Name
Next i

ListBox1.List = TabFile
ListBox1.ListIndex = 0

ListSheet (1)
End Sub

Private Sub ListSheet(NumFile As Byte)
Dim i As Byte
Dim j As Byte
'Création du tableau des feuilles du fichier
ReDim TabSheet(Workbooks(NumFile).Sheets.Count - 3)
j = 0
For i = 3 To Workbooks(NumFile).Sheets.Count
If Workbooks(NumFile).Sheets(i).Visible Then
TabSheet(j) = Workbooks(NumFile).Sheets(i).Name
j = j + 1
Else
ReDim Preserve TabSheet(UBound(TabSheet) - 3)
End If
Next i

ListBox2.List = TabSheet
ListBox2.ListIndex = 0

End Sub
 

Statistiques des forums

Discussions
312 685
Messages
2 090 939
Membres
104 703
dernier inscrit
romla937