Keresés

Részletes keresés

SQLkerdes Creative Commons License 2010.11.24 0 0 13370

Én még ilyet sem láttam, de lehet ez az én hibám:

 

usor = usor = ActiveSheet.UsedRange.Rows.Count

 

Ez viszont hacsak nem direkt csináltad nem jó:

 

For i=3 to DB

...

i=i+1

Next

 

A for változóját extrém ritkán manipuláljuk a for cikluson belül.  

Simán lehet, hogy az i a 4 értéket veszi fel és a Next nem tud mit kezdeni vele.  Ha kettesével akarsz lépkedni a For-ban akkor használd a Step-et

 

For i=1 to DB step 2

 

...

 

Next

Előzmény: wawabagus (13366)
SQLkerdes Creative Commons License 2010.11.24 0 0 13369

Első ránézésre nekem gyanús az "útvonal" nevű változó.

Próbáld meg utvonal-ként

Előzmény: wawabagus (13366)
wawabagus Creative Commons License 2010.11.24 0 0 13368

Hát, jó azért én is sokat tanultam könyvekből :-). /Excel hacks pl, meg elődöm exceleiből, meg a netről/.

Én szeretem ezt az interaktív dolgot a fórumozásban...a makrós könyvek meg annyira érthetetlenek nekem.

Nekem főleg az elején segített a forum /ti/, meg most hogy makró írást próbálgatom :-).

:-)

 

Előzmény: Törölt nick (13367)
Törölt nick Creative Commons License 2010.11.24 0 0 13367

Napuff. Most mindenki magára fogja venni. Én is sok mindent tanultam meg itt - de inkább könyvekből, meg angol fórumokon. Ill. prog.hu (Ja és nem csak excel VBE-t)

Előzmény: wawabagus (13364)
wawabagus Creative Commons License 2010.11.24 0 0 13366

Sziasztok!

400-as error code?

Mi a baja a macronak?

Ha debugot mondana még le tudnám követni mit vétettem, de így...? Gőzöm sincs.

Nem értem mit kell javítanom...

 

A makró egy folderból kinyit minden ott lévő fájlt és bemásol egy munkafüzetbe...elméletileg.

Tisztában vagyok azzal, hogy még sokat kell alakítani a makrón, de ez a kód most meglőtt...

Ti értitek mit akar nekem mondani?

Köszi előre is

------------

Sub megnyitás()

respond = MsgBox("Do you have other excel file open?", vbYesNo, "Question:")
    If respond = vbYes Then
        MsgBox "Please close all excel files except the temple!"
        Exit Sub
    Else

útvonal = "S:AdHoc AnalysisMACROKrisztateszt"

With Application.FileSearch
    .LookIn = útvonal
    .FileType = msoFileTypeExcelWorkbooks
    .Execute
For i = 1 To .FoundFiles.Count
     Workbooks.Open .FoundFiles(i)
Next

End With
End If

Db = Workbooks.Count

For i = 3 To Db 'azért 3, mert nekem megnyíllik a personalom is
    Workbooks(i).Sheets(1).Range(A2).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy

    Workbooks("Trackcode merge template.xls").Select
    Sheets("Combine").Select
    usor = usor = ActiveSheet.UsedRange.Rows.Count
    Cells(usor + 1, 1).Select
    Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
    SkipBlanks:=False, Transpose:=False
    ActiveSheet.Paste
i = i + 1
Next

End Sub

Mad árka Creative Commons License 2010.11.24 0 0 13365

Delila10, boraka és robbantómester: köszönöm a segítségeteket, megvilágosodtam minden feltett kérdés kapcsán. :)

wawabagus Creative Commons License 2010.11.24 0 0 13364

OFF

Ajaj, én vajon hol ülök :-)?

Leellenőriztem, hogy 2005 óta itt élősködöm :-).

Tudásom 60% kb itt szereztem :-)...hála nektek!

ON

Törölt nick Creative Commons License 2010.11.24 0 0 13363

