Keresés

Részletes keresés

Törölt nick Creative Commons License 2010.10.15 0 0 12997
spec alighanem azárt szürke, mert jelszóval védve.
Előzmény: Herold (12993)
wawabagus Creative Commons License 2010.10.15 0 0 12996
Szia!
:-))))...igenigen, ezt én is észrevettem már :-DDD.
Köszi a sasszemet!
:-)
Előzmény: Delila_1 (12991)
wawabagus Creative Commons License 2010.10.15 0 0 12995
Szia!
Nagyon köszönöm a válaszod!
Az a jel ott volt a macroban, nem is értem hogyan sikerült ezt rosszul bekopiznom.
Viszont nagyon köszönöm ezt az tippert használni fogom.

Igazánból valami nagyon fura dolgot műveltem a makróval, amit abszolút nem értem.
Létrehoztam egy PERSONAL nevű fájlt a próbálgatásaim során...de én nem akartam...:-D
Szóval szerintem az excel tényleg nem értte mi az aktív munkafüzet.

Azt szeretném még kérdezni, hogy ha ezt a makrót szeretném több ember számára hozzáférhetővé tenni azt hogyan tudom.

A makróm, ami egyébként 99%-ban kész /nagyon éleveztem :-D/ úgy kéne működnie, hogy külön gépeken te tudják futtatni...

Ezt hogyan tudom praktikusan megoldani? Lehetne template-tel, de itt ez nem jöhet szóba.

Hova kell bemásolniuk?

Köszi az infót és még egyszer a segítséget!
:-)
Előzmény: SQLkerdes (12990)
Törölt nick Creative Commons License 2010.10.15 0 0 12994
ALT+F11

Itt alapban a bal oldalon látható felületen keresd meg a "Modul" lapokat, amelyekre dupla kattintással megnyílik egy szkript, amit kézzel ki tudsz törölni.
(Ha nincs levédve jellszóval...)
Előzmény: Herold (12993)
Herold Creative Commons License 2010.10.15 0 0 12993
A makrót hogy tudom kitörölni egy dokukmentumból? (Office XP-t használok).
Az Eszközök/Makrók/Makró menüpontban ha kijelölöm a makró nevét, a Törlés gomb szürke, nem lehet törölni.
SQLkerdes Creative Commons License 2010.10.15 0 0 12992
Szép találat!

Ezért kell használni az OPTION EXPLICIT-et!
Előzmény: Delila_1 (12991)
Delila_1 Creative Commons License 2010.10.15 0 0 12991
A fájlnév megadásakor UjNev a változód neve (helyfoglaláskor is), mentéskor UjNeve.
Mivel az UjNeve értéke üres string, nem tudja elmenteni.
Egy betű ilyen galibát okozhat.
Előzmény: wawabagus (12986)
SQLkerdes Creative Commons License 2010.10.15 0 0 12990
A ThisWorkbook mindíg az a workbook, ami a kódot tartalmazza, szóval a definiálással nincs gond.

A probléma az lehet, hogy utána az ActiveWorkbook object-tel akarsz valamit csinálni, de lehet, hogy az új Workbook-ot nem activáltad.

Az új workbook-ot a kód futása közben hozod létre, mert akkor a következő technikát ajánlom:

Dim UjWorkbook as workbook (itt csak definiálsz egy object-et amit később fogunk használni)
Set UjWorkbook = workbooks.add (innentől az új workbook-ra bármikor hivatkozhatsz, mint 'ujworkbook', igy sose keveredsz bele, hogy éppen melyik workbook-kal csinálsz dolgokat
... (kód többi része)
ujworkbook.saveas ... (innen az jön amit eddig is csináltál, csak a bizonytalan Activeworkbook helyett a tuti ujworkbook object-et hivatkozod a kódban).


Előzmény: wawabagus (12986)
SQLkerdes Creative Commons License 2010.10.15 0 0 12989
Szerintem a Hely változóddal van gond, mert amikor a kódod kiolvassa, akkor "csupasz" a vége.
Igy nézhez ki, pld: C:\probaFolder
Ha ezt összefűzöd a filenévvel (valami.xls), akkor egy hibás filenevet generálsz, mert a filenév és az elérési út között kellene legyen egy \.

Szóval próbáld ki ezt:
Hely = ThisWorkbook.Path & "\"

Előzmény: wawabagus (12986)
SQLkerdes Creative Commons License 2010.10.15 0 0 12988
Hát fejsze, hogy létezik!

Amit keresel az az INDIRECT függvény, ami egy szöveges referenciát excel referenciává alakít át.

Vagyis az =INDIRECT("A1") megfelel annak, mintha azt írtad volna be, hogy =A1. Az INDIRECT elfogad cella értéket is, ha a cella tartalma értelmezhető referenciaként (esetedben ez a helyzet), ilyenkor természetesen nem kell idézőjelek közé tenni az INDIRECT "bemenő" adatát.

Esetedben a =SUM(INDIRECT(B1):INDIRECT(B2)) a megoldás. (Magyar excelben ez =SZUM(INDIREKT(B1):INDIREKT(B2))
Előzmény: pickkick (12987)
pickkick Creative Commons License 2010.10.15 0 0 12987
Sziasztok!

Felmerült még egy probléma. A részleteket nem írom le, hogy ne bonyolítsam a történetet, csak azt, hogy mit kellene, hogy csináljon a program. A könnyebb megértés kedvéért írok egy példát, cella azonosító -> cella tartalom elrendezésben.

A1 -> 1; A2 -> 2; A3 -> 3; A4 -> 4; A5 -> 5; A6 -> 6; A7 -> 7; A8 -> 8; B1 -> A1; B2 -> A8. Tehát az A1-től A8-ig terjedő oszlopokban számok vannak 1-8-ig. A B1 oszlopban az van szövegesen beleírva, hogy: A1, a B2 oszlopba pedig az van szövegesen beleírva, hogy A8.

A feladat az lenne, hogy Az A1-től A8-ig tartó cellákban a számokat összeadjam. Ez idáig még egyszerű, mert a SZUM(A1:A8)-al könnyen megoldható.
Csakhogy nekem úgy kellene összeadni, hogy az excel a B1 cellában található hivatkozást vegye alapul, valamint a B2 cellában találhatót. Tehát, azt akarom megoldani, hogy ha beírom, hogy SZUM(B1:B2), ugyan azt az értéket kapjam, mint a SZUM(A1:A8)-ra.

Itt csak arra kellene rájönni, hogy hogyan kell függvénybe megadni hivatkozást "kézzel". Próbálgattam ilyeneket, hogy SZUM([B1]:[B2]), hátha így az adott cella értékét helyettesíti be, de nem jött össze.

Létezik erre valamilyen megoldás?

Üdvözlettel:
Kiss László
wawabagus Creative Commons License 2010.10.15 0 0 12986

Sziasztok!

Megint lenne egy problémám, amire tuti triviális a megoldás, de persze nem értem mi a baj.

 

Az "A" munkafüzetben definiálom ezeket:

 

Dim Hely, Nev, UjNev, Sor
Hely = ThisWorkbook.Path & ""
Nev = ThisWorkbook.Name
UjNev = Left(ThisWorkbook.Name, (Len(ThisWorkbook.Name) - 4))

 

Aztán az "A" munkafüzetből átmásolok egy új munkafüzetbe valamit, majd szeretném elmenteni ezt az új munkafüzetet így:

 

 ActiveWorkbook.SaveAs Filename:=Hely & UjNeve & ".csv" _
        , FileFormat:=xlCSV, CreateBackup:=False
    ActiveWorkbook.Save

 

Tehetséges, hogy ez azért nem megy, mert ő az új munkafüzetnél újraértelmezi a Hely, Nev, UjNev stb értékét?

 

Már megvan az egész makró és minden meg is csinál, csak ez a rész szerencsétlenkedik /pontosabban én.

 

MI baja van? Én csak erre tudok gondolni, hogy újradefiniálja ezeket a változókat.

Létezik ez?

Köszi a választ.

:-)

 

 

 

Törölt nick Creative Commons License 2010.10.15 0 0 12985
Nem tudomhatom miért pont hangjelzés kell, de szerintem simán elég egy adatérvényesítés által generált üzenetablak:

Ha a windows úgy van beállítva, szerintem még hangot is ad az üzenetablak (msgbox) típusának megfelelően.

És makró sem kell.
Előzmény: repuleskepekben (12980)
pickkick Creative Commons License 2010.10.15 0 0 12984
Ez az, köszönöm, megoldódott a probléma.

Így már azt csinálja, amit akarok.

Köszönöm.
SQLkerdes Creative Commons License 2010.10.15 0 0 12983
Klikk ide

Mivel ez almás gépekre van írva, a billentyűkombinációkat ne használd, de a menü elérések (Tools/...) működnek.

Sajnos angolul van, remélem nem gond.
Előzmény: repuleskepekben (12980)
SQLkerdes Creative Commons License 2010.10.15 0 0 12982
Próbáltam native függvényekkel megcsinálni, de nem hajlandó :-)

