OVH Cloud OVH Cloud

combobox

8 réponses
Avatar
Greffier
Bonjour,

Dans l'exemple qui suit, je récupère correctement dans la combobox, et dans
ma cellule B32 le bon prix.
Mais lorsque je veux utiliser ce prix, les calculs s'opèrent comme si
j'avais sélectionné une valeur 0.
J'ai lu le newsgroup, j'ai compris que je récupérais du texte, mais je ne
sais pas comment transformer ce texte en numérique par un CDBL ou un CINT.
Qui pourrait m'aider.

Merci, pour toutes vos suggestions.

Greffier.



Public ChoixSaison As String
Public ChoixPrix As Integer
Private Sub CommandButton1_Click() 'bouton valider
UserForm2.Hide
Index1 = ComboBox1.ListIndex
ChoixSaison = ComboBox1.List(Index1)
Index2 = ComboBox2.ListIndex
ChoixPrix = ComboBox2.List(Index2)
' Stockage du résultat dans une cellule
Range("B31").Value = ChoixSaison
Range("B32").Value = ChoixPrix
End Sub

8 réponses

Avatar
Elliac
Bonjour,
A essayer :
Range("B32").Value = ChoixPrix.Value

Camille

"Greffier" wrote:

Bonjour,

Dans l'exemple qui suit, je récupère correctement dans la combobox, et dans
ma cellule B32 le bon prix.
Mais lorsque je veux utiliser ce prix, les calculs s'opèrent comme si
j'avais sélectionné une valeur 0.
J'ai lu le newsgroup, j'ai compris que je récupérais du texte, mais je ne
sais pas comment transformer ce texte en numérique par un CDBL ou un CINT.
Qui pourrait m'aider.

Merci, pour toutes vos suggestions.

Greffier.



Public ChoixSaison As String
Public ChoixPrix As Integer
Private Sub CommandButton1_Click() 'bouton valider
UserForm2.Hide
Index1 = ComboBox1.ListIndex
ChoixSaison = ComboBox1.List(Index1)
Index2 = ComboBox2.ListIndex
ChoixPrix = ComboBox2.List(Index2)
' Stockage du résultat dans une cellule
Range("B31").Value = ChoixSaison
Range("B32").Value = ChoixPrix
End Sub





Avatar
JB
Bonjour,

If IsNumeric(Me.ComboBox2) Then
ChoixPrix = Cdbl(Me.ComboBox2.List(Index2) )
End IF

JB


On 19 fév, 17:48, "Greffier" wrote:
Bonjour,

Dans l'exemple qui suit, je récupère correctement dans la combobox, e t dans
ma cellule B32 le bon prix.
Mais lorsque je veux utiliser ce prix, les calculs s'opèrent comme si
j'avais sélectionné une valeur 0.
J'ai lu le newsgroup, j'ai compris que je récupérais du texte, mais j e ne
sais pas comment transformer ce texte en numérique par un CDBL ou un CI NT.
Qui pourrait m'aider.

Merci, pour toutes vos suggestions.

Greffier.

Public ChoixSaison As String
Public ChoixPrix As Integer
Private Sub CommandButton1_Click() 'bouton valider
UserForm2.Hide
Index1 = ComboBox1.ListIndex
ChoixSaison = ComboBox1.List(Index1)
Index2 = ComboBox2.ListIndex
ChoixPrix = ComboBox2.List(Index2)
' Stockage du résultat dans une cellule
Range("B31").Value = ChoixSaison
Range("B32").Value = ChoixPrix
End Sub


Avatar
Greffier
Bonjour,

Merci Elliac, mais cela ne marche pas : qualificateur incorrect.

Greffier.



"Elliac" a écrit dans le message de news:

Bonjour,
A essayer :
Range("B32").Value = ChoixPrix.Value

Camille

"Greffier" wrote:

Bonjour,

Dans l'exemple qui suit, je récupère correctement dans la combobox, et
dans
ma cellule B32 le bon prix.
Mais lorsque je veux utiliser ce prix, les calculs s'opèrent comme si
j'avais sélectionné une valeur 0.
J'ai lu le newsgroup, j'ai compris que je récupérais du texte, mais je ne
sais pas comment transformer ce texte en numérique par un CDBL ou un
CINT.
Qui pourrait m'aider.

Merci, pour toutes vos suggestions.

Greffier.



Public ChoixSaison As String
Public ChoixPrix As Integer
Private Sub CommandButton1_Click() 'bouton valider
UserForm2.Hide
Index1 = ComboBox1.ListIndex
ChoixSaison = ComboBox1.List(Index1)
Index2 = ComboBox2.ListIndex
ChoixPrix = ComboBox2.List(Index2)
' Stockage du résultat dans une cellule
Range("B31").Value = ChoixSaison
Range("B32").Value = ChoixPrix
End Sub







