Problème formulaire excel

Résolu/Fermé
guillaume72 Messages postés 13 Date d'inscription mardi 22 mai 2007 Statut Membre Dernière intervention 5 décembre 2007 - 21 nov. 2007 à 15:09
guillaume72 Messages postés 13 Date d'inscription mardi 22 mai 2007 Statut Membre Dernière intervention 5 décembre 2007 - 23 nov. 2007 à 09:24
Bonjour,

Je m'adresse à vous pour débloquer un problème qui me tient en haleine depuis plusieurs jours.
J'ai créé une base de données sous Excel (obligation professionnelle) et j'ai un problème avec un formulaire.

En effet j'ai créé un formulaire avec différents userforms à compléter. A la fin du formulaire, l'utilisateur valide et les données sont transférées dans la base excel via la fonction suivante :

Range("A65536").End(xlUp).Offset(1, 0).Value = Nomconverti
Range("E65536").End(xlUp).Offset(1, 0).Value = Me.txtSAP.Text

Les données se positionnent dans les bonnes colonnes et en dans la première ligne en bas de ma base.

Le souci vient du transfert de ces données. Quand ce sont des données "text", elles sont bien transférées dans ma base Excel. Cependant quand ce sont des données résultant d'un choix parmi une list (listbox) les données ne sont pas transférées dans ma base.
J'utilise la même programmation que pr le texte :

Range("I65536").End(xlUp).Offset(1, 0).Value = Me.categorie2.List

J'imagine que mon problème vient de ce point mais Excel ne détecte aucun souci de programmation.

Alors merci d'avance à tous ceux qui pourront m'aider à résoudre ce problème.

Guillaume
A voir également:

5 réponses

Utilisateur anonyme
21 nov. 2007 à 15:39
Bonjour,

Pour l'élément sélectionné :
Range("I65536").End(xlUp).Offset(1, 0).Value = Me.categorie2.List(Me.categorie2.ListIndex)

Lupin
0
guillaume72 Messages postés 13 Date d'inscription mardi 22 mai 2007 Statut Membre Dernière intervention 5 décembre 2007
22 nov. 2007 à 08:36
Bonjour Lupin ( et à tout le monde),

J'ai essayé ta solution sous deux formes :

Range("I65536").End(xlUp).Offset(1, 0).Value = Me.categorie2.List(Me.categorie2.ListIndex)

Range("I65536").End(xlUp).Offset(1, 0).Value = Me.categorie2.ListIndex

Et aucune des deux solutions ne fonctionne...
0
guillaume72 Messages postés 13 Date d'inscription mardi 22 mai 2007 Statut Membre Dernière intervention 5 décembre 2007
22 nov. 2007 à 09:51
Re-bonjour,

je reviens vers vous car mon problème a évolué. En effet, les données sélectionnées parmi les userforms "Listbox" sont bien transférées dans ma base Excel. Le souci est que seule la donnée "nom de l'entreprise" s'ajoute à la dernière ligne de ma base de données. Toutes les autres données s'affichent dans les premières lignes de ma base car elles sont vierges.

Comment réussir à rattacher toutes les données entrées sur une même ligne ?
0
Utilisateur anonyme
22 nov. 2007 à 14:43
Bonjour Guillaume,

Je ne suis pas sur de bien comprendre !

Cet instruction [ Range("I65536").End(xlUp).Offset(1, 0).Value = Me.categorie2.List(Me.categorie2.ListIndex) ]
fonctionne bien chez moi, fonctionne-t-elle chez toi ?

Si les données sont toutes transférer en même temps :

L'instruction :
Ligne = Range("A65536").End(xlUp).Offset(1, 0).Row
te donne la ligne , ensuite tu fais comme suit :


Range("A" & ligne).Value = Nomconverti
Range("E" & ligne).Value = Me.txtSAP.Text
Range("I" & ligne).Value = Me.categorie2.List(Me.categorie2.ListIndex)

etc ...

Si par contre, il s'agit de récupérer plus d'un colonne dans les "listbox" c'est différent :

Range("I" & ligne).Value = Me.categorie2.List(Me.categorie2.ListIndex, 0)
Range("J" & ligne).Value = Me.categorie2.List(Me.categorie2.ListIndex, 1)

Lupin
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
guillaume72 Messages postés 13 Date d'inscription mardi 22 mai 2007 Statut Membre Dernière intervention 5 décembre 2007
23 nov. 2007 à 09:24
re-bonjour Lupin,

Merci pour ton aide. Finalement j'ai trouvé la solution en utilisant le programme suivant :

For i = 0 To (Me.categorie2.ListCount - 1)
If Me.categorie2.Selected(i) Then
Sheets("BQSE").Range("L65536").End(xlUp).Offset(1, 0).Value = Me.categorie2.List(i)
J = J + 1
End If
Next

Cela me permet de récupérer les données selectionnées dans ma listbox

Bonne journée à tous
0