Modifier nombre d'entrées dans un UserForm (5 à 3)

Bonjour à tous,

Cet UserForm ci-joint trouvé sur le forum correspondait très bien à mes attentes pour le premier fichier xlsm avec macro que j'ai réalisé.

par contre je dois en réaliser un autre avec seulement trois paramètres à rentrer dans le fichier (Nom-Note QCM1 et Note QCM2) . Et cet UserForm en contient 5.

J'ai essayé depuis cet A.M de modifier le code pour qu'ils correspondent à mes trois entrées. Mais étant très novice en VBA, j'obtiens des erreurs si je supprime les TextBOx 3 et 4, j'ai essayé de changer les valeurs de x dans le code, des fois je me rapproche du résultats mais là c'est la recherche le la modifications qui ne fonctionnent plus.

Si une bonne âme et plus compétent que moi, de ce forum, pouvait m'adapter le code pour seulement trois entrées et non 5

En vous remerciant par avance.

Bonne soirée.

Re,

J'avais oublié d'enlever une macro dans le fichier.

Merci

Bonjour

A tester

Fait avec ton premier fichier

Bonsoir Banzai64.

Que dire, rapidité, efficacité. Dingue quand je vois le temps où j'ai essayé de "bidouiller" le code.

3 questions sur ce forum : déjà deux excellentes réponses de ta part.

Merci beaucoup

Bonne soirée

Bonjour fred29.

Bon vu que Banzai64 a été carrément plus rapide que moi, voilà quand même quelques explications si cela t'intéresse

La première partie qui plante est la suivante:

Private Sub obG1()
UserForm1.Frame1.Visible = UserForm1.OptionButton2.Value
If Me.OptionButton1.Value = True Then
    For x = 1 To 5
        Me.Controls("TextBox" & x).Value = ""
    Next x
    Me.TextBox1.SetFocus
    nl = 0
End If
End Sub

En effet, on initialise les TextBox qui s'appellent TextBox1 , TextBox2, TextBox3, TextBox4 et TextBox5

Cependant tu as supprimé ces deux TextBox. La solution: ne pas faire

For x = 1 to 5

mais

For x = 1 to 3

Maintenant voyons l'exécution des commandes. Lorsque tu cliques sur le bouton "Valider", la procédure exécutée est: Private Sub CommandButton1_Click().

A l'intérieur de cette procédure, la partie problématique est la suivante:

For x = 0 To 4

    dest.Offset(0, x).Value = Me.Controls("TextBox" & x + 1).Value
Next x

Pour x = 0 -> dest.Offset(0,0).Value = Me.constrols("Textbox1").Value

Traduction: Par rapport à ta cellule de destination "de base", je décalle de 0 ligne et 0 colonne, et j'y écris la valeur dans TextBox1

Pas de surprise, lorsque x va être égal à 3, on va essayer de récupérer la valeur de la Textbox4 (x + 1), qui n'existe plus.

Solution:

For x = 0 To 2
    dest.Offset(0, x).Value = Me.Controls("TextBox" & x + 1).Value
Next x

Le bouton 'autre agence' est à supprimer. Il fait référence à un formulaire qui n'est pas présent dans ton excel. Je suppose que vu que tu l'a récupéré d'ailleurs, il n'a aucun intérêt pour toi.

Pour le reste, certaines parties du code sont incompréhensibles, et un peu bordéliques à mon gout donc pas de corrections pour le reste =)

Bonsoir d3d9x,

Oh que Oui, je suis preneur d'explications, ayant mis le nez dedans j'avais commencé à apercevoir les tenants et les aboutissant du code, mais là c'est beaucoup plus clair.

Oui je l'avais récupéré sur ce forum, et cet A.M j'en ai trouvé x déclinaisons avec 8, 9 10 entrées (ce qui m'a permit de comparer les modifications dans le code mais pas assez pour réussir à le modifier correctement).

Le bouton autre agence est issu de mon autre fichier que j'ai réalisé qui permettra de passer sur un autre userform et une autre feuille excel.

Merci encore pour tes explications.

Bonne soirée.

Rechercher des sujets similaires à "modifier nombre entrees userform"