Bug sur code VBA

Bonjour,

sur l'onglet 3 de mon formulaire lorsque je clique sur valider excel affiche une fenêtre erreur d'exécution.

je n'ai aucun problème sur les 3 autres onglets. ça se traduit par la non récupération des champs niveau et date dans la base de donnée.

le code en cause est (ligne en gras) :

Sub Addme()

'Procédure permettant de rajouter les données du formuliare dansle fichier data.

Set NextRow = Sheets("Data").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)

For X = 1 To Cnum

NextRow = Me.Controls(Ref & X).Value 'on récupère les valeurs des controls

Set NextRow = NextRow.Offset(0, 1) 'on les insère dans les colonnes.

Next X

Merci d'avance pour votre aide

Le forum,

Il y a une erreur avec E3rg3 qui devrait se nommer E3reg3.

Jim

Merci! j'avais pourtant vérifié mais je ne l'ai pas vu

Bonne journée

cordialement

Bonjour,

le paramètre attendu dans me.Controls() est soit l'indice du contrôle (1 à N), soit son nom.

Dans ton exemple je ne vois pas où Ref est défini.

J'ai écrit une fonction, en m'inspirant de ce que tu as fait, et surtout en fonction du résultat que tu attends, qui intègre sur l'onglet DATA les zones de texte d'un formulaire, nommées INFO1 à INFO4

Tu peux t'en inspirer: (procédure appelée par un bouton du formulaire)

Sub Addme()
'Procédure permettant de rajouter les données du formulaire dans le fichier data.
Dim NextRow As Range 'Variable objet qui pointe sur la cellule courante
Dim X As Long
Dim Cnum As Integer 'Compteur pour les champs à ajouter sur DATA
'Je les ai nommés INFO1 à INFO4 dans mon test
'1ère cellule vide de la colonne A de l'onglet DATA
Set NextRow = Sheets("Data").Cells(65535, 1).End(xlUp).Offset(1, 0)
'initialisation du compteur pour INFO1 à INFO4
Cnum = 0
'Boucle qui parcourt tous les contrôles du formulaire
For X = 0 To Me.Controls.Count - 1
    'Ne retenir que les contrôles dont le nom commence par INFO
    If Left(Me.Controls(X).Name, 4) = "INFO" Then
        Cnum = Cnum + 1
        'Affecte la valeur du contrôle en cours à la cellule en cours
        NextRow.Value = Me.Controls("INFO" & Cnum).Value
        'Passe à la cellule de la colonne suivante, même ligne
        Set NextRow = NextRow.Offset(0, 1) 'on les insère dans les colonnes.
    End If
Next X
End Sub

Cordialement,

Merci GNIN

Cordialement

Rechercher des sujets similaires à "bug code vba"