OFF

Próbálok a hozzászólásban iróniát látni (nem a tiédben) - biztosan naív vagyok.

Én úgy látom, hogy a kérdést feltevők nagyobb része egy kövön ül: Valaki megveregeti a vállát a tiéd helyett.

Viszont vannak pofátlansági fokozatok. A csúcsán a kolléga van, mert nem tud semmit - az alján pedig az, aki érti is hogy miről van szó, ha nem érti akkor pedig kitapossa az utat a világosságig bármi áron.

Aki nem foglal helyet ebben a piramisban, az meg segít önzetlenül - mert jó neki is hogy (idegeneknek) megmutatta hogy milyen ügyesokos. Jó a másik félnek is mert: Tanult valamit, vagy épp megveregette a főnöke a vállát.

Egyébként van Rászi-nál egy jó adag szemtelen provokáció is alighanem - viszont simán tükröt tart azok elé, akik kész megoldást adnak, pedig sokszor érezni egy egy kérdésnél, hogy nem kéne (pl. házifeladatosok)

Prog.hu-n ütik az ilyeneket. ( és szerintem nem kell azt írom, hogy "más fórumokon")

ON

Előzmény: SQLkerdes (13362)
SQLkerdes Creative Commons License 2010.11.24 0 0 13362

OFF

Én nem tudom, nekem nem szimpatikus mikor valaki nyíltan azt hangoztatja, hogy más munkájával fog babérokat learatni.

Lehet old school vagyok, de ez szerintem nem helyes.

Nyilván ennek is vannak fokozatai, de amikor valaki nem tűnik érteni a megoldást, amit aztán majd sajátjaként prezentál, az a skála tetején van nálam.

Ha valaki még nyíltan hirdeti is, az meg a skála tetejének a teteje.

ON

Előzmény: Rászid-lob (13361)
Rászid-lob Creative Commons License 2010.11.24 0 0 13361

Rendes tőled, hogy ilyen sokat kinézel a főnökből. (- nem mondom el neki)

Megnyugtatlak. Nem fogja tudni. Elég jól eltudom magam adni.

 

Egyébként minden elismerésem annak, aki így keni-vágja a programozást.

Előzmény: Törölt nick (13358)
Törölt nick Creative Commons License 2010.11.23 0 0 13360

Köszi, én begyűjtöttem.

 

Előzmény: SQLkerdes (13359)
SQLkerdes Creative Commons License 2010.11.23 0 0 13359

VBA-ban érdekelteknek egy kis szines:

 

http://www.codeforexcelandoutlook.com/blog/2008/09/trimming-cells-before-and-after/

 

Én nem tudtam, hátha más is érdekesnek találja a következő technikát a VBA kódok felgyorsításához:

- a worksheet tartalmát beolvassuk egy VBA változóba (array)

- utána nem a worksheet-tel dolgozunk, hanem az array-el,

- majd a végén az eredményeket visszaírjuk a worksheetbe.

 

Úgy tűnik, hogy amikor a VBA kommunikál az excellel az meglehetősen lassú, így ez a technika rendkívüli gyorsulást tud okozni!

 

A cikkben egy sima TRIM függvényt használ és a worksheet-es verzió 25 másodpercig fut le, a fenti array-es tachnika 0,06 (!) másodperc alatt!!!

 

Nyilván ezt a technikát nem lehet mindenhol használni, de ahol lehet ott úgy tűnik nagyon durván felgyorsítja a futást, ha az excel-lel történő kapcsolattartást minimalizáljuk.

Törölt nick Creative Commons License 2010.11.23 0 0 13358

Nyugi, a főnököd tudni fogja hogy nem te csináltad ;)

Előzmény: Rászid-lob (13355)
Or Kán Creative Commons License 2010.11.23 0 0 13357

Igazán nincs mit: neked öröm nekem szórakozás. :)

 

