Probleme de remplissage d'un tableau via un userform

Bonjour

Je suis actuellement en train de faire un petit programme en VBA afin de gérer un stock qui permet de savoir qui prend quoi et pour quel endroit. J'ai donc créer mon userform (formulaire_identification) avec différents Labels(NOM, Date, site concerné, et une dizaine de produits) et les champs sont sous forme de liste déroulante avec un bouton "Valider" et "Annuler"

Le problème c'est que lorsque je rempli tous les champs et que je clique Valider, le tableau (qui se trouve sur la feuille "SUIVI") se rempli a partir du bas et remonte alors que je souhaite simplement qu'a chaque clique sur Valider le tableau se rempli a partir de A2 sur toute la ligne jusqu'à L2 et descend a la prochaine ligne pour une prochaine entrée. Je souhaiterais trouver mon erreur

J'espère avoir été suffisamment clair étant novice dans la programmation.

Je joins la partie du code que j'ai écris et que je ne trouve pas l'erreur.

Private Sub Valider_Click()

Dim i As Integer

Dim ctrl As Control

Dim Colonne As Integer

Dim derligne As Integer

derligne = Sheets("SUIVI").Range("A65000").End(xlUp).Row + 1

For Each ctrl In formulaire_identification.Controls

Colonne = Val(ctrl.Tag)

If Colonne > 0 Then Sheets("SUIVI").Cells(derligne, Colonne) = ctrl

Next

End

End Sub

Je vous remercie d'avance de prendre le temps de lire mon message

Cordialement

Leo_ajay

Bonsoir Léo, bonsoir le forum,

C'est impossible avec ce code !?... Si la définition de derligne se trouvait dans la boucle For... Each, peut-être. Mais là, non.

Bonsoir

Tout d'abord, je vous remercie pour votre retour.

