Stránka 1 z 1

Excel - vyhledavani na zaklade vice vstupu

Napsal: 26 led 2009 16:15
od mirakos
Zdravim,

potreboval bych poradit, mam dva sesity nasledujiciho formatu

Sesit1
Datum, Var. symbol, neco, neco

Sesit2
Neco, neco, Datum, Var. symbol, neco, neco

A potrebuji do Sesitu1 dotahnout hodnotu z sloupce x ze Sesitu2, samozrejme pro dany datum a variabilni symbol ze sesitu 1.

Pres s vyhledat to nepujde, tam lze hledat jen jednu hodnotu.
Diky za pomoc
Mira

Re: Excel - vyhledavani na zaklade vice vstupu  Vyřešeno

Napsal: 26 led 2009 19:03
od navstevnik
nize je procedura VBA ( v nejnutnejsim rozsahu, muzes doplnit o odstraneni promennych z pameti,..), zadej cestu a soubor ve kterem je vyhledavano, uprav pripadne adresy sloupcu s VS a zadej ofsety doplnovaneho sloupce pro oba sesity

Kód: Vybrat vše

Option Explicit

Sub VyhledatDoplnit()
  Dim Wbk2 As Workbook, Wsht2 As Worksheet, VarS2 As Range, VCll2 As Range, firstAddress As String
  Dim VarS1 As Range, VCll1 As Range
  '
  With ActiveSheet ' aktivni list v doplnovanem sesitu
    Set VarS1 = .Range(.Range("B2"), .Range("B2").End(xlDown))  ' blok bunek s var symbolem
  End With
  'otevrit sesit 2
  On Error GoTo Err1
  Set Wbk2 = Workbooks.Open("Disk:\cesta\soubor.xls")  'cesta soubor
  Set Wsht2 = Wbk2.Worksheets("list1") ' prohledavany list
  With Wsht2
    Set VarS2 = .Range(.Range("D2"), .Range("D2").End(xlDown))  ' blok bunek s var symbolem
  End With
  ' vyhledat v sesitu 2 a doplnit do sesitu 1
  For Each VCll1 In VarS1.Cells
    With VarS2
      ' vyhledat v sesitu 2
      Set VCll2 = .Find(VCll1, LookIn:=xlValues, LookAt:=xlWhole)
      If Not VCll2 Is Nothing Then ' nalezen VS
        firstAddress = VCll2.Address
        Do
          If VCll2.Offset(0, -1).Value = VCll1.Offset(0, -1).Value Then  ' shoda data
            ' doplnit do sesitu 1
            VCll1.Offset(0, 4).Value = VCll2.Offset(0, 8).Value  ' ofsety sloupcu zadat dle pozadavku
          End If
          Set VCll2 = .FindNext(VCll2)
        Loop While Not VCll2 Is Nothing And VCll2.Address <> firstAddress
      End If
    End With
  Next VCll1
  Wbk2.Close
  Exit Sub
Err1:
  MsgBox "Chybna cesta nebo nazev souboru."
End Sub

Re: Excel - vyhledavani na zaklade vice vstupu

Napsal: 28 led 2009 08:05
od mirakos
Diky, to je presne ono :wink:
Jen jsem to poupravil at je to v ramci jednoho Workbooku

Jeste jednou DIK

Re: Excel - vyhledavani na zaklade vice vstupu

Napsal: 28 led 2009 10:17
od mike007
mirakos: Příště prosím označ vlákno za vyřešené. Dnes jsem to udělal za tebe...

Re: Excel - vyhledavani na zaklade vice vstupu

Napsal: 06 úno 2009 14:21
od JarZa
jde to i pomocí maticových vzorců, viz příklad v příloze