teraz niesom na svojom pocitaci a mam tu aj stary Office
takze napisem tu len makro:
Sub test()
aRow = Sheets("concatenate").Cells(1, 1).CurrentRegion.Rows.Count
d = 1
For y = 1 To Sheets("concatenate").Cells(1, 1).CurrentRegion.Columns.Count
For Z = y To Sheets("concatenate").Cells(1, 1).CurrentRegion.Columns.Count
If y <> Z Then
Sheets("Output").Range(Cells(1, d), Cells(aRow, d)).FormulaR1C1 = "=concatenate!RC" & y & "&""_""&concatenate!RC" & Z
d = d + 1
End If
Next
Next
End Sub
to si potom prilep k dokumentu
ok, skus to .))
to eLCHa: prave toto ma teraz napadlo :)))))
to AL: ano, ide som hlupak mam sa co este ucit .)
ochvilu to zakomponujem do prvej verzii makra
vedel by niekto zrychlit tohoto hada??
pusta sa to cez "StartGame"
ide o funkciu:
Application.OnTime Now() + TimeValue("00:00:01"), "Timer"
aj ked ju prepisem na
Application.OnTime Now + 0.000001, "Timer"
tak bud zblbne alebo minimalna hodnota je 1s
Al: ale aj tak musis v array pole prechadzat to po bunke a nemozes jednym povelom to hodit naraz
musi sa to plnit postupne
for x = lbound(c) to ubound(c)
c(x) = a(x) & " " & b(x)
next
nejde napisat c(0 to 200) = a(0 to 200) & " " & b(0 to 200)
uprava prispevku: SLO BY TO :P
no vidim ze rieseni je tu uz dost tak je len kyticku posielam :))
rychlejsie to nepojde .. nenasiel som funkciu ktora by naraz spojila stlpce do jedneho stlpca :) vsetko sa muselo cyklit pojdnom
Ohladne toho druheho makra to by malo fungovat normalne zadas len v nom ktore stlpce chces aby sa cyklili a to je vse
jedine rozdiel je v tom ze nezadavaju sa stlpce A, B C ale 1,2,3 ich poradie
uz idem domov zajtra rano sa nato pozrem
do minutz preto lebo moje makro ide po bunke a v tomtyo ako to ty potrebujes staci ist po stlpcov .. preto takze zamiesto 8400riadkov x 180 stlpcov spracovavani bude robit len 180 spracovavani :)) rozumieme sa?
toto bude nadlhsie ked to chces vysvetlit :)))))
takze:
MyFile = FileSystem.Dir(Application.ThisWorkbook.Path
& "\XLS\" & "*.*")
Do While MyFile <> ""
ReDim Preserve c(x)
c(x) = MyFile
MyFile = FileSystem.Dir
x = x + 1
Loop
1. zaznamena cestu k prvemu suboru v adresari
2. do while cyklus: cykluje subory v adresaroch az kym nebude zaidny
3. pre cyklovani sa redimenzuje pole pri zachovani hodnot a zapise aktualny nazov donho
ok teraz k tvojej otazke:
- zapisal si si do pola p1() nazvi suborov
- ale v cykle si udal uz len ze pre 2 subory co ked ich budes mat 15 alebo 20 alebo 0???
preto sa pouziva zapis
For x = LBound(p1) To UBound(p1)
next
- LBound je minimalna hodnoto pola
- UBound je maximalna hodnota pola
ted k otvaraniu suborov:
nato potrebujes spravnej object zadefinovat tj. ze je to excel :P
Dim xlApp As New Excel.Application
a potom len otvoris subor:
xlApp.Workbooks.Open (Application.ThisWorkbook.Path & "\XLS\" & c(x))
- v zatvorke je priama cesta k suboru
tento zapis v nej:
Application.ThisWorkbook.Path
- da cestu k makru
- a potom sme len dopisali k tej ceste adresar XLS a meno suboru c(x)
ked uz ho mas otvoreny a chces s nim nieco robit staci pouzivat klasicke excel prikazi len pred nimi musi byt zapisane
xlApp.NIECO
po ukonceni sa musi zatvorit lebo ked budes cyklovat otvaranie tychto suborov tak sa nezavru .. aj ked ich nevidis to neznamena ze niesu otvorene preto treba zapisat:
xlApp.Workbooks(c(x)).Close
pracu s array polom uz hadam popisat nemusim nie???
ked to nebudes chapat napis ze tomu nerozumies a ja to spracvim za teba :))))))) ... viem vysvetlovat dobre neviem
teraz ma napadlo ze to moze byt 100x rychlejsie .PPPPP
ved toto co si napisal by malo urobit do 1minuty maximalne
ok prerobil som to tak ako ste to chceli v vzkaze
- kombinacia len pre urcite stlpce
je to tak urobene ze tam mate array pole ktore musite naplnit Columns hodnotami a zadefinovat velkost pola
tj.
chcete tam mat len "B" a "D" stlpec
tak musite v makre prepisat
toto:
Dim c(3) As Integer
c(0) = 1
c(1) = 28
c(2) = 29
c(3) = 30
na:
Dim c(1) As Integer
c(0) = 2
c(1) = 4
skontrolujte si to a dajte vediet ci to je dobre
skus toto
tabulka musi zacinat na bunke "A1"
a to ma robit pre kazdy zapis v tabulke?
dnes sa dari nevsimol som si ze ten dokument je bez makier .)) ... takze som to musel robit odznova ale dorobil som tam aby si tam nemusel zadavat pocet riadkov a stlpcov (tabulka vzdy musi zacat od bunky "A1")
skontroluj si to
to co som napisal bola hlupost :))
ale uz tomu zacinam chapat co asi chces len jednu vec
vsetky kombinacie v jednom riadku chces ze???
a to opakovat pre kazdy dalsi riadok??
resp. bude tabulka 5x5 a vysledna by mala byt ked sa nemzlim :PPP 10x5
Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.
Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.