Renseigner plusieurs feuilles avec un userform

Bonjour à vous tous,

Je vous sollicite sur une problématique sur laquelle je suis "scotché" depuis deux jours maintenant.

En effet, j'ai une note de frais qui fonctionne ainsi :

Dans la feuille Nomenclature je clique sur le bouton Userform et je renseigne mes champs : Date de la note, Matricule, Puissance fiscale du véhicule et nombre de kilomètres.

Quand je clique sur OK la feuille Note de frais est renseignée ainsi que la feuille Matricule1 dans laquelle figure le salarié qui a le matricule1.

Je voudrai utiliser la même logique avec les feuilles Matricule 2, Matricule3, Matricule4 et Matricule5 mais cela ne marche pas.

Je n'arrive pas à renseigner ces feuilles.

Mon code ne fonctionne qu'avec les feuilles Notes de frais et Matricule1.

Je vous transmets mon fichier et si une bonne âme a la réponse à ma problématique alors grand merci et total respect

https://forum.excel-pratique.com/download/file.php?mode=view&id=193076

163note-de-frais2.xlsm (62.29 Ko)

Bonsoir Christophe 88 le forum

je regarde mais cela ne doit pas être bien grand chose

a+

papou

Bonsoir Christophe88 le forum

bon alors ton fichier en retour avec ce que tu voulais, mais j'ai tout viré ce que tu avais fait et j'ai tout refait

à toi de tester et tu me redis

a+

Papou

352christophe-88-v1.xlsm (50.74 Ko)

Bonjour,

Grand merci.

Cela marche impeccable.

Toutefois, je ne sais toujours pas pourquoi avec mon userform je ne peux pas renseigner toutes les feuilles.

Si une personne a la réponse ?

Cordialement

Re Christophe 88 le forum

bah moi j'ai commencé hier à regarder ton code et quand j'ai vu que 80% était fait à enregistreur de macro j'ai tout viré

je vais reprendre ton fichier pour te dire ou ton code ne marchait pas

a+

papou

Bonjour Christophe88 le forum

bon alors si je voulais être abrupte je te dirais que ton code est nul !! Mais je vais pas te dire cela, mais plutôt ton code commence par une déclaration de 50 variables qui sont toutes égale à 1 valeur de cellule !!!!

à quoi sert d'utiliser un userform si c'est pour mettre en variable toutes tes données??

Pas évolutif ton affaire, si tu rajoutes un gars ou une fille tu devras rajouter 10 variables en gros !!!

Bref tu ne prends pas le boulot par le bon bout, un fichier doit toujours tenir compte d'une évolution et d'un ajout de lignes possible.

As-tu seulement essayé de lire mon code?? et as-tu compris un peu comment j'ai traité ta demande??

essaye de le lire et de comprendre le principe et après refais un code tout seul pour tester, mais ne fait plus toutes tes multiples variables inutiles

a+

Papou

Bonjour,

Merci d'avoir pris du temps pour me répondre.

Effectivement rien à voir avec mon code mais pour info je n'ai suivi aucun cours sur VBA ce qui peux expliquer mes erreurs et tâtonnement sachant que je suis autodidacte donc merci d'être indulgent

J'ai commencé à regarder mais j'ai quelques questions à te poser :

Dim i&, nb&, Fin&, val# le symbole & correspond à une valeur qui suit la variable je suppose ?

For i = 1 To 5 Correspond au nombre de lignes

If Controls("T" & i) La valeur "T" correspond au textbox ou comboBox générique et pourquoi rajouter & et i ensuite ?

nb = T2.Value: val = T2.List(T2.ListIndex, 4) Je ne comprends pas très bien cette ligne de code

Fin = .Range("B" & Rows.Count).End(xlUp).Row + 1 Je suppose que tu veux dire que cela doit se remplir à la première ligne vide dispo mais je n'en suis pas sûr ?

Le reste du code est ok pour moi.

Idéalement ce serait de commenter tes lignes mais je comprends que cela soit chronophage

Merci pour ta réponse et pour ta patience

Bonsoir Christophe 88 le forum

Je suis indulgent et moi aussi j’ai commencé de zéro en vba

Je n’ai pas le temps ce soir mais demain après midi je vais essayé de te commenter ma

Macro pour que tu puisses suivre le& signifie que c’est une variable déclarée en long

A demain

A plus

Papou

Bonjour,

C'est très bien, merci !

A+

Bonjour Cristophe 88 le forum

Dim i&, nb&, Fin&, val# le symbole & correspond à une valeur qui suit la variable je suppose ?

For i = 1 To 5 Correspond au nombre de lignes

If Controls("T" & i) La valeur "T" correspond au textbox ou comboBox générique et pourquoi rajouter & et i ensuite ?

nb = T2.Value: val = T2.List(T2.ListIndex, 4) Je ne comprends pas très bien cette ligne de code

Fin = .Range("B" & Rows.Count).End(xlUp).Row + 1 Je suppose que tu veux dire que cela doit se remplir à la première ligne vide dispo

Dim i&, nb&, Fin&, val# le symbole & correspond à une valeur qui suit la variable je suppose ? NON cela est un type de variable en l’occurrence &= Long

For i = 1 To 5 Correspond au nombre de lignes NON c'est un pour boucler sur tous tes contrôles donc de T1 à T5

Fin = .Range("B" & Rows.Count).End(xlUp).Row + 1 Je suppose que tu veux dire que cela doit se remplir à la première ligne vide dispo OUI

nb = T2.Value Je donne à la variable nb la valeur du contrôle T2

val = T2.List(T2.ListIndex, 4) là je donne à la variable Val la valeur de la ligne sélectionnée du contrôle T2 la colonne 5 donc la valeur au km

voilà ton fichier avec le commentaire

commence à lire le commentaire Userform Initialize

redis moi si c'est plus clair quand tu auras fini de lire tout

a+

Papou

Merci pour ces informations très claires et exhaustives.

Le code m'est à présent plus parlant.

Bien cordialement

Rechercher des sujets similaires à "renseigner feuilles userform"