XL 2013 Tirage Paris une liste, remise à zéro quotidienne

Côme_p

XLDnaute Nouveau
Bonjour à tous,

Je suis nouveau sur ce forum et pour des raisons pro, j'ai besoin de créer la macro suivante, malheureusement avec mes connaissances en VBA je suis coincé.

J'ai des utilisateurs qui vont ouvrir un fichier Excel pour récupérer un login pour se connecter à une application :
J'ai une liste de 50 logins: user01,....,user50, il ne faut pas qu'ils aient le même login, chaque utilisateur va ouvrir le fichier.
J'aurais aimé avoir un bouton qui va donner user01 à la première personne qui va cliquer dessus, puis user02 à la deuxième personne qui va cliquer sur le bouton après nouvelle ouverture du fichier...etc jusqu'à 50 et une fois arrivé à 50 on revient à user01.

Et il faudrait que cette que la liste se réinitialise tous les jours pour repartir de user01

Est ce que vous auriez une idée du code possible ??

Merci

Côme
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Come,
Vous réservez une cellule XL dans laquelle vous mettez la date du jour, et dans ThisWorkbook vous mettez :
VB:
Private Sub Workbook_Open()
    If Range("A1") = Date Then
        MsgBox "Pas de changement"
    Else
        Range("A1") = Date
        MsgBox " Changement de date effectué"
    End If
End Sub
En remplaçant les deux Msgbox par l'action que vous voulez faire.
A noter que ça marche que si les User enregistre le fichier quand ils quittent, ou que vous l'enregistriez avec un Workbook_Close.
Mais le problème est le même quelle que soit la solution retenue.
 

Côme_p

XLDnaute Nouveau
Merci sylvanu, je comprends que cela va me servir pour la réinitialisation quotidienne !

Et est ce que vous avez une idée pour la distribution des logins un par un à partir d'une liste (une fois qu'un a été donné, le suivant est donné à la prochaine ouverture du fichier) ?

Merci pour votre aise
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Une idée d'implémentation en PJ avec :
VB:
Private Sub Workbook_Open()
    Sheets("T").Unprotect                                           ' Déprotection de la feuille
    If [A2] <> Date Then                                            ' Si ce n'est pas la date du jour
        [A2] = Date                                                 ' On remet le fichier à jour avec la date d'aujourdhui
        [B2] = 0                                                    ' On réinitialise le pointeur de login
    End If
    [B2] = [B2] + 1                                                 ' On incrémente le pointeur de login
    If [B2] = 51 Then [B2] = 1                                      ' Si celui ci est 51 il revient à 1
    Sheets("T").Protect                                             ' On reprotège la feuille
    MsgBox "Votre login pour ce jour est  :  " & Cells([B2], "L")   ' On délivre le login à l'utilisateur
    ActiveWorkbook.Save                                             ' On sauvegarde le fichier
    ActiveWorkbook.Close False                                      ' On ferme le fichier
End Sub
Important ! Le fichier s'autogère et se ferme automatiquement.
Donc pour accéder au VBA ou au fichier il faut interdire les macros. :)
Avec Options/Centre de gestion/Désactiver les macros.
Cette sécurité ( très légère ) interdit à l'utilisateur lambda de bidouiller le fichier de login.
Si l'option vous dérange, supprimer la ligne "ActiveWorkbook.Close False"
 

Pièces jointes

  • Login.xlsm
    12.2 KB · Affichages: 13

Discussions similaires

Statistiques des forums

Discussions
312 389
Messages
2 087 933
Membres
103 678
dernier inscrit
bibitm