Én UDF-et használnék, itt találtam is egyet erre a célra:

klikk ide
Előzmény: pickkick (12981)
pickkick Creative Commons License 2010.10.15 0 0 12981
Nem vagyok telhetetlen :)

Csak az a problémám, hogy nem mindig fixen 5 sort kell összefűzni, hanem változó, hogy épp mennyit. Egy HA és egy SOR függvénnyel meghatározom, hogy melyik az első cella ahonnét össze kell fűzni, és melyik az utolsó. Az első és az utolsó cella között kellene összefűzni az adatokat, ezt meg csak úgy lehet, ha ki tudok jelöltetni az excellel egy tartományt, hogy mettől meddig fűzze össze a cellákat.
Előzmény: wawabagus (12975)
repuleskepekben Creative Commons License 2010.10.15 0 0 12980
Még nem csináltam makrót. kérhetnék egy kis segítséget? Mert nem tudom mi, és hol van az eseménykezelő, meg modullap...
Előzmény: Törölt nick (12973)
wawabagus Creative Commons License 2010.10.15 0 0 12979

 

Szia!

 

Szuper,szuper. Köszi szépen!

Nem tudtam, hogy itt is lehet szinte tök ugyanúgy használni a függvényeket.

 

 

 

Előzmény: Delila_1 (12978)
Delila_1 Creative Commons License 2010.10.15 0 0 12978
ÚjNév=left(RégiNév(len(RégiNév)-4)

vagy
ÚjNév=left(RégiNév(len(RégiNév)-3) & "csv"

Szívesen az előző választ. :)
Előzmény: wawabagus (12976)
Törölt nick Creative Commons License 2010.10.15 0 0 12977
De lehet csipogni is:
If Range("A1") = 1 Then Beep
Mondjuk régebben próbáltam, nálam vmiért nem szólt - talán nincs is bekötve a szpíker
Előzmény: Törölt nick (12973)
wawabagus Creative Commons License 2010.10.15 0 0 12976

Sziasztok!

 

Hogyan tudom eltüntetni az alábbi parancs eredményéből a "xls" végződést?

 

Neve = ThisWorkbook.Name

 

Csv-ként szeretném elmenteni a fájlt amin futtatom a makrót, de úgy hogy megmarad az eredi neve és nem xls.

 

Függvénnyel Biztos valami Left/right/len-t használnék.

VBA-ban hogyan lehet ezt lenyisszantani a lerövidebb úton?

 

Köszi!

 

wawabagus Creative Commons License 2010.10.15 0 0 12975

Hát ezt passzolom, nekem ezt nem sikerült lerövidíteni.

 

De, ha egyszer beírod, hogy ÖSSZEFŰZ(A1;A2;A3;A4;A5), akkor többször nem kell.

 

Ha máshol szeretnéd használni sem kell, mert elég kopiznod a függvényt.

 

Miért szeretnéd rövidebben?

 

/Telhetetlen vagy? :-DDDD...csak viccelek :-D!/

Előzmény: pickkick (12972)
wawabagus Creative Commons License 2010.10.15 0 0 12974

:-)

Szívesen!

