Stránka 1 z 1

Excel VBA přidat hodnoty z jiného listu

Napsal: 17 lis 2010 18:28
od m.a.x.2.0.0.4
V jednom souboru mám jména a adresy v druhém mám mám jména a emailové adresy. Potřeboval bych přetáhnout emailové adresy do prvního soubor do 3. sloupce. Data jsou na přeskáčku, takže bych to potřeboval porovnat podle jména a jeho základě přidat email. Pomůže mi někdo?

Re: Excel VBA přidat hodnoty z jiného listu

Napsal: 17 lis 2010 18:40
od navstevnik
Nepotrebujes VBA, oba sesity jsou otevreny, do prvniho sesitu do bunky C1 vloz: =SVYHLEDAT(A1;[Sešit2]List1!$A$1:$B$5;2;NEPRAVDA) a kopiruj do dalsich bunek sloupce C:C

Re: Excel VBA přidat hodnoty z jiného listu

Napsal: 17 lis 2010 22:09
od m.a.x.2.0.0.4
Ale to mi tam zůstane vzor ne? Ten já tam nepotřebuji, proto bych byl radši za VBA

Re: Excel VBA přidat hodnoty z jiného listu

Napsal: 17 lis 2010 22:15
od navstevnik
Po doplneni vyber cely sloupec, Ctrl+c a podle verze Excelu si najdi Upravy>Vlozit jinak>Hodnoty nebo Domu>Vlozit>Vlozit jinak>Hodnoty

Re: Excel VBA přidat hodnoty z jiného listu

Napsal: 17 lis 2010 22:22
od m.a.x.2.0.0.4
To se mi zdá zbytečně složitý, makro by to řešilo rychleji a pohodlněji

Re: Excel VBA přidat hodnoty z jiného listu

Napsal: 17 lis 2010 22:25
od navstevnik
Jiste, pokud ti to makro napise nekdo jiny a prinese na zlatem podnose, to bude rychlejsi a hlavne pohodlnejsi

Re: Excel VBA přidat hodnoty z jiného listu

Napsal: 18 lis 2010 11:01
od m.a.x.2.0.0.4
Omlouvám se, kdybych to uměl sám tak s tím nikoho neotravuji, ale když nevím ani jak začít. Zapomeň na to, zkusím si to někde najít na internetu.

Re: Excel VBA přidat hodnoty z jiného listu

Napsal: 18 lis 2010 11:53
od navstevnik
Citis se zbytetecne urazeny.
Pro dany ucel pozadovat makro je chodit s kanonem na vrabce. Napsani i toho nejjednodussiho makra zabere vice casu a je na to potreba mnohem vice uderu na klavesnici ( deklarace promennych, prirazeni hodnot, pripadne otevreni druheho sesitu vcetne osetreni chyb, prohledavani ve druhem sesitu ve smycce,... pokud ma procedura radne fungovat a to pomijim interakci mezi uzivatelem a programem pri zadavani vstupnich parametru, pokud neni zadouci, aby uzovatel zadaval parametry do procedury), nez pouziti funkci listu, kde postaci par kliku na mys.
Pokud jse o zacatky psani procedur VBA, pak zacni treba zde: http://www.officir.ic.cz/excelentne.html nebo http://www1.osu.cz/studium/vawin/~studijni.opory/

Re: Excel VBA přidat hodnoty z jiného listu

Napsal: 18 lis 2010 15:08
od m.a.x.2.0.0.4
Tak ono z tvého předchozího příspěvku to vyznělo jako když jsem nějaký mizera co chce koláče bez práce. Já jsem jen chtěl nasměrovat kde začít s takovouhle funkcí, nějaké základy mám, ale tohle je pro mě ještě "everest". Spusit nahrávání makra při přepnutí sešitu a následně dát hledat údaj bych věděl jak to upravit, ale nevím jak připsat, aby mi zkopíroval buňku s relativní adresou a následně ji doplnil do prvního sešitu a pokračoval na další řádek.

Re: Excel VBA přidat hodnoty z jiného listu  Vyřešeno

Napsal: 18 lis 2010 17:03
od navstevnik
No ja jsem nenapsal furiantske:
To se mi zdá zbytečně složitý, makro by to řešilo rychleji a pohodlněji

Pro vychozi zadani - cilovy sesit se jmeny a do 3. sloupce ze zdrojoveho sesitu prenest hodnoty z 2. sloupce - pouzij nize uvedenou proceduru, vlozit v editoru VBA do standardniho modulu ciloveho sesitu (sesit1), spusti F5 z menu nebo ze sesitu (neuvadis verzi) v Excelu 2000: Nastroje>Makro>Makra>... (pro Excel 2007: Ribbon>Zobrazeni>Makra>Zobrazit makra>...), uprav nazvy sesitu a listu v procedure, demo provedeni:

Kód: Vybrat vše

Option Explicit

Sub DoplnHodnoty()
' deklarace promennych
  Dim SWbk As Workbook, SWsht As Worksheet, SBlk As Range, SCll As Range
  Dim TWbk As Workbook, TWsht As Worksheet, TBlk As Range, TCll As Range
  ' definice sesitu, listu bloku bunek a bunek
  ' zdrojovy sesit
  Set SWbk = Workbooks("sešit2.xlsx")
  Set SWsht = SWbk.Worksheets("list1")
  With SWsht  ' mozny zpusob definice bloku
    Set SBlk = Intersect(.UsedRange, .Range("a:a"))
  End With
  ' cilovy sesit
  Set TWbk = Workbooks("sešit1.xlsm")
  Set TWsht = TWbk.Worksheets("list1")
  With TWsht
    Set TBlk = Intersect(.UsedRange, .Range("a:a"))
  End With
  ' pro jednotlive bunky v cilovem bloku prohledavat zdrojovy blok
  ' pri nalezeni prenest hodnotu ze sloupce B;B
  ' do sloupce C:C ciloveho bloku
  For Each TCll In TBlk.Cells
    With SBlk  ' metoda Find
      Set SCll = .Find(TCll.Value, LookIn:=xlValues, LookAt:=xlWhole)
      If Not SCll Is Nothing Then  ' nalezeno
        TCll.Offset(0, 2).Value = SCll.Offset(0, 1).Value  ' prennos hodnoty
      End If
    End With
  Next TCll  ' dalsi
  ' odstranit objektove promenne
  Set SCll = Nothing
  Set SBlk = Nothing
  Set SWsht = Nothing
  Set SWbk = Nothing
  Set TCll = Nothing
  Set TBlk = Nothing
  Set TWsht = Nothing
  Set TWbk = Nothing
End Sub

Re: Excel VBA přidat hodnoty z jiného listu

Napsal: 19 lis 2010 12:35
od m.a.x.2.0.0.4
Funguje to bezvadně, mockrát děkuji