Transférer les données Combobox vers cellules EXCEL

Signaler
Messages postés
22
Date d'inscription
mardi 24 juin 2008
Statut
Membre
Dernière intervention
30 mars 2009
-
Messages postés
22
Date d'inscription
mardi 24 juin 2008
Statut
Membre
Dernière intervention
30 mars 2009
-
Bonjour,

Voilà j'ai commencer a créer un programme VB sous EXCEL 2002 SP3 avec 2 combobox et une textbox avec la date.

Et je rencontre 2 grosses difficultées:
1) La première c'est que mes 2 combobox ne veulent pas afficher le listing voulu (par exemple combobox1 a,b,c et combobox2 x,y,z) lorsque je lance le programme!
---------------------------
Private Sub UserForm_Click()

combobox1.AddItem "a"
combobox1.AddItem "b"
combobox1.AddItem "c"

combobox1.AddItem "x"
combobox2.AddItem "y"
combobox2.AddItem "z"

j'ai un doute sur l'emplacement du prog...

2) Ensuite je souhaite qu'une fois les 2 combobox + la dates choisit et que je clic sur le bouton OK il m'intègre ses données dans les cellules excel:
la date en a,1 / combobox1 dans a,2/ et combobox2 dans a,3

Voici le début du programme:

Private Sub CmdButton1_Click()
'Boîte de dialogue
message = "Etes-vous sûr de vouloir valider votre choix?"
Buttonsandicons = vbYesNo + vbQuestion
title = "Programme message"
Response = MsgBox(message, Buttonsandicons, title)
'Evaluer la réponse
If Response = vbYes Then

?????

End If
End Sub

------------
3) puis qu'il m'enregistre les prochaines données saisies dans les cellules en-dessous.

Voilà j'espère avoir été précis dans les explications
Merci d'avance pour votre aide programmeur en herbe
Sébastien

9 réponses

Messages postés
682
Date d'inscription
vendredi 6 avril 2007
Statut
Membre
Dernière intervention
4 août 2012
6
bonjour
plutot que dans l'évenement click du userform mets le chargement de tes combo dans l'évenement Activate

pour la deuxieme question
reemplace tes ????? par
cells(a,b)= combobox1.text
ou  = textbox.text
bien sûr a et b sont les numero de ligne et de rangée de la cellule que tu veux


pour la troisieme question  ([../reglement.aspx Voir le règlement de CodeS-SourceS] point 5)
tu peux utiliser cette ligne de code qui te donne la derniere ligne (ici  pour la colonne A)
Range("A65536").End(xlUp).Row

donc ça donnerait quelque chose comme ça (non vérifié)
If Response = vbYes Then

    a = Range("A65536").End(xlUp).Row +1
    cells(a,1)= combobox1.text
    cells(a,2) = combobox2.text
    cells(a,2) = textbox.text
end if
[reglement.aspx ]si c'est la solution, penser : REPONSE ACCEPTEE
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
Gaffe au theme utilisé...

Vous êtes ici : Thèmes / VB.NET et VB 2005
Messages postés
682
Date d'inscription
vendredi 6 avril 2007
Statut
Membre
Dernière intervention
4 août 2012
6
exact Renfield
d'ailleurs ne serait il pas possible de créer une rubrique VBA  directement à la racine des themes plutot qu'en sous-rubrique de VB6 car c'est une erreur récurrente de trouver le VBA un peu n'importe où 

[reglement.aspx ]si c'est la solution, penser : REPONSE ACCEPTEE
Messages postés
22
Date d'inscription
mardi 24 juin 2008
Statut
Membre
Dernière intervention
30 mars 2009

1)l'évenement Activate? là je ne vois pas, peux-tu me donner plus de détail sltp.

2) et 3) ok s'est intégré

Merci
Messages postés
682
Date d'inscription
vendredi 6 avril 2007
Statut
Membre
Dernière intervention
4 août 2012
6
remplace
Private Sub UserForm_Click()

par
Private Sub UserForm_Activate()

[reglement.aspx ]si c'est la solution, penser : REPONSE ACCEPTEE
Messages postés
22
Date d'inscription
mardi 24 juin 2008
Statut
Membre
Dernière intervention
30 mars 2009

Ok merci pour le combobox... ça je ne connaissaît pas!

Du coup voici le message d'erreur qui apparaît lors de la simul:
"Membre de méthode ou de données introuvable"

la première ligne de prog est en jaune:
Private Sub CmdButton1_Click()
'Boîte de dialogue
message = "Etes-vous sûr de vouloir valider votre choix?"
Buttonsandicons = vbYesNo + vbQuestion
title = "Programme message"
Response = MsgBox(message, Buttonsandicons, title)
'Evaluer la réponse
If Response = vbYes Then
'insérer les valeurs dans les cellules
a = Range("A65536").End(xlUp).Row + 1
Cells(a, 1) = combox1.Text
Cells(b, 1) = combox2.Text
Cells(c, 1) = TxtBox1.Text
End
End Sub

et il me surligne en bleu le mot .text dans la dernière ligne avec
Cells(c, 1) = TxtBox1.Text

Merci d'avance de ton aide
Messages postés
682
Date d'inscription
vendredi 6 avril 2007
Statut
Membre
Dernière intervention
4 août 2012
6
tu  es sûr que ta textbox s'appelle txtbox1?
le code n'accepte pas la moindre faute d'orthographe
de plus
If Response = vbYes Then

'insérer les valeurs dans les cellules

a = Range("A65536").End(xlUp).Row + 1

    Cells(a, 1) = combox1.Text

    Cells(b, 1) = combox2.Text

    Cells(c, 1) = TxtBox1.Text

End

devrait etre en toute logique
If Response = vbYes Then

'insérer les valeurs dans les cellules

a = Range("A65536").End(xlUp).Row + 1

    Cells(a, 1) = combox1.Text

    Cells(a, 2) = combox2.Text

    Cells(a, 3) = TxtBox1.Text

End

car quand tu fais référence à une cellule sous la forme
cells(x,y)
x est la rangée
y est la colonne
alors que  quand tu fais
range("A1")
c'est l'inverse
A est la colonne
et le 1 est le numéro de la ligne
[reglement.aspx ]si c'est la solution, penser : REPONSE ACCEPTEE
Messages postés
22
Date d'inscription
mardi 24 juin 2008
Statut
Membre
Dernière intervention
30 mars 2009

En fait c'est bien txtbox1 que j'ai sélectionné et le nom est correct mais j'ai insérer un calendrier à l'intérieur (avec maxdate et mindate).
c'est un txtbox1 DTPicker.... est-ce pour cela qu'il ne peut pas afficher la date dans la cellule?
Messages postés
22
Date d'inscription
mardi 24 juin 2008
Statut
Membre
Dernière intervention
30 mars 2009

Super ça fonctionne! fallait juste supprimé le .text de TxtBox1.Text
Merci et chapeau pour ton coup de pouce pile poil :)