Avatar
MichDenis
Depuis la version Excel 2002, il est possible d'utiliser un séparateur décimale
dans l'interface de la feuille qui soit différent de celui définit dans le panneau
de configuration. (outils / options / onglet International)
Dépendamment comment le combobox a été renseigné, il est plus que probable
que la fonction Isnumeric() et Cdbl() qui elles se basent sur le séparateur du
panneau de configuration, soit confronté à un joyeux problème !!!


"JB" a écrit dans le message de news:

Bonjour,

If IsNumeric(Me.ComboBox2) Then
ChoixPrix = Cdbl(Me.ComboBox2.List(Index2) )
End IF

JB


On 19 fév, 17:48, "Greffier" wrote:
Bonjour,

Dans l'exemple qui suit, je récupère correctement dans la combobox, et dans
ma cellule B32 le bon prix.
Mais lorsque je veux utiliser ce prix, les calculs s'opèrent comme si
j'avais sélectionné une valeur 0.
J'ai lu le newsgroup, j'ai compris que je récupérais du texte, mais je ne
sais pas comment transformer ce texte en numérique par un CDBL ou un CINT.
Qui pourrait m'aider.

Merci, pour toutes vos suggestions.

Greffier.

Public ChoixSaison As String
Public ChoixPrix As Integer
Private Sub CommandButton1_Click() 'bouton valider
UserForm2.Hide
Index1 = ComboBox1.ListIndex
ChoixSaison = ComboBox1.List(Index1)
Index2 = ComboBox2.ListIndex
ChoixPrix = ComboBox2.List(Index2)
' Stockage du résultat dans une cellule
Range("B31").Value = ChoixSaison
Range("B32").Value = ChoixPrix
End Sub


Avatar
MichDenis
Dim S As String, T As String
T = trim(Combobox1.value)
S = Format(0, ".")
T = Replace(T, ".", S)

If IsNumeric(T) Then
'Range("A1").NumberFormat = .... 'si nécessaire
Range("A1").value = cdbl(t)
End If



"Greffier" a écrit dans le message de news:
Bonjour,

Dans l'exemple qui suit, je récupère correctement dans la combobox, et dans
ma cellule B32 le bon prix.
Mais lorsque je veux utiliser ce prix, les calculs s'opèrent comme si
j'avais sélectionné une valeur 0.
J'ai lu le newsgroup, j'ai compris que je récupérais du texte, mais je ne
sais pas comment transformer ce texte en numérique par un CDBL ou un CINT.
Qui pourrait m'aider.

Merci, pour toutes vos suggestions.

Greffier.



Public ChoixSaison As String
Public ChoixPrix As Integer
Private Sub CommandButton1_Click() 'bouton valider
UserForm2.Hide
Index1 = ComboBox1.ListIndex
ChoixSaison = ComboBox1.List(Index1)
Index2 = ComboBox2.ListIndex
ChoixPrix = ComboBox2.List(Index2)
' Stockage du résultat dans une cellule
Range("B31").Value = ChoixSaison
Range("B32").Value = ChoixPrix
End Sub
Avatar
Greffier
Bonjour,

J'ai à présent compris ce qui se passe. La valeur ChoixPrix déclarée
Publique ne se transmet pas aux modules VBA.
Avec le débogueur VBA elle reste "vide", alors que dans la feuille de calcul
la valeur est bien rangée.
Que puis-je faire, c'est la première fois que j'emploi le public en
userform.

Merci, si vous avez une réponse.

Greffier.



"MichDenis" a écrit dans le message de news:
%
Dim S As String, T As String
T = trim(Combobox1.value)
S = Format(0, ".")
T = Replace(T, ".", S)

If IsNumeric(T) Then
'Range("A1").NumberFormat = .... 'si nécessaire
Range("A1").value = cdbl(t)
End If



"Greffier" a écrit dans le message de news:

Bonjour,

Dans l'exemple qui suit, je récupère correctement dans la combobox, et
dans
ma cellule B32 le bon prix.
Mais lorsque je veux utiliser ce prix, les calculs s'opèrent comme si
j'avais sélectionné une valeur 0.
J'ai lu le newsgroup, j'ai compris que je récupérais du texte, mais je ne
sais pas comment transformer ce texte en numérique par un CDBL ou un CINT.
Qui pourrait m'aider.

Merci, pour toutes vos suggestions.

Greffier.



