Stránka 1 z 1
pomoc s makrem v Excelu
Napsal: 07 črc 2010 16:57
od asanplasan
zdravim, mohl by mi nekdo ochotny pomoci vytvorit makro: list 1, sloupec 1, radek 1 az x, vyber bunku, najdi totoznou na listu 2, kdyz najdes zkopiruj nektere bunky ze stejneho radku ( barevne rozliseno ) do listu 1 ( do stejne barevnych bunek ). a pokracuj, dokud jsou ve sloupci 1 data.
neco jsem udelal pomoci "zaznam makra" ale nejsem schopen ho donutit aby pokracoval vic jak jeden radek.
Diky za pomoc chytrejsich. Asanplasan
p.s. priloha se souborem
Re: pomoc s makrem v Excelu
Napsal: 07 črc 2010 17:48
od navstevnik
Upresni:
list1 v popisu pozadovaneho makra je v prilozenem sesitu list import na web, radek 1 je radek 7:7 na tomto listu?
list2 je list data, totozna bunka je ve sloupci A:A?
Na listu data nejsou ve sloupci A:A jakakoliv data odpovidajici list1, sloupce A:A.
Na list1 jsou od radku 344 nejaka data, jakou maji souvislost s pozadavkem?
Pripoj novou prilohu obsahujici pouze relevantni data.
Re: pomoc s makrem v Excelu
Napsal: 07 črc 2010 18:52
od asanplasan
se omlouvam, ale jak jsem zmensoval velikost souboru, tak jsem to promazal spatne.
Tak to posilam zpet a nechal jsem tam jenom tri radky na zkousku.
list1, sloupec A, bunka 2 az ... ,, a list 2, sloupec A, bunka 2 jsou ty od kud se hledaji a nachazeji, a z listu 2 do listu 1 se dle barev kopiruji nalezene bunky z prislusneho radku.
diky Ashan
Re: pomoc s makrem v Excelu
Napsal: 07 črc 2010 21:15
od navstevnik
Nize uvedena procedura vykona pozadovane (na listu1 odstran poznamky v A31:A36; hlavicky ve sloupcich A:A zustanou rozdilne jako v ukazce); vloz do standardniho modulu, volat napr. klavesovou zkratkou nebo z menu:
Kód: Vybrat vše
Option Explicit
Sub Dopln()
' deklarace promennych
Dim SBlk As Range, SCll As Range
Dim FBlk As Range, FCll As Range
' definice bloku ma listu 1
With Worksheets("list1")
Set SBlk = .Range("A2:A" & .Cells(Rows.Count, 1).End(xlUp).Row)
End With
' definice bloku na listu 2
With Worksheets("list2")
Set FBlk = .Range("A1:A" & .Cells(Rows.Count, 1).End(xlUp).Row)
End With
' ve smycce podle bunek v SBlk prohledavat FBlk
For Each SCll In SBlk.Cells
Set FCll = FBlk.Find(SCll.Value, LookIn:=xlValue, LookAt:=xlWhole)
' kdyz nalezeno, prenest pozadovana data
If Not FCll Is Nothing Then
With SCll
.Offset(0, 4).Value = FCll.Offset(0, 2).Value
.Offset(0, 6).Value = FCll.Offset(0, 10).Value
.Offset(0, 11).Value = FCll.Offset(0, 15).Value
.Offset(0, 12).Value = FCll.Offset(0, 9).Value
End With
End If
Next SCll
' odstranit objektove promenne
Set FCll = Nothing
Set FBlk = Nothing
Set SCll = Nothing
Set SBlk = Nothing
End Sub
Re: pomoc s makrem v Excelu
Napsal: 09 črc 2010 09:36
od asanplasan
zdavim a omlouvam se, dostal jsem se na PC az dnes.
udelal jsem vse dle tveho navodu, ale dava mi to chybu: " run-time error ´9´ Subscript out of range " a kdyz dym debug, zlute mi oznaci tento radek:" Set FCll = FBlk.Find(SCll.Value, LookIn:=xlValue, LookAt:=xlWhole)"
pls co jsem udelal spatne?
diky Ashan
Re: pomoc s makrem v Excelu
Napsal: 09 črc 2010 10:24
od navstevnik
Psal jsem to v nizsi verzi Excelu v dobre vire, ze je zajistena zpetna kompatibilita (mimo rozdily uvedene MS), bohuzel pro Excel 2007 je nutno v procedure v metode Find pro parametr
LookIn pouzit konstantu
xlValues namisto xlValue
Kód: Vybrat vše
...
Set FCll = FBlk.Find(SCll.Value, LookIn:=xlValues, LookAt:=xlWhole)
...
Re: pomoc s makrem v Excelu
Napsal: 09 črc 2010 11:05
od asanplasan
tak jsem to vyzkousel a funguje je to. diky moc
jeste bych te obtezoval, muzu si nejak ulozit toto makro, aby se nevztahovalo pouze k tomuto konkretnimu sesitu, ale abych si ho mohl zavolat do jineho? dik Ashan
Re: pomoc s makrem v Excelu
Napsal: 09 črc 2010 11:25
od asanplasan
asi jsem to nasel, pres export a import, pri zachovani shodneho pojmenovani listu atd to funguje. jeste jednou dekuji a preji hezky den navstevniku
Re: pomoc s makrem v Excelu
Napsal: 09 črc 2010 12:46
od navstevnik
Najdi si v napovede heslo Osobni sesit maker