[UserForm]

Bonjour a tous les forumeurs!

Je sollicite encore une fois un peu de votre précieuse aide xD

Voila mes quelque questions:

1- J'ai une macro qui duplique une feuille modèle. Cette feuille dupliquer se nomme Fiche d'information (2), puis (3) etc ... Je voudrais que c'est feuille soit renommer par un nombre de 00001 a 99999.

Sub RenommerUnOnglet()

Sheets("Fiche d'information (2)").Select

Sheets("Fiche d'information (2)").Name = "Que mettre ici ?"

End Sub

2-J'ai une listbox, dans propriété;rowsource j'y ai placé un nom que j'ai définit (TousLesHabilités). Ce nom corespond a la formule =Règles!$A$3:$A$496 mais ...

Entre A3 et A496, c'est une zone ou l'information peux changer et ou il y a des cellule vide donc:

2.1-Comment faire en sorte que ma liste n'affiche pas les espaces blanc?

2.2-Ma liste se mettera t-elle a jour automatiquement si des donnés sont changer dans les cellule A3:A496?

Voila, j'aurai probablement plein d'autre question pour vous, mais se sera tout pour l'instant!

Merci d'avance a tous ceux qui pourront m'aider!

Peri

Salut le forum

Perigord pour la question #1

Sub RenommerUnOnglet()
Sheets("Fiche d'information").Copy After:=Sheets(Sheets.Count)
      Sheets(Sheets.Count).Name = Format(Sheets.Count - 2, "00000")
End Sub

Le -2 est à adapter.

Mytå

Merci Myta

Je suis tout nouveau dans se domaine:

-2 est a adapter en fonction de quoi ?

Peri

Edit: C'est bon, j'ai compris en testant ^^

Edit2: Deuxième quesiton Réglé!

Merci a tous!

Re bonjour a tous les forumeurs!

Mon problème a évoluer, je croyais qu'avec la réponse de Myta, j'arrivais a trouver la solution, mais rien a faire!

Je m'en remet donc encore une fois a vous!

J'ai trois onglet (feuille) principale: Fiche d'information, Fiche Personnage, Règles.

J'ai un userform avec des textbox et deux boutons créé:

Bouton1:

Private Sub CreaBoutCreer_Click()
Sheets("Fiche Personnage").Copy After:=Sheets(Sheets.Count)
     Sheets(Sheets.Count).Name = Format(Sheets.Count - 3, "00000")
   'CreaNom CreaPrenom CreaPersonnage CreaEmail CreaTelephone
        'Range("A1") = TextBox1
Range("D3") = CreaNom
Range("D4") = CreaPrenom
Range("M3") = CreaPersonnage
Range("D7") = CreaEmail
Range("E5") = CreaTelephone

    Unload Me
    USF_Ouverture.Show

Bouton2:

Private Sub InfoBoutCreer_Click()
Sheets("Fiche d'information").Copy After:=Sheets(Sheets.Count)
     Sheets(Sheets.Count).Name = Format(Sheets.Count + 69000, "00000")
'CreaNom CreaPrenom CreaPersonnage CreaEmail CreaTelephone
'Range("A1") = TextBox1
Range("D5") = InfoNom
Range("D6") = InfoPrenom
Range("L7") = InfoCode
Range("D9") = InfoEmail
Range("D7") = InfoTelephone

    Unload Me
    USF_Ouverture.Show
End Sub

Se que je veux arriver a faire:

Renommer les feuilles ''Fiche Personnage'' nouvellement créé avec un nombre de 00001 a 99999. La formule plus haut marche tant que je ne crée pas de ''Fiche d'information''.

Renommer les feuilles ''Fiche d'information'' nouvellement créé avec un ''i+nombre'' de i00001 a i99999

