Re: => DEMO UserForm de Pilotage et Statistic sur AutoFilter en Clefs Uniques
Re-Bonjour Thuan, le Fil, le Forum
Humm oui, mais disons que c'est un peu hors sujet toute cette histoire vis à vis du sujet initial de ce fil discussion...
Enfin tans qu'on y est... Bon alors ton UserForm2 tu en fais un export manuel (depuis VBA Explorateur de Projets, Click droit en sélectionnant ce UserForm, puis "Export File" (Export Fichier (?) je suis en américain) tu fais ton export là où tu souhaite, en réseau ou en local... Pour l'exemple je reste en Local...
Donc imaginons que tu as exporté ton UserForm2 vers :
"C:\Documents and Settings\te\My Documents"
Dans My Documents Tu vas trouver DEUX fichier :
1) UserForm2.frm
2) UserForm2.frx
Tu les laisses là...
Ensuite je reprends ton code comme suit :
Private Sub CommandButton1_Click()
Dim Classeur As Workbook
Dim Feuille As Worksheet
Dim MyArray() As String
Dim i As Integer
Dim X As Byte
Dim MyUSF As String
MyUSF = "C:\Documents and Settings\TonID\My Documents\UserForm2.frm"
Application.ScreenUpdating = False
Set Classeur = ThisWorkbook
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then
ReDim Preserve MyArray(X)
MyArray(X) = ListBox1.List(i)
X = X + 1
End If
Next
Classeur.Worksheets(MyArray).Copy
With ActiveWorkbook.VBProject
.VBComponents.Import MyUSF
End With
End Sub
A ce stade tu auras bien le UserForm2 avec son Code dans le nouveau classeur... Mais.... Il y a un Mais !
Attention à ce Code !!!
En effet si tu laisses, avec ta ListBox, le choix au User de sélectionner les Feuilles à copier dans un nouveau classeur , il n'aura pas forcément pris dans la séléction la "Feuil1"... Or tu as ceci dans ton Code du UserForm2 que l'on vient d'importer dans ce nouveau classeur :
Private Sub CommandButton1_Click()
Dim i As Integer
Dim j As Integer
With Sheets("Feuil1") '<<<< Niet Niet !! Source de Bug !!
For i = 1 To 7
For j = 1 To 7
Cells(i, j).Value = 111
Next j
Next i
End With
End Sub
Donc il te faudra gérer ceci aussi, par exemple avec l'index de Feuille éventuellement, (With Sheets(1)), ou encore With ActiveSheet...
Bonne Programmation et Bon Appétit
@+Thierry