Rechercher une valeur variable dans le nom des onglets

Résolu
Bonjour Le forum,
mon petit souci :
Dans mon fichier ,
chaque onglet contient le mois et l'année ex Aout 21
dans un userform, je souhaiterais quand je valide que mon code retrouve le mois (variable remplie dans mon useform) correspondant, qu'il active l'onglet et après d'autres actions ( dont je connais le code)
je vous remercie pour votre aide.
belle journée a vous

3 réponses

  1. Contributeur
    Bonjour,

    mettre une ListBox dans l'UserForm avec ce code:

    Option Explicit
    Private Sub ListBox1_Click()
    If ListBox1.ListIndex = -1 Then Exit Sub
     Sheets(ListBox1.List(ListBox1.ListIndex)).Select
    End Sub
    Private Sub UserForm_Initialize()
    'Déclare la variable objet Worksheet
    Dim Ws As Worksheet
    'Boucle sur toutes les feuille de calcul du classeur. Les onglets graphiques ne sont pas pris
    'en compte.
    'ThisWorkbook correspond à l'objet classeur contenant la macro
    For Each Ws In ThisWorkbook.Worksheets
        'Renvoie le nom de chaque feuille
        ListBox1.AddItem (Ws.Name)
    Next Ws
    End Sub
    


    l'activation de la feuille se fait au clic correspondant dans la Listbox

    https://silkyroad.developpez.com/VBA/ControlesUserForm/#LII-G

    0
    1. Bonsoir,
      Je me suis peut etre mal exprimé
      dans mon useform:
      j'ai un liste des mois
      quand je valide mon useform il doit retrouver la feuille correspondant au mois dans le userform.
      et le selectionne voici mon code:
      Private Sub VALIDER_Contrat_Click()
      Dim nomf As String
      Dim sh As Worksheet
      nomf = Debut_Contrat_M.Value ' nom de la feuille a selectionner
      For Each sh In Sheets
      If Left(.Value, 8) = nomf.Value Then
      Sheets(nomf).Select

      Range("A7" & Range("A26").End(xlUp).Row + 1).Select
      Range(0, 3).Value = Nom_Freelance.Value
      Range(0, 4).Value = Prenom_Freelance.Value
      Range(0, 5).Value = Tel_Freelance.Value
      Range(0, 6).Value = Statut_Freelance.Value
      Range(0, 11).Value = Nb_jours.Value
      Range(0, 12).Value = TJM_Achat.Value
      Range(0, 13).Value = TJm_Contrat.Value
      Range(0, 14).Value = TJM_Vente.Value
      Range(0, 16).Value = Effort.Value
      Range(0, 18).Value = Duree_Contrat.Value
      Range(0, 20).Value = Nb_jours.Value
      Range(0, 23).Value = Debut_Contrat_J.Value & "/" & Debut_Contrat_M.Value & "/" & Debut_Contrat_A.Value
      End If
      Next sh
      End Sub

      je vous remercie par avance
      titi
      0