Et pour finir, reclassé le tout (Laissé les trois feuille Fiche d'information, Fiche Personnage et Règles aux début puis classé les fiche personnage puis les fiche d'information.

Merci a celui/celle/ceux qui prendront du temps pour me répondre.

Amicalement

Peri

Re le forum

Perigord pour créer tes feuilles (Adapte les noms)

Sub InfoBoutCreer_Click()
Dim No_Index As Long
Dim Feuille As Worksheet

For Each Feuille In Sheets
    If Feuille.Name Like "i#####" Then No_Index = No_Index + 1
Next Feuille

Sheets("Fiche2").Copy After:=Sheets(Sheets.Count)
     Sheets(Sheets.Count).Name = "i" & Format(No_Index + 1, "00000")

End Sub

Sub CreaBoutCreer_Click()
Dim No_Index As Long
Dim Feuille As Worksheet

For Each Feuille In Sheets
    If Feuille.Name Like "#####" Then No_Index = No_Index + 1
Next Feuille

Sheets("Fiche1").Copy After:=Sheets(Sheets.Count)
     Sheets(Sheets.Count).Name = Format(No_Index + 1, "00000")

End Sub

Pour le classement par ordre tu veux 00001, 00002 ensuite i00001, i00002

ou 00001, i00001 ensuite 00002, i00002

A te relire

Mytå

Re Myta.

Merci!!! Tu es génial!

Pour ta question:

00001, 00002 ensuite i00001, i00002 sans oublier que les trois premier onglet ne doivent pas bouger

Merci encore!

Peri

Re le forum

Perigord, pour le tri (Nom des feuilles à adapter)

Sub TriNomsOnglets()

  Dim I As Long, J As Long

  For I = 1 To Sheets.Count
    For J = I To Sheets.Count
      If UCase(Sheets(J).Name) < UCase(Sheets(I).Name) Then
        Sheets(J).Move Sheets(I)
      End If
    Next J
  Next I

    Sheets("Fiche1").Move Before:=Sheets(1)
    Sheets("Fiche2").Move Before:=Sheets(2)
    Sheets("Règle").Move Before:=Sheets(3)

End Sub

Mytå

Job Done!

Vous êtes les meilleurs ! Lachez pas ...je sais pas se que je ferais sans vous !

Merci!

11claim-exemple.xlsx (267.78 Ko)

Salut Myta, Bonjour le forum!

J'ai un problême qui est apparue avec le renommage des feuilles créés.

Le problême est apparut suite a quelque modification (J'ai masquer les feuilles en gros):

Private Sub CommandButton2_Click()
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim i As Integer

Application.ScreenUpdating = False

For i = 1 To Worksheets.Count
    Worksheets("Fiche Personnage").Visible = True
    If Worksheets(i).Name <> "Fiche Personnage" Then
    Worksheets(i).Visible = False
    End If
Next

End Sub
Private Sub CommandButton2_Click()
Dim i As Integer, verif As Boolean

  Application.ScreenUpdating = False

For i = 1 To Worksheets.Count
    Worksheets(i).Visible = True
    If Worksheets(i).Name = TextBox2.Text Then
        nom = TextBox2.Text
        verif = True
        GoTo suivant
    Else
        verif = False
If Worksheets(i).Name <> "Fiche Personnage" Then Worksheets(i).Visible = False

    End If
Next
suivant:
If verif = True Then
    Worksheets(nom).Select
Application.ScreenUpdating = True
    Unload Me
    USF_Ouverture.Show
Else
    MsgBox "Aucune fiche ne correspond à la recherche"
End If
Private Sub CommandButton1_Click()
Dim i As Integer, verif As Boolean

  Application.ScreenUpdating = False

For i = 1 To Worksheets.Count
    Worksheets(i).Visible = True
    If Worksheets(i).Name = TextBox1.Text Then
        nom = TextBox1.Text
        verif = True
        GoTo suivant
    Else
        verif = False
If Worksheets(i).Name <> "Fiche Personnage" Then Worksheets(i).Visible = False

    End If
Next
suivant:
If verif = True Then
    Worksheets(nom).Select
Application.ScreenUpdating = True
    Unload Me
    USF_Ouverture.Show
Else
    MsgBox "Aucune fiche ne correspond à la recherche"
End If
End Sub

Re le forum

Perigord, qu'elle est l'erreur retourner...

Déjà ton premier code ne peut fonctionner

Private Sub CommandButton2_Click() 
Private Sub Workbook_BeforeClose(Cancel As Boolean) 
Dim i As Integer

Une Sub évenementielle dans une autre Sub

A te relire

Mytå

Bonjour,

Cela ne génère pas d'erreur ... style fin ou déboguage, seulement, la nouvelle fiche créé s'appelle maintenant Fiche Personnage(2) au lieu de 00001:99999.

Le problème viens surement du fait quel es onglet sont masquer ... mais je n'arrive pas a résoudre le problème ... qui d'ailleurs, depuis que j'ai poster le précédant message m'en cause d'autre ...

Je laisse tomber pour l'instant se problème, remet tout mes onglet visible ... Je ré-évaluerai a la fin si cela en vaut la peine.

Sinon, dernier truc avant de re clôturer se topic:

Le bouton créé crée la feuille, la renomme puis reclasse les onglets. Comment faire pour qu'il re sélectionne la page nouvellement créé a la fin du processus ?

Désolé du désagrément.

Merci de tout cœur

Peri

re le forum

A la fin de ton tri, sans ton code complet essaye

Sheets(Format(No_Index + 1, "00000")).Select

ou

Sheets("i" & Format(No_Index + 1, "00000")).Select

Mytå

Job Done!

Merci 1000X Myta!

Peri

Rechercher des sujets similaires à "userform"