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    '***