Réaliser une activation de feuille sur VBA

golock91 Messages postés 1 Statut Membre -  
pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

J'aurais besoin d'un coup de main pour réaliser une box sur excel
J'ai un fichier excel avec en page 1 une liste de noms
Ensuite il y a autant de pages que de noms
Quand j'entre le nombre d'heures réalisées par Mr X sur la page de Mr X, automatiquement, le nombre d'heures est ajouté à Mr X en page récapitulative, jusqu'ici assez simple
Ce que je voudrais faire c'est qu'au moment ou j'ouvre excel, en appuyant sur un bouton, une box s'ouvre et me demande le nom de la personne (si possible en tapant les 3 premières lettres j'ai tous les noms commençant par ces lettres qui s'affichent) et qu'une fois le nom sélectionné, sa page s'ouvre automatiquement.

Ceci me permettrait de ne pas chercher à chaque fois la bonne feuille car il y a pas mal de noms.

Merci d'avance
Je peux vous envoyer le fichier par mail si besoin




A voir également:

1 réponse

pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 768
 
Bonjour,
Sous VBA, créer un UserForm (Insertion / Userform sous vbe) appelé userForm1.
Dans cet Userform, dessiner un textBox appelé : ZtxtNOMS et une listbox appelée : ListboxNOMS.
Appeler = propriété "Name" de chaque contrôle
Dessiner un bouton de commande appelé : CommandButton1 avec en propriété "caption" : Go (ou ce que vous voulez)...

D'après un exemple de Michel_m :
Le code de l'Userform :

Option Explicit

Private Sub CommandButton1_Click()
If ListboxNOMS.ListIndex = -1 Then
    MsgBox "Veuillez sélectionner un nom dans la liste. Merci."
    Exit Sub
End If
Sheets(ListboxNOMS.List(ListboxNOMS.ListIndex)).Activate
UserForm2.Hide
End Sub

Private Sub ZtxtNOMS_Change()
'cf : https://forums.commentcamarche.net/forum/affich-14847865-recherche-semi-auto-dans-excel
Dim Tablo
Dim lettre As String, test As String
Dim cptr As Integer, cptr_tablo As Integer, derLig As Integer

lettre = UCase(ZtxtNOMS.Value)
If lettre = "" Then Exit Sub
ReDim Tablo(0)
ListboxNOMS.Clear
derLig = Sheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row
With Sheets("Feuil1")
    For cptr = 1 To derLig
        test = .Cells(cptr, 1)
         If .Cells(cptr, 1) Like lettre & "*" Then
            Tablo(cptr_tablo) = .Cells(cptr, 1)
            cptr_tablo = cptr_tablo + 1
            ReDim Preserve Tablo(cptr_tablo)
        End If
Next
End With
For cptr_tablo = LBound(Tablo) To UBound(Tablo)
    ListboxNOMS.AddItem Tablo(cptr_tablo)
Next
End Sub


Le fichier exemple sisi c'est gratuit, ça fait plaisir!
0