Liste des onglets sauf feuilles x ou y et trier

Regueiro

XLDnaute Impliqué
Bonsoir le Forum
Mon code ci-dessous me liste les onglets de mon classeur sauf certaine.
Comment les mettrent dans l'ordre alphabétique.
Code:
Private Sub UserForm_Initialize()
Me.ComboBox1.Clear
sauf = "0.Récap,0.Données,Z.AIDE,"
For S = 1 To Sheets.Count
If InStr(sauf, Sheets(S).Name & ",") = 0 Then Me.ComboBox1.AddItem Sheets(S).Name
Next S
End Sub

Je ne sais pas ou mettre ce code qui marche également et l'adapter sur mon code précédent
Code:
'Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
'  Dim temp()
 ' For i = 1 To Sheets.Count
 '   ReDim Preserve temp(1 To i)
'    temp(i) = Sheets(i).Name
 ' Next i
 ' n = UBound(temp)
 ' Call Tri(temp, 1, n)
 ' Me.ComboBox1.List = temp
'  Me.ComboBox1.ListIndex = 0
 ' 'Me.Show
 ' Me.ComboBox1.SetFocus
  'SendKeys "{F4}"
'End Sub
Merci de votre Aide
A+
 

david84

XLDnaute Barbatruc
Re : Liste des onglets sauf feuilles x ou y et trier

Bonjour,
Tu dois stocker tes noms de feuille dans un Array puis appeler Tri en mettant ton tableau en argument.
Le tri (non fourni dans ton code) semble être un Quick Sort. Vois ici sur le site de JB comment procéder.
A+
 

Regueiro

XLDnaute Impliqué
Re : Liste des onglets sauf feuilles x ou y et trier

Bonsoir le Forum
Bonsoir Davi84
Merci pour ton info, j'ai trouver quelque chose sur le site de Boisgontier.

Voilà mon nouveau code
En fait j'ai contourner le problème, ma combobox liste uniquement les feuilles commençant par "ART_"
Vu que je n'ai pas trouver le code pour dire sauf = "0.Récap,0.Données,Z.AIDE,"
C'est pas grave mais si tu pouvais me dire comment pour une autre application comment faire.

Code:
Private Sub UserForm_Initialize()
  Dim temp()
  j = 0
  For i = 1 To Sheets.Count
  If Sheets(i).Name Like m & "ART_*" And Sheets(i).Name <> m Then
  j = j + 1
    ReDim Preserve temp(1 To j)
   temp(j) = Sheets(i).Name
  End If
  Next i
  n = UBound(temp)
  Call Tri(temp, 1, n)
  Me.ComboBox1.List = temp
  Me.ComboBox1.ListIndex = 0
End Sub
Private Sub ComboBox1_Change()
    m = Me.ComboBox1
    Sheets(m).Visible = xlSheetVisible
    Sheets(m).Select 'Activate
    'Sheets(m).Activate
End Sub
Sub Tri(a, gauc, droi)          ' Quick sort
 ref = a((gauc + droi) \ 2)
 g = gauc: d = droi
 Do
     Do While a(g) < ref: g = g + 1: Loop
     Do While ref < a(d): d = d - 1: Loop
     If g <= d Then
       temp = a(g): a(g) = a(d): a(d) = temp
       g = g + 1: d = d - 1
     End If
 Loop While g <= d
 If g < droi Then Call Tri(a, g, droi)
 If gauc < d Then Call Tri(a, gauc, d)
End Sub
Pour la suite de mon code je cherche à faire la chose suivante.
En fonction du choix de ma combobox par exemple "ART_0000"
Copier cette feuille modèle à la dernière position.
Mais je dois pouvoir lui dire avant de copier de le renommer par ex. "ART_0001"
Par exemple dans une inputbox ou autre.
Le choix de cette InputBox doit aller se ranger dans la cellule F8
Etant donné que ma feuille se renomme automatiquement selon le choix de la Cellule F8
selon se code :
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 ActiveSheet.Name = Range("$F$8").Value
End Sub
Merci encore.
Bonne soirée
A+
 

david84

XLDnaute Barbatruc
Re : Liste des onglets sauf feuilles x ou y et trier

Re
Vu que je n'ai pas trouver le code pour dire sauf = "0.Récap,0.Données,Z.AIDE,"
if sheets(i).name<> "0.Récap,0.Données,Z.AIDE,"
Copier cette feuille modèle à la dernière position
Utiliser la méthode Copy de l'objet Worksheets en utilisant l'argument After pour le positionnement de la copie (Cf. l'aide d'Excel avec la touche F1)
Mais je dois pouvoir lui dire avant de copier de le renommer par ex. "ART_0001"
Par exemple dans une inputbox ou autre
Entrer le nom de la feuille dans l'InputBox. Prévoir un code pour qu'à la fermeture de l'Input>Box, la feuille placée en dernière position prendra le nom rentré dans l'InputBox.
Si besoin, faire une recherche sur le Net pour faire la différence entre la méthode InputBox et la fonction InputBox.
A+
 

Discussions similaires

Réponses
29
Affichages
1 K

Statistiques des forums

Discussions
314 065
Messages
2 105 256
Membres
109 313
dernier inscrit
Feryal