VBA - Message d'erreur lié à la méthode ou des données introuvables

Bonsoir tout le monde.

Ultra novice ne VBA, je reçois systématiquement le message "membre de méthode ou de données introuvables".

Voici le code et l'élément pour lequel je reçois une erreur

Sub age()

'

' age Macro

'

' Touche de raccourci du clavier: Ctrl+g

'

effacement

Dim datenais As Date

Cells(1, 1) = "Nom"

Cells(1, 2) = "Date naissance"

Cells(1, 3) = "Age"

Cells(1, 4) = "Status"

Cells(1, 5) = "Genre"

n = InputBox("Pour combien de personnes désirez-vous calculer l'âge ?")

For i = 2 To 5

Userformage.Show

Cells(i, 1) = Userformage.Nom.Text

datenais = Userformage.datenais.Text

Cells(i, 2) = datenais

Cells(i, 5) = Userformage.Genre.Text

Cells(i, 3) = fctage(datenais)

Select Case Cells(i, 3)

Case Is > 65

Cells(i, 4) = "Pensionné"

c = c + 1

a = a + Cells(i + 3)

Case 2 To 18

Cells(i, 4) = "A l'école"

Case Else

Cells(i, 4) = "En activité"

End Select

If Max = 0 Or Cells(i, 3) > Max Then

Max = Cells(i, 3)

End If

If Min = 0 Or Cells(i, 3) < Min Then

Min = Cells(i, 3)

nommin = Cells(1, 1)

End If

Unload Userformage

Next i

adjust

End Sub

J'ai beau chercher sur les forums, je ne parviens pas à trouver d'où vient mon erreur. Est-ce que quelqu'un pourrait m'aider à y voir plus clair s'il vous plaît ? Merci

Salut oufti,

oufti valèt, mais tout ceci devrait être traité DANS l'Userform :

    Cells(i, 1) = Userformage.Nom.Text
    datenais = Userformage.datenais.Text
    Cells(i, 2) = datenais
    Cells(i, 5) = Userformage.Genre.Text
    Cells(i, 3) = fctage(datenais)

Essaye de corriger en adressant directement ces cellules depuis l'Userform.

Quant à la boucle du nombre de cas à calculer, envoie ton fichier ET l'Userform.

A+

Bonsoir, Re Curulis !

Tu ne donnes pas suffisamment d'informations pour que l'on puisse détecter d'où vient cette erreur. Tu ne précises même pas où elle se manifeste, et ne fournit aucun fichier... Te fournir une réponse juste relèverait du hasard ou de la divination...

Par contre tu nous infliges un fragment de code sans le mettre sous balises Code (ce qui est le minimum de déférence qu'on est en droit d'attendre de façon à pouvoir lire avec un minimum de confort... Intéresse-toi au bouton </> qui permet de mettre le code sous balises, et veille à le faire systématiquement, on t'en sauras gré).

Code qui de plus est non indenté (lorsqu'il l'est la mise sous balises conserve l'indentation) et un code bien indenté est lu facilement, contrairement à du code non indenté...

Je note aussi qu'à part une toutes tes variables ne sont pas déclarées... Je conseille de déclarer toutes ses variables, et toujours en tête de procédure.

Toutes tes expressions de type Cells... ne sont pas qualifiées, c'est à dire qu'elle ne réfèrent pas explicitement à la feuille dans laquelle elle se trouve, se qui altère la fiabilité du code et ralentit son exécution...

Tu as des répétition qui devraient être évitées par l'utilisation d'une instruction With... End With, qui outre l'économie d'écriture qu'elle procure est un facteur d'accélération de l'exécution. A utiliser sans restriction.

Je ne suivrai pas par contre le conseil de Curulis en ce qui concerne le renvoi au niveau du Userform des affectations réalisées... Je pense au contraire que c'est un aspect positif de ton code ce traitement en boucle par la procédure appelante, qui est une technique éprouvée et même celle qui était le plus recommandée autrefois lors de l'utilisation d'un Userform.

Evidemment, cela suppose que tu n'aies pas déchargé (Unload) le Userform en le quittant lors de la validation de la saisie, mais seulement masqué (Hide), sans quoi ton erreur s'expliquerait d'elle-même, si le Userform n'est plus, plus moyen d'accéder aux valeurs qui auront disparues de la mémoire. Je suppose que tu l'as vérifié, mais au cas où, il faut voir ça sans délai.

Je trouve moins élégant d'Unloader le Userform en fin de boucle, il aurait été plus judicieux d'effacer les contrôles avant de le réafficher, ce qui aurait pu d'ailleurs s'avérer plus rapide...

Pour le reste, on ne voit que des appels de procédures dont on ne connait pas le code, et on ne connait pas non plus le contexte en l'absence de fichier...

Cordialement.

Rechercher des sujets similaires à "vba message erreur lie methode donnees introuvables"