< návrat zpět

MS Excel


Téma: „nájdi v Zozname a vykonaj“ rss

Zaslal/a 1.4.2013 15:09

Dobrý deň,
už asi 3-ti deň sa trápim s pochopením Cyklov no nech robím čokoľvek stále sa mi nedarí do cyklu zapracovať operácia + podmienky.

Popis požiadavky:
do Databázy za ukladajú údaje o dodávateľoch (stále do zľava najbližšieho prázdneho stĺpca)
pre načítanie údajov z Databázy chcem použiť vo Formulári „ComboBox“
zoznám v ComboBox-e je zoznám nahraných dodávateľoch v Databáze

A začína môj problém:
Keďže dodávatelia sa budú opakovať rovnako ako aj ich produkty, potrebujem do zoznamu v ComboBox-e načítať niečo ako Kontingenčnú tabuľku. myslím si, že priame použitie Kontingenčnej tabuľky nie je najšťastnejšie riešenie (treba stále aktualizovať, nejako zadať rozsah údajov ktoré má načítavať, keďže sa budú meniť, vyfiltrovať prázdne riadky,...)

Priame riešenie:
napadlo ma niečo ako „VLOOKUP“ – ak sa hodnota (Range(“A2“) v zozname (Stĺpec E) nenachádza, zadaj ju do posledného voľného riadku (ak sa v zozname už nachádza nerob nič)

Nepriame rešienie:
napadlo ma Cyklom ošetriť preverovanie Stĺpca C (v ktorom sú všetci dodávatelia – aj opakujúci sa) a nejako podmienkou
IF Range(“A2“) ????? Then Exit Sub
Range(“A2“).Value = ?????


Neviem si sať s tým poradiť. Pomóc.

Příloha: zip12595_zosit1.zip (18kB, staženo 27x)
Zaslat odpověď >

Strana:  « předchozí  1 2
icon #012618
eLCHa
Do UF s comboboxem vložíte např takto:

Private Sub UserForm_Initialize()
Dim rInputRange As Range
Set rInputRange = Range("XY")

Dim colList As New Collection
On Error Resume Next
Dim rCell As Range
For Each rCell In rInputRange.Cells
colList.Add rCell.Value, CStr(rCell.Value)
Next rCell
Set rCell = Nothing
On Error GoTo 0

With ComboBox1
.AddItem colList(1)
Dim I As Integer, J As Integer
For I = 2 To colList.Count
For J = 0 To .ListCount
If J = .ListCount Then
.AddItem colList(I)
Else
If colList(I) < ComboBox1.List(J) Then
.AddItem colList(I), J
Exit For
End If
End If
Next J
Next I
.ListIndex = 0
End With 'ComboBox1

Set rInputRange = Nothing
End Sub
citovat
icon #012619
eLCHa
Pokud chcete použít RowSource, vložte na list dynamickou pojmenovanou oblast

např =POSUN(List1!$A$1;0;0;POČET2(List1!$A:$A);1)

a tu pak použijtecitovat
icon #012621
eLCHa
Nicméně je tak nějak vhodné, aby data v comboboxu byla seřazená

Tady je moje procedurka na výpis neduplicitních hodnot

Sub subUnique()
'Koutný Karel
'Vyhledá v oblasti jedinečné buňky a vypíše je na nový list

Dim rSelection As Range
Set rSelection = Selection

Dim colList As New Collection
On Error Resume Next
Dim rCell As Range
For Each rCell In rSelection.Cells
colList.Add rCell.Value, CStr(rCell.Value)
Next rCell
Set rCell = Nothing
On Error GoTo 0

ReDim sUnique(colList.Count - 1, 0) As String
Dim I As Integer, J As Integer
For I = 1 To colList.Count
sUnique(I - 1, 0) = colList(1)
For J = 1 To colList.Count
If sUnique(I - 1, 0) > colList(J) Then
sUnique(I - 1, 0) = colList(J)
End If
Next J
colList.Remove sUnique(I - 1, 0)
Next I

Dim shNew As Worksheet
Set shNew = Sheets.Add
shNew.Cells(1).Resize(UBound(sUnique, 1) + 1, 1).Value = sUnique

Set shNew = Nothing
Set rSelection = Nothing
End Sub
citovat

Strana:  « předchozí  1 2

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje