» »

[VBA EXCEL]ComboBox in baza

[VBA EXCEL]ComboBox in baza

ALfonz ::

Hello,
Imam težavo z operacijo, ki izračun dela v Sheet1, pri tem pa uporablja bazo iz Sheet2.
Cilj je:
1. Na Combobox1, ki se nahaja na Sheet1 naložiti podatke iz Sheet2.
2. V nadaljevanju pa na podlagi določene vrednosti iz Combobox1 izvesti račun v Sheet1,
ki pa preko for zanke išče vrednost v Sheet2. Končni rezultata se zapiše v Sheet1.

Uporabljen Optionbutton 1 in 2 sta vmesnika, ki usmerjata kateri del baze nas zanima.
Spodaj prikazana koda deluje, če je izračun in baza v istem Sheetu. Težava nastane, ko
bazo premaknem...s temle se igram že celo popoldne in nikakor ne rešim problema!
Zato se obračam na Forum z uprašanjem:
Kako izvesti zgoraj omenjen cilj po spodaj prikazani kodi, kjer je izračun v Sheet1 in baza iz katere črpamo na Sheet2?

nasveta oz rešitve bom zelo vesel :)
lep pozdrav

Private Sub ComboBox1_DropButtonClick()
Dim i As Integer
Dim j As Integer
If OptionButton1 = True Then
ActiveSheet.Shapes("ComboBox1").Select
Selection.ListFillRange = "B4:B25"
Else
If OptionButton2 = True Then
ActiveSheet.Shapes("ComboBox1").Select
Selection.ListFillRange = "B46:B69"
End If
End If
For j = 3 To 12
For i = 4 To 26
If OptionButton1 = True Then
If ComboBox1 = Cells(i, 2) Then
Cells(30, j) = Cells(i, j)
End If
Else
If OptionButton2 = True Then
If ComboBox1 = Cells(i + 42, 2) Then
Cells(30, j) = Cells(i + 42, j)
End If
End If
End If
Next i
Next j
End Sub

smetko ::

Za dostop do podatkov na kateremkoli listu uporabi:
Worksheets("Ime_lista").Cells(vrstica, stolpec)
lahko tudi
Worksheets(st_lista).range(območje)
No comment

ALfonz ::

Živjo smetko,
kot si predlagal sem se odločil in uporabil pristop: Worksheets(st_lista).Range (območje).
S testiranjem kode sem ugotovil, da zadeva deluje v primeru "for" zanke. Pri bazi, ki jo želim v Comboboxu pa dobim error 13:typemismatche.
Ali to pomeni, da koda:
ActiveSheet.Shapes("ComboBox1").Select
Selection.ListFillRange = Worksheets(3).Range("B4:B26")
ni primeren za izbrani pristop in je potrebno naložiti bazo z drugačno sintakso?
Najlepša hvala za hiter odgovor.
lep pozdrav

modificirana koda:
Private Sub ComboBox1_DropButtonClick()
Dim i As Integer
Dim j As Integer
If OptionButton1 = True Then
ActiveSheet.Shapes("ComboBox1").Select
Selection.ListFillRange = Worksheets(3).Range("B4:B26")
Else
If OptionButton2 = True Then
ActiveSheet.Shapes("ComboBox1").Select
Selection.ListFillRange = Worksheets(3).Range("B46:B69")
End If
End If
...

Zgodovina sprememb…

  • spremenil: ALfonz ()

smetko ::

za "Selection.ListFillRange =" lahko uporabiš spodnje:
= Worksheets(3).Range("B46:B69").Address(, , , True)
ali
="list3!$B$46:$B$69"
No comment

ALfonz ::

Popravil kodo in dela kot švicarska ura ;)
Najlepša hvala za pomoč.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Excel: tiskanje po vrsticah

Oddelek: Pomoč in nasveti
71100 (1013) luksorzi
»

c# datagridview in combox

Oddelek: Programiranje
131204 (1092) OmegaM
»

[Visual C#] TableAdapter

Oddelek: Programiranje
61131 (1007) detroit
»

[VB] Komunikacija s serijskimi napravami

Oddelek: Programiranje
412298 (1572) mNeRo
»

[Visual studio .NET] Rabim pomoč

Oddelek: Programiranje
91590 (1432) darkolord

Več podobnih tem