Előzmény: pickkick (12969)
Törölt nick Creative Commons License 2010.10.15 0 0 12973
Makró pl.:

Pl.: Ha az a1 cella = 1, akkor 1x lejátsza a hangot.

Modullapra:
Declare Function sndPlaySound32 Lib "winmm.dll" Alias _
"sndPlaySoundA" (ByVal lpszSoundName As String, _
ByVal uFlags As Long) As Long

Munkalap Eseménykezelőbe pl.:

Private Sub Worksheet_Change(ByVal Target As Range)
If Range("A1") = 1 Then Call sndPlaySound32("c:arnie.wav", 0)
End Sub

az elérési út lehet akár egy internetes hivatkozás is. (bár lehet nem ebben a formában)
Előzmény: Törölt nick (12971)
pickkick Creative Commons License 2010.10.15 0 0 12972
Sziasztok!

Hogyan lehet excelben úgy szöveget összefűzni, hogy ne egyesével kelljen megadni a cellákat, hanem ki tudjak jelölni egy tartományt, amit össze kell fűzni? Tehát ez helyett: ÖSSZEFŰZ(A1;A2;A3;A4;A5) ezt akarom: ÖSSZEFŰZ(A1:A5), de ezt így nem fogadja el az excel. Ez helyett van valami megoldás, ami ilyen módon összefűzi a cella tartalmakat?

Üdvözlettel:
Kiss László
Törölt nick Creative Commons License 2010.10.15 0 0 12971
1. Használd a feltételes formázást az excelben. (sikíthatsz örömödben, ha a cella ennek hatására megváltozik)

2. Adatérvényesítés alkalmazása a cellára, így üzenetablakot (MsgBox) kapsz, ha eltér az igényeidtől a cella értéke. (megint sikíthatsz)

3. Makró, ami a cella megfelelő értékére üzenetablakot küld és a windowsos beállításnak megfelelően ezt hang kíséri

4. Makró, ami egy wav file-t lejtászik a gépedről

5. Fentiek kombinálása
Előzmény: repuleskepekben (12970)
repuleskepekben Creative Commons License 2010.10.15 0 0 12970
Üdv mindenkinek!

Olyat szeretnék készíteni az excelben, hogy ha egy táblázatban egy cella értéke annyi, amit szeretnék, akkor valami hangot, vagy figyelmeztetést adjon nekem.

Több cella értéke folyamatosan változtatható, és egy cellában adja ki az eredményt.Nos ennek az egy cellának a figyelése, vagy figyelmeztetésének a megoldására lennék kíváncsi, hogy ha hanggal ezt meg lehetne oldani.
pickkick Creative Commons License 2010.10.15 0 0 12969
Bocsánat, átgondoltam még egyszer és jó amit írtál, tényleg működik.

Köszönöm
Előzmény: wawabagus (12966)
pickkick Creative Commons License 2010.10.15 0 0 12968
Szia!

Köszönöm, csak így nem jó, mert nem "statikusan" akarom beírni, hogy az A41;A42;A43-at fűzze össze, hanem azt akarom, ha pl. az A41 értéke IGAZ, akkor az A41;A42;A43-at fűzze össze. De ha az A105 értéke IGAZ, akkor az A105,A106,A107-et fűzze össze. Tehát nem konkrét cellaazonosítókat kell megadni, hanem azt, hogy fűzze össze azokat a cellákat, amik értéke IGAZ, az IGAZ alatt van egy sorral és az IGAZ alatt van két sorral. Tehát valahogy az excel tudtára kellene adni, hogy ha pl. Az A105-ös cella értéke igaz, akkor fűzze össze az A105;A105+1; A105+2 cellék tartalmát. A105+1 alatt A106-ot értem, A105+2 alatt pedig A107-et értem.

Ahogy Te írtad le úgy én is meg tudom csinálni, csak azzal az a baj, hogy csak az adott cellákra lesz jó, de én azt akarom, hogy ha az excel valahol IGAZ értéket talál, akkor az alatta lévő 2 cellát fűzze össze az IGAZ értéket adó cella tartalmával.
Előzmény: wawabagus (12966)

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