A hiba: a lapok összemásolásánál lehagyja egy-egy lap utolsó sorát a program. Ez azért van, mert amikor az új munkafüzetbe másol, akkor megkeresi az éppen aktuális (a másolás utáni) utolsó sort, és annak megfelelően rakja oda az új lap adatait. itt azonban elkövettem azt a hibát, hogy az utolsó sor után nem léptettem a számlálót, így "törli" (merthogy rámásol) az új lap első sora az előző utolsóját. Ezért a programot az alábbiak szerint kell változtani (kézzel be tudod írni a kódba, csak odakattintasz az egérrel: egy "+1"-et kell beírni):

 

sub msn()

.

.

.

 

k = k.Row+1

Next

End Sub

 

Előzmény: Rászid-lob (13355)
Delila10 Creative Commons License 2010.11.23 0 0 13356

Az eredeti kérdésben (13338) kifejezetten stringek szerepelnek a második oszlopban. Ha az FKERES hamis ága 0, a függvénnyel kihozott érték 0 (szám) lesz, ha a segédtáblában nem szerepel az A oszlop értéke, és ez zavaró lehet.

 

Az is igaz viszont, ha a hamis ág "", a felhasználó esetleg nem veszi észre, hogy nem szerepel a B oszlopban a függvény. :)

Előzmény: Törölt nick (13354)
Rászid-lob Creative Commons License 2010.11.23 0 0 13355

Mégegyszer köszönöm.

Úgy néz ki rendben van a dolog, már csak egy kis formázgatás van hátra. Utána pedig megyek a főnökhöz learatni a babérokat. Remélem nem gond, ha nem dicsekszem vele, hogy külső segítség is kellett.

Rendes volt tőled, hogy így ismeretlenül segítettél.Mégegyszer köszönöm.

 

Én nem vettem észre semmit, ezért elárulhatnád hogy mit kell látnom.

 

 

Előzmény: Or Kán (13339)
Törölt nick Creative Commons License 2010.11.22 0 0 13354

Te miért szereted jobban az üres stringet, mint ""?

Ezzel csak egy baj szerintem, ami problémát okozhat:

0 <> ""

és ha számokkal, logikai értékekkel dolgozol, akkor erre szükség van.

Előzmény: Delila10 (13351)
Törölt nick Creative Commons License 2010.11.22 0 0 13353

Jajaa, megcseréltem - de rájött volna magától is.  Egyébként 2007-es excelben felesleges ez a módszer(HAHIBA() Meg tényleg előbb írtad, csak én nem olvastam végig a tiédet. Ügyes vagy :)

Előzmény: Törölt nick (13352)
Törölt nick Creative Commons License 2010.11.22 0 0 13352

HA(HIBÁS(fkeres képlet);fkeres képlet;0)

helyett szerintem ez kellene: 

HA(HIBÁS(fkeres képlet);"";fkeres képlet).

 

Egyébként, pont az utóbbit javasoltam megoldásként is.

Előzmény: Törölt nick (13350)
Delila10 Creative Commons License 2010.11.22 0 0 13351

Robbantómesternek teljesen igaza van a ha(hibás...), ill. a hahiba(...) függvénnyel. A végükön lévő 0 helyett inkább ""-et (üres stringet) írnék, de ez ízlés kérdése.

 

Kipróbáltam, a 2007-es verziónál csak a 17-18-ik beírt adat után hajlandó a következő sorban önállóan hozni az előző sor képletét.

 

Itt tudod beállítani:

 

Előzmény: Mad árka (13349)
Törölt nick Creative Commons License 2010.11.22 0 0 13350

amúgy ezt így szokták:

HA(HIBÁS(fkeres képlet);fkeres képlet;0)

 

excel 2007-ben egyszerűbb:

HAHIBA(fkeresképlet;0)

Előzmény: Mad árka (13349)
Mad árka Creative Commons License 2010.11.22 0 0 13349