Je viens de mettre derligne = Sheets("SUIVI").Range("A65000").End(xlUp).Row + 1 a l'intérieur de la boucle mais le problème c'est que chaque information de chaque colonne se met dans la partie basse du tableau avec un décalage de 1 entre les colonnes(sorte d'escaliers). Si mon code est faux, je vous serez gré de me donner qq conseils car ce programme doit être opérationnel pour Vendredi et il ne me manque que le remplissage du tableau de haut en bas.

Encore merci

Bonsoir Léo, bonsoir le forum,

Je me suis mal exprimé ! En fait ce qui est impossible c'est que, ce que tu décris arrive, avec ton code qui est absolument juste. Ça aurait pu arriver si derligne avait été dans la boucle. Mais il ne faut absolument pas le mettre dans la boucle...

Ton code est bon mais sans le fichier qui va avec impossible de comprendre ce qui ne va pas...

re bonsoir Thauthème.

Je comprend mieux votre dernier message. Je me permet de joindre a ce message tout mon programme en esperant ne pas trop prendre de votre temps.

Private Sub Annuler_Click()

formulaire_identification.Hide

End Sub

Private Sub Valider_Click()

Dim i As Integer

Dim ctrl As Control

Dim Colonne As Integer

Dim derligne As Integer

derligne = Sheets("SUIVI").Range("A65000").End(xlUp).Row + 1

For Each ctrl In formulaire_identification.Controls

Colonne = Val(ctrl.Tag)

If Colonne > 0 Then Sheets("SUIVI").Cells(derligne, Colonne) = ctrl

Next

End

End Sub

Private Sub nbPochettesbrassards_Change()

End Sub

Private Sub UserForm_initialize()

With ComboBox3

Me!ComboBox3 = Format(Now, "dd/mm/yyyy")

End With

With Site_concerne

.AddItem "PC1"

.AddItem "Accueil PC1"

.AddItem "PC2"

.AddItem "Accueil PC2"

.AddItem "PC3"

.AddItem "Accueil PC3"

.AddItem "PC4"

.AddItem "Accueil PC4"

End With

With NOM

.AddItem " Damien"

.AddItem " Alexandre"

.AddItem " Christophe"

.AddItem " Baptiste"

.AddItem " Antoine"

.AddItem "WANG Lionel"

.AddItem " Akiln"

.AddItem " Ahmed"

.AddItem " Edwin"

.AddItem "Gilles"

.AddItem "Laurent"

.AddItem " Irvin"

.AddItem " Chakir"

.AddItem "Julien"

.AddItem " Elie"

.AddItem " Thierry"

.AddItem " Nicolas"

.AddItem " Marc"

.AddItem "Andrew"

.AddItem "Stephane"

.AddItem "Leo"

End With

With nbDATACARD_visiteurs

.AddItem "1"

.AddItem "2"

.AddItem "3"

.AddItem "4"

.AddItem "5"

.AddItem "6"

.AddItem "7"

.AddItem "8"

End With

With nbDATACARD_gunnebo

.AddItem "1"

.AddItem "2"

.AddItem "3"

.AddItem "4"

.AddItem "5"

.AddItem "6"

.AddItem "7"

.AddItem "8"

End With

With nbkit_black

.AddItem "1"

.AddItem "2"

.AddItem "3"

.AddItem "4"

.AddItem "5"

.AddItem "6"

.AddItem "7"

.AddItem "8"

End With

With nbkit_color

.AddItem "1"

.AddItem "2"

.AddItem "3"

.AddItem "4"

.AddItem "5"

.AddItem "6"

.AddItem "7"

.AddItem "8"

End With

With nbPochettes_souples

.AddItem "1"

.AddItem "2"

.AddItem "3"

.AddItem "4"

.AddItem "5"

.AddItem "6"

.AddItem "7"

.AddItem "8"

End With

With nbPochettes_brassards

.AddItem "1"

.AddItem "2"

.AddItem "3"

.AddItem "4"

.AddItem "5"

.AddItem "6"

.AddItem "7"

.AddItem "8"

End With

With nbPochettes_rigides

.AddItem "1"

.AddItem "2"

.AddItem "3"

.AddItem "4"

.AddItem "5"

.AddItem "6"

.AddItem "7"

.AddItem "8"

End With

With nbAccroches_bdg_pince

.AddItem "1"

.AddItem "2"

.AddItem "3"

.AddItem "4"

.AddItem "5"

.AddItem "6"

.AddItem "7"

.AddItem "8"

End With

With nbAccroches_bdg_zip

.AddItem "1"

.AddItem "2"

.AddItem "3"

.AddItem "4"

.AddItem "5"

.AddItem "6"

.AddItem "7"

.AddItem "8"

End With

End Sub

Je vous remercie d'avance car cela fait plusieurs jours que je sèche et j'aurai aimé réussir ce premier programme en VBA

Bien a vous

Leo

Bonsoir Léo, bonsoir le forum,

Le code seul de sert à rien ! C'est le fichier ou un fichier exemple basé sur ton original qu'il aurait fallu. Mais comme visiblement tu as la flemme je me suis décarcassé pour toi (c'est rare mais ça arrive).

En pièce jointe un fichier exemple où tu verras que ton code fonctionne correctement. Je l'ai remanié quelques peu :

• pour faciliter l'alimentation dynamique des comboboxes ou listboxes en utilisant un onglet contenant les données. Pour ajouter/modifier/supprimer une ou plusieurs données, c'est dans l'onglet Listes que ça se passe. Pas besoin de réécrire le code en dur !...

• Pour terminer l'action d'une UserForm, il ne faut jamais* utiliser Hide qui ne fait que la masquer mais Unload qui la ferme et la décharge de la mémoire. L'avantage c'est que quand tu l'ouvres à nouveau avec Show, elle est vierge... En plus ça t'évite le End radical !

* Sauf si tu dois réutiliser les données plus tard où là, le Hide peut-ête utile.

• Pourquoi une ComboBox pour la date ? Une Textbox est plus que suffisante...

Le fichier de M. Ducros :

56leo-v01.zip (21.62 Ko)

Bonjour Thautheme

Je te remercie de ton aide qui m'est tres précieuse . Néanmoins, juste une précision, de mon côté ce n'est pas une question de flemme, au vu du temps que j'ai passé à écrire ce programme qui peut paraître rempli d'erreur mais au combien précieux pour moi. Je pensais sincèrement que le code suffirait, je le saurais maintenant. De mon côté aussi j'accorde pas mal de temps à aider les autres dans mon domaine. Je ne comprend pas encore les bases de ce langage mais j'ai déjà commencé à my mettre. Un grand merci en tout cas pour le temps que tu m'as accordé et les explications.

A bientôt

Rechercher des sujets similaires à "probleme remplissage tableau via userform"