Stránka 1 z 1

Vyhledání hodnoty v oblasti a zápis do vedlejší buňky

Napsal: 02 říj 2010 20:55
od m.niki
Dobrý den, potřeboval bych poradit s makrem, které by v oblasti S3:S168 vyhledalo hodotu buňky A1, a potom o dvě buňky vedle a dvě buňky dolů od buňky obsahující hodnotu buňky A1, zapsalo hodnotu buňky B1. Takže v případě, že by hodnota buňky A1 byla v buňce S68, zapsala by se hodnota buňky B1 do buňky U70. Hodnota buňky A1 může být v žádné, jedné, nebo i více buňkách z výše uvedené oblasti. Děkuji moc za rady

Re: Vyhledání hodnoty v oblasti a zápis do vedlejší buňky

Napsal: 02 říj 2010 21:36
od mike007
A musí to být nutně makro? Na to stačí jednoduchý vzoreček s fcí KDYŽ (IF) + absolutní adresování.

Re: Vyhledání hodnoty v oblasti a zápis do vedlejší buňky  Vyřešeno

Napsal: 02 říj 2010 21:37
od navstevnik
Nas zakaznik, nas pan.
Poslouzi tato procedura:

Kód: Vybrat vše

Option Explicit

Sub NajdiDosad()
  Dim Blk As Range, BCll As Range
  Dim ACll As Range
  Dim FrstAddr As String
  With Worksheets("list1")
    Set ACll = .Range("a1")  ' zdroj
    Set Blk = .Range("s3:s168") ' definice prohledavaneho bloku
    ' prohledat blok
    With Blk
      Set BCll = .Find(ACll.Value, LookIn:=xlValues, LookAt:=xlWhole)
      If Not BCll Is Nothing Then  ' nalezena shoda
        FrstAddr = BCll.Address
        Do
          BCll.Offset(2, 2).Value = ACll.Offset(0, 1).Value  ' vlozit hodnotu z B1
          Set BCll = .FindNext(BCll)  ' hledat dal
        Loop While Not BCll Is Nothing And BCll.Address <> FrstAddr
      End If
    End With
  End With
  ' odstranit objektove promenne
  Set ACll = Nothing
  Set Blk = Nothing
  Set BCll = Nothing
End Sub

Re: Vyhledání hodnoty v oblasti a zápis do vedlejší buňky

Napsal: 02 říj 2010 21:47
od m.niki
Oběma vám děkuji za rychlou reakci, makro to být musí, je to součástí většího projektu. Návštěvníku tvoje makro jsem ozkoušel a jako vždy funguje perfektně, díky moc.