Makro VBA kopírování z jiného sešitu Vyřešeno

Programy pro práci v kanceláři (Word, Excel, Access…=>Office)

Moderátor: Mods_senior

Acce
nováček
Příspěvky: 4
Registrován: srpen 17
Pohlaví: Muž

Makro VBA kopírování z jiného sešitu

Příspěvekod Acce » 28 srp 2017 09:48

Dobrý den ahoj,

mohli byste mi prosím poradit ohledně maker v Excelu?? Už si nevím rady. Nějakým způsobem s VBA zvládám začátky, případně si makro nahraju záznamem.Tak se pokusím nejpřesněji popsat co přesně potřebuji.
Po spuštění makra v sešitu 1 se podle hodnot ve sloupci K podívá do neaktivního sešitu2(v dokumentech) a vyhledá stejné hodnoty, které jsou (v sešitu2) ve sloupci L a v případě nalezení shody zkopíruje ze sešitu2 buňku ze sloupce A do sešitu1 do sloupce L.

Předem děkuji za jakékoliv pokusy o pomoc. :lookround:



Reklama
elninoslov
nováček
Příspěvky: 23
Registrován: červen 13
Pohlaví: Muž

Re: Makro VBA kopírování z jiného sešitu

Příspěvekod elninoslov » 29 srp 2017 10:15

2 príklady. V oboch sú použité na dolovanie dát vzorce, ktoré sú vložené makrom. Prvý počíta s rovnakým názvom listu prehľadávaného súboru, druhý počíta s tým, že list na prehľadanie je vždy prvý v poradí.
Nemáte oprávnění prohlížet přiložené soubory.

Acce
nováček
Příspěvky: 4
Registrován: srpen 17
Pohlaví: Muž

Re: Makro VBA kopírování z jiného sešitu

Příspěvekod Acce » 29 srp 2017 11:32

Vypadá, že nebude chybět moc a začne to fungovat, nicméně zatím tomu tak není....v prvním případě po výběru dokumentu se nestane vůbec nic, v případě druhém po nakliknutí souboru, v kterém by měl hledat, hodí chybu v řádku - With Workbooks.Open(Subor) ...Děkuji, vážím si toho :-)

elninoslov
nováček
Příspěvky: 23
Registrován: červen 13
Pohlaví: Muž

Re: Makro VBA kopírování z jiného sešitu

Příspěvekod elninoslov » 29 srp 2017 15:16

Zmente tie hodnoty A,c,d napr. na C,D,A, a stavím sa, že si všimnete rozdielne výsledky. Pozrite sa do Zošit2, či je usporiadaný ako ten Váš (ktorý nemáme). Dajte si BreakPoint (klik myši na tenký stĺpec vľavo od kódu) na riadok

Kód: Vybrat vše

Subor = VyberSubor

a makro si odkrokujte, sledujte výsledok.

Druhé makro - skúste si zmeniť ten "diskutabilný" riadok na

Kód: Vybrat vše

Workbooks.Open (Subor)
  With ActiveWorkbook

a rovnako si dajte BreakPoint na rovnaký riadok a makro si cez F8 po spustení odkrokujte.

U mňa fungujú obe. Tu bude záležať na informáciách, ktoré neposkytujete, verzia Office, skutočné rozmiestnenie dát, a pod.
Nemáte oprávnění prohlížet přiložené soubory.

Acce
nováček
Příspěvky: 4
Registrován: srpen 17
Pohlaví: Muž

Re: Makro VBA kopírování z jiného sešitu

Příspěvekod Acce » 29 srp 2017 15:34

Pokusný dokumenty už se rozběhly, super...teď to úspěšně zavést do ostré verze....Díky moc, nečekal sem, že mi někdo až takto pomůže. Jen ještě jedna drobnost, jelikož dokument, ze kterého se berou data, je pořád na jednom místě jak by vypadal řádek s kodem bez ručního zadání dokumentu, cesta by byla přímo v makru.... Díky...posílám alespoň pomyslného panáka borovičky...už teď jste mi opravdu pomohl :clap: :thumbup:

Dodatečně přidáno po 2 minutách 5 vteřinách:
verze office je 2007 (12.0.4518.1014), rozmístění dat ve sloupcích je jak jsem psal...máte na mysli rozmístění souborů ??

elninoslov
nováček
Příspěvky: 23
Registrován: červen 13
Pohlaví: Muž