Public ChoixSaison As String
Public ChoixPrix As Integer
Private Sub CommandButton1_Click() 'bouton valider
UserForm2.Hide
Index1 = ComboBox1.ListIndex
ChoixSaison = ComboBox1.List(Index1)
Index2 = ComboBox2.ListIndex
ChoixPrix = ComboBox2.List(Index2)
' Stockage du résultat dans une cellule
Range("B31").Value = ChoixSaison
Range("B32").Value = ChoixPrix
End Sub





Avatar
anonymousA
Bonjour,

Je ne connnais pas ton code,mais si tu déclares ta variable comme Public
dans un module standard ( pas dans ton userform) , celle-ci sera connue
de tous les modules et pourra conserver sa valeur entre deux appels de
programme.

A+



Bonjour,

J'ai à présent compris ce qui se passe. La valeur ChoixPrix déclarée
Publique ne se transmet pas aux modules VBA.
Avec le débogueur VBA elle reste "vide", alors que dans la feuille de calcul
la valeur est bien rangée.
Que puis-je faire, c'est la première fois que j'emploi le public en
userform.

Merci, si vous avez une réponse.

Greffier.



"MichDenis" a écrit dans le message de news:
%
Dim S As String, T As String
T = trim(Combobox1.value)
S = Format(0, ".")
T = Replace(T, ".", S)

If IsNumeric(T) Then
'Range("A1").NumberFormat = .... 'si nécessaire
Range("A1").value = cdbl(t)
End If



"Greffier" a écrit dans le message de news:

Bonjour,

Dans l'exemple qui suit, je récupère correctement dans la combobox, et
dans
ma cellule B32 le bon prix.
Mais lorsque je veux utiliser ce prix, les calculs s'opèrent comme si
j'avais sélectionné une valeur 0.
J'ai lu le newsgroup, j'ai compris que je récupérais du texte, mais je ne
sais pas comment transformer ce texte en numérique par un CDBL ou un CINT.
Qui pourrait m'aider.

Merci, pour toutes vos suggestions.

Greffier.



Public ChoixSaison As String
Public ChoixPrix As Integer
Private Sub CommandButton1_Click() 'bouton valider
UserForm2.Hide
Index1 = ComboBox1.ListIndex
ChoixSaison = ComboBox1.List(Index1)
Index2 = ComboBox2.ListIndex
ChoixPrix = ComboBox2.List(Index2)
' Stockage du résultat dans une cellule
Range("B31").Value = ChoixSaison
Range("B32").Value = ChoixPrix
End Sub









Avatar
Greffier
Bonjour,

Merci à tous pour vos réponses.
Je suis très perplexe, j'ai au moins appris qu'il ne faut pas mettre de
variable public dans un userform.
Je vais donc me concentrer vers la transmission des données par une zone
intermédiaire vers les modules.

Merci à tous et pour tout.

Greffier.



"anonymousA" a écrit dans le message de news:
45dac021$0$5089$
Bonjour,

Je ne connnais pas ton code,mais si tu déclares ta variable comme Public
dans un module standard ( pas dans ton userform) , celle-ci sera connue de
tous les modules et pourra conserver sa valeur entre deux appels de
programme.

A+



Bonjour,

J'ai à présent compris ce qui se passe. La valeur ChoixPrix déclarée
Publique ne se transmet pas aux modules VBA.
Avec le débogueur VBA elle reste "vide", alors que dans la feuille de
calcul la valeur est bien rangée.
Que puis-je faire, c'est la première fois que j'emploi le public en
userform.

Merci, si vous avez une réponse.

Greffier.



"MichDenis" a écrit dans le message de news:
%
Dim S As String, T As String
T = trim(Combobox1.value)
S = Format(0, ".")
T = Replace(T, ".", S)

If IsNumeric(T) Then
'Range("A1").NumberFormat = .... 'si nécessaire
Range("A1").value = cdbl(t)
End If



"Greffier" a écrit dans le message de news:

Bonjour,

Dans l'exemple qui suit, je récupère correctement dans la combobox, et
dans
ma cellule B32 le bon prix.
Mais lorsque je veux utiliser ce prix, les calculs s'opèrent comme si
j'avais sélectionné une valeur 0.
J'ai lu le newsgroup, j'ai compris que je récupérais du texte, mais je
ne
sais pas comment transformer ce texte en numérique par un CDBL ou un
CINT.
Qui pourrait m'aider.

Merci, pour toutes vos suggestions.

Greffier.



Public ChoixSaison As String
Public ChoixPrix As Integer
Private Sub CommandButton1_Click() 'bouton valider
UserForm2.Hide
Index1 = ComboBox1.ListIndex
ChoixSaison = ComboBox1.List(Index1)
Index2 = ComboBox2.ListIndex
ChoixPrix = ComboBox2.List(Index2)
' Stockage du résultat dans une cellule
Range("B31").Value = ChoixSaison
Range("B32").Value = ChoixPrix
End Sub