Excel Form ComboBox

0

Witam,

Z uwagi na to, że jestem bardzo początkujący mam taki problem. Stworzyłem w Excelu formularz gdzie jest klika pól typu ComboBox i TextBox. Pola combo mam wypełnione kodem:

TypiA.List = Array("A", "F")
TypiB.List = Array("A", "F")
DlugoscA.List = Array(1, 1.5)
DlugoscB.List = Array(1, 1.5)

Chciałbym wykonać obliczenia matematyczne (odejmowanie) oparte na DlugoscA i DlugoscB. Tworząc zapis np

Me.Roznica = Me.DlugoscA.Value - Me.Dlugosc.Value

dostaje błąd Type Mismatch. problemem jest wartość 1.5. Jeśli w polu kombi wybrana jest wartość 1 liczy się poprawnie.
Proszę o info jak zadeklarować tablice, żeby liczyło poprawnie.

THX
Pozdrawiam

0

Jak tworzysz zmienną to jest typu int? Zmień na double

0
pavarotti napisał(a):

Jak tworzysz zmienną to jest typu int? Zmień na double

Właśńie nie wiem jak zadeklarować tą tablicę. Jak dałem

Dim TypA As String
Dim TypB As String
Dim DlugoscA As Double
Dim DlugoscB As Double

TypiA.List = Array("A", "F")
TypiB.List = Array("A", "F")
DlugoscA.List = Array(1, 1.5)
DlugoscB.List = Array(1, 1.5)

To mi wywala błąd "Invalid qualifier"

Jak nie deklaruję zmiennych to działa ale sie nie odejmuje (no bo pewnie myśli, że to text)

Pozdrawiam

0
Zorro_ napisał(a):
pavarotti napisał(a):

Jak tworzysz zmienną to jest typu int? Zmień na double

Właśńie nie wiem jak zadeklarować tą tablicę. Jak dałem

Dim TypA As String
Dim TypB As String
Dim DlugoscA As Double
Dim DlugoscB As Double

TypiA.List = Array("A", "F")
TypiB.List = Array("A", "F")
DlugoscA.List = Array(1, 1.5)
DlugoscB.List = Array(1, 1.5)

To mi wywala błąd "Invalid qualifier"

Jak nie deklaruję zmiennych to działa ale sie nie odejmuje (no bo pewnie myśli, że to text)

Pozdrawiam

To jak zadeklarujesz wartości zanim trafią do comboboxa nie ma dużego znaczenia, gdyż on zwraca tekst. W takim razie powinieneś przekonwertować wartość przed obliczeniem, np. tak:

Dim a As Double
Dim b As Double

a = CDbl(Me.ComboBox1.Value)
b = CDbl(Me.ComboBox2.Value)

TextBox1.Value = a - b

0
JustCuzICan napisał(a):
Zorro_ napisał(a):
pavarotti napisał(a):

Jak tworzysz zmienną to jest typu int? Zmień na double

Właśńie nie wiem jak zadeklarować tą tablicę. Jak dałem

Dim TypA As String
Dim TypB As String
Dim DlugoscA As Double
Dim DlugoscB As Double

TypiA.List = Array("A", "F")
TypiB.List = Array("A", "F")
DlugoscA.List = Array(1, 1.5)
DlugoscB.List = Array(1, 1.5)

To mi wywala błąd "Invalid qualifier"

Jak nie deklaruję zmiennych to działa ale sie nie odejmuje (no bo pewnie myśli, że to text)

Pozdrawiam

To jak zadeklarujesz wartości zanim trafią do comboboxa nie ma dużego znaczenia, gdyż on zwraca tekst. W takim razie powinieneś przekonwertować wartość przed obliczeniem, np. tak:

Dim a As Double
Dim b As Double

a = CDbl(Me.ComboBox1.Value)
b = CDbl(Me.ComboBox2.Value)

TextBox1.Value = a - b

Dzięki, pomogło. Dodatkowo moim błędem było wpisanie do tablicy wartości 1.5 zamiast 1,5. Nawet przy deklaracji zmiennej double pokazywał błąd. Teraz juz działa poprawnie.

Dzięki.

1 użytkowników online, w tym zalogowanych: 0, gości: 1