Créer un logiciel de présence

et comment fait-on pour mettre un mdp sur les macros ?

Vous allez dans l'editeur VBA, menu Outils --> Propriété de VBA project --> Onglet Protection
Mais ne l'oubliez pas ce mot de passe sans quoi vous perdez tout
Donc ne faites pas cela maintenant mais une fois tout terminé

Es-ce possible de faire en sorte que, par exemple, seul l'admin puisse voir l'onglet GESTION ACCES et que "aucun" ne puisse pas le voir ?

Je regarde ce point là

Déjà lorsque vous allez fermer le fichier vous pouvez mettre ce code

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim sh As Worksheet
For Each sh In Sheets
    If sh.CodeName <> "PRINCIPALE" Then sh.Visible = 2
Next sh
End Sub

Edit :
En entete de chaque module ajoutez cette instruction --> Option Private Module
Donc en première ligne, juste avant toutes les macros de chaque module

JAI UN ENORME SOUCIS :

après avoir copié votre code, je ne vois plus mes onglets même en étant connecté comme admin !!!

Mais non il n'y a pas de soucis. Disons que je n'aurais pas dû vous donner le code Before close de suite
Mais vous pouvez le désactiver en mettant une apostrophe devant toutes les lignes

Vous pouvez faire ceci déjà :

- Allez dans l'USF
- remplacez le code Valider par celui ci-dessous

Private Sub CommandButton_Valider_Click()
Dim dcol As Byte, i As Byte

Range("utilisateur") = TextBox_utilisateur

If TextBox_utilisateur = vbNullString Then Exit Sub

dcol = Feuil4.Cells(4, Feuil4.Cells.Columns.Count).End(xlToLeft).Column

For i = 4 To dcol
    If Feuil4.Cells(5, i) = TextBox_motPasse.Value And Feuil4.Cells(4, i) = TextBox_utilisateur.Value Then
        Call affiche
        Unload Me
        Exit Sub
    End If
Next i

MsgBox "Mot de passe ou utilisateur inconnu !", vbCritical, "Erreur accès"
Range("utilisateur") = "aucun"
TextBox_utilisateur = vbNullString
TextBox_motPasse = vbNullString
End Sub

- ensuite ajoutez ce code

Private Sub affiche()
Dim cel As Range

For Each cel In Range("rubriques")
    If UCase(cel.Offset(0, 1)) = "VRAI" Then Sheets(cel.Value).Visible = -1
Next cel
End Sub

une fois fait on passera à la suite

NB : il faudrait supprimer vos deux formules en H8 et H10 de la feuille Enregistrement

c'est fait merci beaucoup, mais si je change de compte, les onglets restent affichés

est-il aussi possible de bloquer la modification des cellules daans enregistrement (sauf celles à modifier) !

Les mots de passe ne fonctionnent plus : avec nimporte quel compte, je peuxfaire nimporte quoi !

Les mots de passe ne fonctionnent plus : avec nimporte quel compte, je peuxfaire nimporte quoi !

expliquez ce que vous voulez faire plutot que me dire que cela ne fonctionne pas

c'est fait merci beaucoup, mais si je change de compte, les onglets restent affichés

Oui normal, faut avancer pas à pas. Je ne connais pas tout votre mode de foncitonnement

1. Dans l'USF remplacez le code que je vous ai donné par celui ci-dessous

Private Sub affiche()
Dim cel As Range

On Error Resume Next
For Each cel In Range("rubriques")
    If UCase(cel.Offset(0, 1)) = "VRAI" Then
        Sheets(cel.Value).Visible = -1
    Else: Sheets(cel.Value).Visible = 2
    End If
Next cel
End Sub

2. Allez dans Thisworkbook et désactivez le code --> Private Sub Workbook_SheetActivate(ByVal sh As Object).
Pour désactiver mettre une apostrophe devant toute les lignes des codes


est-il aussi possible de bloquer la modification des cellules daans enregistrement (sauf celles à modifier) !

Pour faire cela :

- Sélectionnez les cellules modifiables dans la feuille
- Allez dans la menu Accueil --> Format --> Format de cellule --> Onglet Protection
- Décochez la case "Verrouillée"
- Après vous devrez protéger la feuille en question


Un point à préciser. dans la feuille Bienvenue, vous avez un bouton Deconnecter.
Le click sur ce bouton doit faire quoi au niveau des feuilles ?

En cliquant sur le bouton deconnecter, il faudrait que l'utilisateuur passa sur "aucun" et que donc on ai accès plus qu'à cette feuille et que tous les autres onglets disparaissent !

re

Merci de me dire si ce que je vous donne fonctionne aussi