Megnéztem ezt az adattartomány végi beállítást, alapértelmezetten bejelölt nálam, de nem folytatta sem a formázást, sem a képletet.  Korábban azt a megoldást használtam hasonló esetekben (ha ugyanarra gondolunk), hogy bevittem az egész képlet elé egy HA függvényt, megadva, hogy ha semmi sincs a cellában, akkor semmit se jelenítsen meg, ha ez nem igaz, akkor pedig jöhet a másik függvény (ez esetben FKERES). Így tudtam elkerülni, hogy az egész adattáblában a 3200. sorig hiányzik-hiányzik-hiányzik hibaüzenet szerepeljen, viszont ha folytattuk az adatbázist, akkor automatikusan kitöltötte a kérdéses oszlopokat is. 

 

Konkrétabban a példánál maradva:

=HA(A5="";"";FKERES(A5;U:V;2;0))

 

Ennek a kiküszöbölésére volna az adattartomány végén a formázás/képletek folytatása lehetőség bejelölése? (Nem tudom, számít-e bármit, de 2007-es Excellel dolgozom.)

Előzmény: Delila10 (13340)
Mad árka Creative Commons License 2010.11.22 0 0 13348

A Súgó sok szempontból hasznos és az elmúlt órákban elég sok részét el is olvastam, csak sajnos épp az Exceles alapműveltség hiányzott a maradéktalan felfogásához, ennek köszönhetően vagy másfél órát szűköltem többek között az FKERES függvénnyel, de egyszer se sikerült korrektül megírnom a legbugyutább példát használva sem. Szóval a mai nap kiteljesedését tényleg a Ti segítségetekkel értem el, ráadásul a most használt képlet konkrétan negyede annak, amit én a(z) (F)KERES, HA és VAGY függvényekből összetákoltam. :) Ha esetleg tanítjátok is az Excelt, szívesen elküldöm e-mailben a mintáját, elrettentésül másoknak a "hogyan ne" tanfolyamra. ;))

 

No, a lényeg: köszi! :)

Előzmény: Delila10 (13346)
Törölt nick Creative Commons License 2010.11.22 0 0 13347

Nagyon szívesen. :-)

Előzmény: Mad árka (13345)
Delila10 Creative Commons License 2010.11.22 0 0 13346

Arra, hogy az U:V tartomány 2. oszlopából adja vissza az értéket, amit az U oszlopban megtalált. Olvasd el a súgó ide vonatkozó leírását, biztosan többet segít.

Előzmény: Mad árka (13344)
Mad árka Creative Commons License 2010.11.22 0 0 13345

Boraka és Robbatómester, Nektek is nagyon köszönöm, most már tényleg mindent értek (ebben a témában legalábbis). Az pedig külön öröm, hogy a tippek működnek is. :-)

Mad árka Creative Commons License 2010.11.22 0 0 13344

Nagyon köszönöm, pont erre gondoltam, kipróbáltam és működik is.

 

A képletben egyébként a 2 és a 0 mire vonatkozik?

Előzmény: Delila10 (13340)
Törölt nick Creative Commons License 2010.11.22 0 0 13343

a sok "függő" aki 10 percenként benéz ide... :DD

Törölt nick Creative Commons License 2010.11.22 0 0 13342

fkeres jó.

Fkeres(amit keresel;ahol keresed, az első oszlopa ennek az "amitkeresed" legyen);visszaadandó oszlop száma az "ahol keresed"-ben;0)

Előzmény: Mad árka (13338)
Törölt nick Creative Commons License 2010.11.22 0 0 13341

Az FKERES jó lehet, ha pl. az alapadatokat a Munka1 munkalapra a kereső részt pedig a Munka2 - "B" oszlopába teszed az alábbi ábra alapján. A képletet innen ki tudod másolni: =HA(HIBÁS(FKERES(A1;Munka1!$A$1:$B$3;2;0));"";FKERES(A1;Munka1!$A$1:$B$3;2;0))

 

Előzmény: Mad árka (13338)

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!