cathodique
XLDnaute Barbatruc
Bonjour,
Afin de m'initier aux modules de classe, j'ai recherché sur le net des exemples assez simple.
Au fil de mes recherches, je suis tombé sur une vidéo sur youtube.
Je l'ai visionné tout en reprenant sur un fichier toutes les étapes. Le monsieur a proposé 2 codes pour saisir ID, Nom et prenom. le but du premier est d'évité à l’utilisateur de saisir des ID en double (via inputbox), ceci pour le 1er code.
Pour le second, qui plante chez moi, évite aussi à l’utilisateur de saisir aussi en double nom et prenom (un message avertit et donne l'ID de la personne). Je voudrai savoir pourquoi la ligne repérée par 3 astérisques plante (propriété ou méthode non gérée par cet objet).
J'ai trouvé que son utilisation était assez contraignante pour un utilisateur. En effet, à l'ouverture de l'inpubox, il faut mettre "y" pour continuer, ensuite saisir l'id et valider, ensuite saisir le nom et valider, ensuite saisir prenom et valider puis si on veut insérer une autre personne répondre par "y" ou "n" pour que le processus s'arrête.
Je voudrais remplacer l'inputbox par un userform. Dans lequel l'id est automatisé (partie réalisée), reste code pour vérifier que pa personne existe ou non.
Je suis un peu dérouté le code plante
En vous remerciant.
Afin de m'initier aux modules de classe, j'ai recherché sur le net des exemples assez simple.
Au fil de mes recherches, je suis tombé sur une vidéo sur youtube.
Je l'ai visionné tout en reprenant sur un fichier toutes les étapes. Le monsieur a proposé 2 codes pour saisir ID, Nom et prenom. le but du premier est d'évité à l’utilisateur de saisir des ID en double (via inputbox), ceci pour le 1er code.
Pour le second, qui plante chez moi, évite aussi à l’utilisateur de saisir aussi en double nom et prenom (un message avertit et donne l'ID de la personne). Je voudrai savoir pourquoi la ligne repérée par 3 astérisques plante (propriété ou méthode non gérée par cet objet).
J'ai trouvé que son utilisation était assez contraignante pour un utilisateur. En effet, à l'ouverture de l'inpubox, il faut mettre "y" pour continuer, ensuite saisir l'id et valider, ensuite saisir le nom et valider, ensuite saisir prenom et valider puis si on veut insérer une autre personne répondre par "y" ou "n" pour que le processus s'arrête.
Je voudrais remplacer l'inputbox par un userform. Dans lequel l'id est automatisé (partie réalisée), reste code pour vérifier que pa personne existe ou non.
Je suis un peu dérouté le code plante
VB:
Sub addEmployee2()
'Procedure plante sur la ligne avec asterisques ***
'erreur: propriété ou méthode non gérée par cet objet
''''''''''''''''''''''''''''''''''''''''''''''''''''''
Dim colEmployees As New Collection
Dim recEmployee As New ClsEmployee
Dim erow As Long
Dim answer As String
Dim foundID As Boolean
Dim r As Long
Do
answer = InputBox("Do you wish to enter a new record?Please enter y or n only!")
If answer = "n" Then Exit Sub
erow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
recEmployee.ID = InputBox("Enter Employee ID")
If ActiveSheet.Range("A1").Resize*(erow - 1, 1).Find(what:=recEmployee.ID, LookAt:=xlWhole) Is Nothing Then '***
recEmployee.FirstName = InputBox("Enter First Name")
recEmployee.LastName = InputBox("Enter Last Name")
foundID = 0
For r = 1 To erow - 1
If Cells(r, 2) = recEmployee.FirstName And Cells(r, 3) = recEmployee.LastName Then
foundID = Cells(r, 1)
Exit For
End If
Next r
If foundID = 0 Then
Cells(erow, 1) = recEmployee.ID
Cells(erow, 2) = recEmployee.FirstName
Cells(erow, 3) = recEmployee.LastName
colEmployees.Add recEmployee, recEmployee.ID
Else
MsgBox "Person " & recEmployee.FirstName & " " & recEmployee.LastName & " does already exist (with ID=" & foundID & ")"
End If
Else
MsgBox "ID " & recEmployee.ID & " is already used. Please use a new ID!", vbInformation
End If
Loop
End Sub
Code:
If ActiveSheet.Range("A1").Resize*(erow - 1, 1).Find(what:=recEmployee.ID, LookAt:=xlWhole) Is Nothing Then '***