Private Sub Valider_Click()
With Sheets("EQUIPE")
If Application.CountIf(.[C:C], Identifiant) > 0 Then ' Cas identifiant existe
MsgBox "L'dentifiant existe" ' Mettre ici code quand l'identifiant est bon
Else
MsgBox "L'dentifiant est inconnu" ' Mettre ici code quand l'identifiant est incorrect
End If
Unload Connexion
End With
End Sub
Private Sub Valider_Click()
With Sheets("EQUIPE")
If Application.CountIf(.[A:A], Nom) > 0 Then ' Cas du "déjà inscrit"
MsgBox "Vous êtes déjà inscrit."
Exit Sub
End If
DL = 1 + Range("A65500").End(xlUp).Row ' Première ligne vide de la liste des noms.
.Cells(DL, "A") = Nom
.Cells(DL, "B") = Prenom
.Cells(DL, "C") = Matricule
Unload Inscription
End With
End Sub
Merci beaucoup !Bonjour Pauuul, et bienvenu sur XLD,
Il manque pas mal de chose et je n'ai pas tout compris. Mais au moins pour vous dépatouiller :
Validation inscription :
Validation inscription :VB:Private Sub Valider_Click() With Sheets("EQUIPE") If Application.CountIf(.[C:C], Identifiant) > 0 Then ' Cas identifiant existe MsgBox "L'dentifiant existe" ' Mettre ici code quand l'identifiant est bon Else MsgBox "L'dentifiant est inconnu" ' Mettre ici code quand l'identifiant est incorrect End If Unload Connexion End With End Sub
C'est évidemment incomplet mais ne génère pas d'erreur et enregistre bien les nouveaux venus.Code:Private Sub Valider_Click() With Sheets("EQUIPE") If Application.CountIf(.[A:A], Nom) > 0 Then ' Cas du "déjà inscrit" MsgBox "Vous êtes déjà inscrit." Exit Sub End If DL = 1 + Range("A65500").End(xlUp).Row ' Première ligne vide de la liste des noms. .Cells(DL, "A") = Nom .Cells(DL, "B") = Prenom .Cells(DL, "C") = Matricule Unload Inscription End With End Sub
NB: La mise en commentaire c'est l'apostrophe.
Bonjour Vgendron !Hello
1er conseil: utiliser les tables structurées (j'en ai créé une: "Tab_Users")
voir code pour son utilisation dans le bouton "Valider"
Private Sub Valider_Click()
With Sheets("EQUIPE").ListObjects("Tab_Users")
If Application.CountIf(.ListColumns("Matricule").Range, Matricule) > 0 Then ' Cas du MATRICULE "déjà inscrit"
MsgBox "Vous êtes déjà inscrit."
Else
.ListRows.Add
LastLine = .ListRows.Count
.ListColumns("NOM").DataBodyRange(LastLine) = Me.Nom
.ListColumns("Prénom").DataBodyRange(LastLine) = Me.Prenom
.ListColumns("Matricule").DataBodyRange(LastLine) = Me.Matricule
End If
End With
End Sub
Oui, je m'inspire de vos conseils a tout les deux pour pouvoir atteindre mon objectif (merci a vous deux).Hello
pour le control d'un matricule déjà existant, tu as bien récupéré la ligne de code de Sylvanu (que je salue au passage également)
je l'ai juste modifié pour faire référence au nom de la colonne "Matricule" plutot que C:C
l'avantage:
1) je trouve qu'on voit tout de suite sur quelle colonne on travaille
2) si tu déplace la colonne dans le tableau.. le code ne change pas. alors que C:C devrait etre adapté
VB:Private Sub Valider_Click() With Sheets("EQUIPE").ListObjects("Tab_Users") If Application.CountIf(.ListColumns("Matricule").Range, Matricule) > 0 Then ' Cas du MATRICULE "déjà inscrit" MsgBox "Vous êtes déjà inscrit." Else .ListRows.Add LastLine = .ListRows.Count .ListColumns("NOM").DataBodyRange(LastLine) = Me.Nom .ListColumns("Prénom").DataBodyRange(LastLine) = Me.Prenom .ListColumns("Matricule").DataBodyRange(LastLine) = Me.Matricule End If End With End Sub
pour sauvegarder l'utilisateur actif, suffirait d'ajouter une variable globale "ActifUser"
mais. en fait, ca dépend de ce que tu veux faire ensuite
PS: j'ai vu que tu avais remis les "bascules" entre les deux formulaires
à mon avis il te manque une ou des conditions
ex: l'utilsateur veut faire une nouvelle inscription.. si il annule, il se retrouve automatiquemennt sur la connexion.., mais ca. c'est du "facing"
Private Sub Valider_Click()
With Sheets("EQUIPE").ListObjects("Tab_Users")
If Application.CountIf(.ListColumns("Matricule").Range, Matricule) Then
MsgBox "L'identifiant existe" ' Mettre ici code quand l'identifiant est bon
Connexion.Hide
Inscription.Hide
Else
MsgBox "L'identifiant est inconnu" ' Mettre ici code quand l'identifiant est incorrect
Inscription.Show
Connexion.Hide
End If
Unload Connexion
Unload Inscription
End With
End Sub
Merci pour ces commentaires j'ai désormais compris ce que tu m'expliquais ! (Et merci du temps que tu m'accordes pour m'aider à m'améliorer dans le domaine !)Voir en PJ une version commentée et qui évite tous les formulaire.hide ou .show et ainsi les basculement "intempestifs"..
voir les commentaires pour comprendre la logique
à partir de la feuille, tu as tes deux boutons
le bouton enregistrement permet de saisir un nouvel utilisateur. et c'est tout...==> Inscription et retour sur la feuille
le bouton Connexion:
1) saisie d'un matricule
==> s'il existe==> bouton Demarre dispo
==> s'il n'existe pas==> soit erreur de saisie==> utilisateur modifie sa saisie
==> soit c'est un nouveau matricule ===> le lien est actif pour pouvoir enregistrer
une fois l'enregistrement effectué, retour au formulaire de connexion sur lequel le bouton Demarrer est maintenant dispo..
Merci encore ! J'ai apporté les modifications pour ne faire qu'apparaitre que le prénom et le nom de l'utilisateur actif.il suffit de mettre l'info dans la feuille
Concernant l'utilisation du .Hide, j'avais complétement oublié d'apporter les modifications que tu m'avais conseillé !Bonjour
pour ne pas basculer sur la feuille Equipe;. il suffit de ne pas l'activer quand tu fais ta recherche de matricule pour récupérer nom et prénom
et autre, chose: pourquoi persistes tu à remettre systématiquement les formulaire.hide ??
cacher un formulaire qui n'a pas été affiché. c'est quoi l'intérêt?? à part s'exposer à un bug ?
pour le bouton de service: définis ton formulaire avec des combobox alimentés par des listes
et pour la suite... une fois que tu auras choisi le service et poste. tu feras autre chose??