Rechercher une valeur variable dans le nom des onglets

Résolu
titi17-08 Messages postés 123 Statut Membre -  
titi17-08 Messages postés 123 Statut Membre -
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. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    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
  2. titi17-08 Messages postés 123 Statut Membre 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