En cliquant sur le bouton deconnecter, il faudrait que l'utilisateuur passa sur "aucun" et que donc on ai accès plus qu'à cette feuille et que tous les autres onglets disparaissent !

Ok là on va devoir faire des changements dans le fichier.

1. Allez dans Thisworbook et remplacez le code ci-dessous

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call masquer
End Sub

2. Dans le module 1, mettez remplacez le code deconnecter par celui ci-dessous

Sub deconnecter()
Range("utilisateur") = "aucun"
Call masquer
MsgBox "Vous avez été deconnecté avec succès !", vbInformation, "Deconnexion"
End Sub

3. Toujours dans le module 1 (ou le 2 si vous voulez), ajoutez ce code

Sub masquer()
Dim sh As Worksheet
For Each sh In Sheets
    If sh.CodeName <> "PRINCIPALE" Then sh.Visible = 2
Next sh
End Sub

Faites un test et dites-moi


NB : Une chose à faire dans la feuille Bienvenue

- Défusionner les lignes 7 et 8 et colonnes D et E
- Elargir la colonne B
- En C7 mettre cette formule --> =MAJUSCULE(utilisateur)
- Supprimez la formule en colonne Q

cela marche à merveille, merci beaucoup
Petit détail (je sais que je suis embêtant), est-ce possible de faire en sorte que, dans le formulaire de connexion, le mot de passe s'affiche avec des points lorsqu'on le tape (pour eviter les regard indiscrets)

Merci par avance et mille merci pour le travail déjà effectué !

Petit détail (je sais que je suis embêtant), est-ce possible de faire en sorte que, dans le formulaire de connexion, le mot de passe s'affiche avec des points lorsqu'on le tape (pour eviter les regard indiscrets)

Non vous n'êtes pas embêtant. Il est normal de poser des questions pour comprendre et avancer au mieux
Pour ne pas afficher le mot de passe
- Allez dans l'usf
- sélectionnez la textbox mot de passe
- allez dans les propriétés de la texbox à la propriété "Passewordchar"
- dans la rubrique mettez --> *

Rem : Je suppose que vous l'avez fait mais juste à titre de rappel, oubliez pas de mettre "Option private module" en première ligne de chaque module


est-il possible d'écrire plus gros dans les cases du formulaire d'inscription ?

et centré dans la case ?

et aussi de faire en sorte que l'utilisateur ne puisse pas acceder au ruban, à tous ce qui pourrait planter mon excel ?

en outre, toutes les feuilles aparaisssent pour tout le monde (quel que soit l'utilisateur)!

est-il possible d'écrire plus gros dans les cases du formulaire d'inscription ?
et centré dans la case ?

Heu là vous pouvez faire cela manuellement dans le menu Accueil

en outre, toutes les feuilles aparaisssent pour tout le monde (quel que soit l'utilisateur)!

Heu ben là on doit tout changer !
Dans votre feuille Gestion accès, cela ne sert plus à rien de mettre de VRAI en colonne B alors.
je ne vois pas l'utilité de montrer vos feuilles si les personnes n'y ont pas accès. Le plus simple via VBA et sécurisant est de masquer ce qui ne peut être vu selon le login

et aussi de faire en sorte que l'utilisateur ne puisse pas acceder au ruban, à tous ce qui pourrait planter mon excel ?

Là c'est moins simple à faire. Je dois voir car la fonction ESC sur votre clavier peut remettre tout à 0
Quelles sont les fonctionnalités que l'utilisateur ne peut pas changer ?

Il y a aussi la protection des feuilles que l'on peut envisager.

pour le problème des feuilles qui aparaissent, c'étatit que la protection des feuilles empechaient de les masquer donc ce poblème est réglé

par contre, pour le bproblème d'écriture, je parle du formulaire VBA, est-ce possible d'écrire plus gros dans la case Utilisatueur et dans la case MDP ?

par contre, pour le bproblème d'écriture, je parle du formulaire VBA, est-ce possible d'écrire plus gros dans la case Utilisatueur et dans la case MDP ?

Oui bien sûr. Vous devez allez dans l'USF et sélectionnez la textbox concernée
Ensuite allez dans les propriétés de l'objet à la propriété FONT.
Là vous pouvez choisir la taille, type de police

merci, c'est parfait, et pour la sécurité, est-ce possible de faire en sorte que s'affiche pas la barre de données, le ruban, les entêtes, etc... AUTOMATIQUEMENT

est-ce possible de faire en sorte que s'affiche pas la barre de données, le ruban, les entêtes, etc... AUTOMATIQUEMENT

Oui mais je dois à quel moment vous voulez faire cette action

Rechercher des sujets similaires à "creer logiciel presence"