Re: Makro VBA kopírování z jiného sešitu  Vyřešeno

Příspěvekod elninoslov » 29 srp 2017 17:22

Kód: Vybrat vše

Sub Vyhladaj()  'Ak sa volá list na prehľadávanie vždy "Hárok1"
Dim Subor As String, R As Long
  Subor = "Z:\Vyhľadávanie v inom zošite\Zošit2.xlsx"
  If Len(Dir(Subor)) = 0 Then MsgBox ("Súbor neexistuje." & vbNewLine & Subor): Exit Sub
  Subor = "'" & WorksheetFunction.Replace(Subor, InStrRev(Subor, "\"), 1, "\[") & "]Hárok1'!"
 
  With ActiveSheet
    R = .Cells(Rows.Count, 11).End(xlUp).Row - 1
    If R > 0 Then
      With .Cells(2, 12).Resize(R)
        .Formula = "=IF(ISERROR(MATCH(K2," & Subor & "$L:$L,0)),"""",INDEX(" & Subor & "$A:$A,MATCH(K2," & Subor & "$L:$L,0)))"
        .Value2 = .Value2
      End With
    End If
  End With
End Sub


Kód: Vybrat vše

Sub Vyhladaj2() 'Ak je list na prehľadávanie vždy 1. v poradí (bez ohľadu na meno listu)
Dim Subor As String, R As Long, WSN As String
  Subor = "Z:\Vyhľadávanie v inom zošite\Zošit2.xlsx"
  If Len(Dir(Subor)) = 0 Then MsgBox ("Súbor neexistuje." & vbNewLine & Subor): Exit Sub
 
  Application.ScreenUpdating = False
  Workbooks.Open (Subor)
  With ActiveWorkbook
    WSN = .Worksheets(1).Name
    .Close False
  End With
  Application.ScreenUpdating = True
 
  Subor = "'" & WorksheetFunction.Replace(Subor, InStrRev(Subor, "\"), 1, "\[") & "]" & WSN & "'!"
  With ActiveSheet
    R = .Cells(Rows.Count, 11).End(xlUp).Row - 1
    If R > 0 Then
      With .Cells(2, 12).Resize(R)
        .Formula = "=IF(ISERROR(MATCH(K2," & Subor & "$L:$L,0)),"""",INDEX(" & Subor & "$A:$A,MATCH(K2," & Subor & "$L:$L,0)))"
        .Value2 = .Value2
      End With
    End If
  End With
End Sub

Acce
nováček
Příspěvky: 4
Registrován: srpen 17
Pohlaví: Muž

Re: Makro VBA kopírování z jiného sešitu

Příspěvekod Acce » 31 srp 2017 16:01

Děkuji moc, včera jsem byl pracovně pryč, takže jsem na to koukl až dnes...ve vzorovém sešitu vše fungovalo, v reálnym dokumentu ne, nakonec byl nejspíš problém ve formátu sešitu, celý sem zkopíroval a vytvořil nový soubor, po nepatrných úpravách vše funguje, jak jsem si představoval...Díky moc, opravdu si toho vážím...zastávám heslo: ''Když můžu tak pomůžu''..a jsem rád, že nejsem sám. Ještě jednou díky elninoslov


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Makro na ukládání sešitu
    od Jsimi » 17 zář 2017 23:37 » v Kancelářské balíky
    3
    190
    od elninoslov
    18 zář 2017 06:38
  • Kopírování a třídění označených buněk do jiných sešitů
    od jacobh » 09 bře 2017 10:28 » v Kancelářské balíky
    3
    348
    od xlnc
    10 bře 2017 17:26
  • Makro v excelu (VBA)
    od xp3 » 22 bře 2017 17:39 » v Kancelářské balíky
    11
    718
    od xp3
    31 bře 2017 15:46
  • Kopírování a mazání dat přes VBA v Excelu
    od janzen01 » 21 črc 2017 18:20 » v Kancelářské balíky
    1
    257
    od atari
    25 črc 2017 09:09
  • VBA import a kopirování buněk do zformátované tabulky
    od rk9 » 05 črc 2017 07:27 » v Kancelářské balíky
    15
    677
    od rk9
    01 srp 2017 08:49

Zpět na “Kancelářské balíky”

Kdo je online

Uživatelé prohlížející si toto fórum: CommonCrawl [Bot] a 3 hosti