-
Fototrend
A Microsoft Excel topic célja segítséget kérni és nyújtani Excellel kapcsolatos problémákra.
Kérdés felvetése előtt olvasd el, ha még nem tetted.
Új hozzászólás Aktív témák
-
-
-
válasz
DopeBob
#9249
üzenetére
Osztom perfag válaszát, azzal kiegészítve, ha már makróban kezeled a cellák zárolását(és a lapvédelemhez mondjuk jelszó is van beállítva), akkor arrról nem szabad megfeledkezni, hogy magát a makrót is levédd jelszóval, hisz ha valaki belenézhet, akkor onnan kiszedheti a jelszót és ez esetben adtunk a guanónak egy nagy pofont...

-
Dim Result
Result = Shell("c:\Program Files (x86)\Winamp\winamp.exe c:\zene1.mp3", 1) -
-
-
válasz
DopeBob
#9229
üzenetére
Azért nem értem/tudom, hogy Nálad mi lehet a gond, mert Nálam(Office 2010 x64-et használok), ha beimportálom az adatokat egy megadott táblából, akkor az excel automatikusan ellátja szűrővel, mindenféle beavatkozás nélkül.
Itt a gyári NorthWind adatbázis egyik tábláját importáltam be: [link]Na most ha ebből csinálok egy kimutatást, akkor megint teljesen automatikusan ott a szűrő: [link]
Az adatok külön beimportálását természetesen ki lehet hagyni, és közvetlenül kimutatást készíteni az adott adatbázis, adott táblája alapján, csak ez esetben nem szabad megfeledkezni, hogy a Jelentésszűrő csoportba be kell "húzni"/másolni azt a mezőt, ami alapján szűrni szeretnél [Bekeretezett részek]
-
-
-
-
válasz
Delila_1
#9201
üzenetére
Nem tudom, mire gondolsz, mert M2-től M126-ig feltölti az oszlopot, az meg 125 sor, ami meg egyenlő 2000/16-al...

Mesike8114
If j = 15 Then
My_String = My_String + """" + ActiveCell.Value + """"
Else
My_String = My_String + """" + ActiveCell.Value + """" + " OR 'azonosító' = "
End If -
válasz
Mesike8114
#9196
üzenetére
Ja és még annyi, hogy ellenőrizd le alaposan, hogy M oszlopba bekerülő cucc, az tényleg belefér-e a cellába, mert nem tudom milyen hosszúak az azonosítóid, így aztán azt sem, hogy a 2003-as Excelnek ez nem fog-e megjelenítési problémát okozni. (Én 2010 x64 alatt készítettem, de 2003-as munkafüzetként mentettem, csak az azonosítók egy betűsek voltak)
(Lehet, hogy nem fér bele a cellába annyi anyag) -
válasz
Mesike8114
#9196
üzenetére
1. Először is készíts egy másolatot a munkafüzetedről, biztos ami biztos alapon.
2. Nyisd meg az excel, töltsd be a munkafüzetet
3. ALT+F11/Insert menü/Module és a megjelenő ablakba másold be a a makrokódot, majd futtasd (egy kis zöld, play gombra emlékeztető ikon a gyorsmenüben, vagy F5)Nem tudom hogy sikerült így összehoznom, de sajnos a szubrutin neve rossz, már szóltam a modi topikban, hogy cseréljék ki. Szóval nem Sub _FSCD_CONCATENATE() hanem csak simán Sub FSCD_CONCATENATE()
Delila_1
Kivételesen ez nem hiba nálam.
Én is láttam, hogy Mesike8114 által megadott ÖSSZEFŰZ képlet csak 14-esével dolgozik, de mivel mindenhol 16-os csoportosításról írt, meg azt is kérte, ezért azt is építettem be. ![;]](//cdn.rios.hu/dl/s/v1.gif)
-
válasz
Mesike8114
#9192
üzenetére
Rendben, de ha már megírtam a makrót, azért beteszem. Pár fontos infó
1. 16-onként csoportosít M2-től kerülnek be az eredmények
2. A sorok számának maradék nélkül oszthatónak kell lennie 16-al
3. Ez 2000 sort dolgoz fel, amit korábban megadtál
4. Szöveg típusra kell formázni az L oszlopotSub FSCD_CONCATENATE()
Dim My_String As String
Application.ScreenUpdating = False
Range("L2").Select
For i = 1 To 2000 \ 16
My_String = ""
For j = 0 To 15
If j = 15 Then
My_String = My_String + ActiveCell.Value
Else
My_String = My_String + ActiveCell.Value + " OR 'azonosító' = "
End If
ActiveCell.Offset(1, 0).Select
Next j
Range("M2").Offset(i - 1, 0).Value = My_String
Next i
Range("M2").Select
Application.ScreenUpdating = True
End Sub[ Módosította: #65675776 ]
-
válasz
Mesike8114
#9188
üzenetére
Milyen értékek vannak a 2000 cellában, úgy értem csak számok, csak szöveg vagy esetleg vegyesen?
-
válasz
Mesike8114
#9186
üzenetére
2 kérdés
1. 2003-as Excelt használsz?
2. 2000 sort szeretnél 1 cellában összefűzni?
-
válasz
copperhead
#9183
üzenetére
Na így oké, ezért jó ha van kép, mert ilyen "apróságokat" ha nem említesz meg, máris rossz képletet adunk. Akkor a módosított képletek (ezt már ne rontsd el
)P1-be ez kerül és lemásol, ameddig kell
=FKERES(DÁTUM(ÉV(I1);HÓNAP(I1);NAP(I1));$R$1:$S$20;1;HAMIS)Q1-be ez kerül és lemásol, ameddig kell
=FKERES(DÁTUM(ÉV(I1);HÓNAP(I1);NAP(I1));$R$1:$S$20;2;HAMIS) -
válasz
copperhead
#9181
üzenetére
Hát azt dátumként biztosan nem lehet értelmezni.

Jó lenne, ha egy képet tenné be a munkafüzetedről, de olyat, amin látszik az I/P/Q/R/S oszlopok és hogy azok honnan kezdődnek(melyik sortól) -
válasz
copperhead
#9179
üzenetére
A P1-be és Q1-be kell bemásolni, de csak a képletet.

Nem ez a képlet
P1 -> =FKERES(I1;$R$1:$S$20;1;HAMIS)hanem csak ez
=FKERES(I1;$R$1:$S$20;1;HAMIS)ugyanígy a Q1-be is csak az egyenlőségjeltől kezdődően kell bemásolni a képletet, ami ez
=FKERES(I1;$R$1:$S$20;2;HAMIS) -
válasz
Fire/SOUL/CD
#9177
üzenetére
Na mindegy, próba cseresznye (feltételezve, hogy R oszlopban csak 1x szerepel egy dátum)
[link]P1 -> =FKERES(I1;$R$1:$S$20;1;HAMIS) (és lemásolod, ameddig kell)
Q1 -> =FKERES(I1;$R$1:$S$20;2;HAMIS) (és lemásolod, ameddig kell)
-
válasz
copperhead
#9176
üzenetére
Az R oszlopban(ami rendezve is van) csak 1x szerepel egy dátum?
-
-
válasz
Pityke78
#9162
üzenetére
Igen, megvannak a frissítések.

Hát, akkor tényleg csak az lehet, hogy az XP alatt így megy (főleg, ha csak a szűrés esetén érzékeled a magas CPU használatot). Én Vista alatt használtam anno, ott nem találkoztam ilyen jelenséggel, mint ahogy jelenleg sem W7x64 és Office 2010 x64 alatt sem. Persze azért egy-egy pillanatra itt is megugrik a CPU használat, ha relatív sok adaton végzek szűrést, de az 1-2 másodperc...
És ugye ez nem hálózaton található fájl, nincs közös megosztásban stb?
Ha nem, akkor sajnos nincs több ötletem... -
válasz
Pityke78
#9160
üzenetére
Meg kell nézni a az XP telepített frissítéseinél, nem kell külön telepíteni amúgy, mert ha az XP naprakész(Windows Update-ről jönnek le a frissítések), akkor onnan az Office SP2 is lejön, illetve az azóta megjelent frissítések.
Ha tudod ellenőrizd: Vezérlőpult/Programok telepítése/eltávolítása és a megjelenő ablak "tetején" tegyél pipát a Frissítések megjelenítése elé, majd a listában nézd meg, hogy lettek-e telepítve frissítések az Office 2007-hez.Szerk
Ahogy látom az alap SP2 fent van a képed alapján. -
válasz
Pityke78
#9158
üzenetére
Igen, ezzel a konfiggal nem lehet gondja.(bár XP alá nem szoktuk javasolni a 2007-et) Akkor megyünk tovább.
Az SP2 (ha nem magyar az Office 2007, akkor válassz nyelvet) fel van telepítve, illetve Windows Update-ről, az SP2 óta megjelent frissítések is hozzá? -
válasz
Pityke78
#9156
üzenetére
Mekkora az a konfig, amin a 2007-es fut jelenleg? (CPU/RAM/OS)
Mert ha a 2003 jól futott rajta, az nem jelenti feltétlenül azt, hogy a 2007-es office is.
Lényegesen nagyobb erőforrásigénye van, ami ilyen méretű táblázatok/adatok kezelése esetén kiütközhet, pl kevés ram, ezért darál a HDD, teker a CPU... -
válasz
MrSealRD
#9151
üzenetére
Mikre mutatnak a linkek? Mert ha pl hálózaton megosztott táblázatra(ami esetleg közös használatú), akkor előfordulhat, hogy időnként nem lehet hozzáférni, hisz más valaki épp szerkeszti/használja és az adott táblázat pl exclusive joggal van ellátva(pl egy időben csak egy user férhet hozzá)
-
válasz
ArchElf
#9125
üzenetére
Igen, valóban az Adobe Reader X az oka, leszedtem, visszapakoltam a 9.4-t és máris simán beszúrható PDF. Lehet, hogy valami konfigurációs beállítással orvosolható 10-esben is a dolog, majd megnézem(de most nincs nagy kedvem hozzá őszintén szólva)
Használd a reader eltávolításához ezt: [link]
-
Csak ilyen UI Customizer Tool-okkal lehet "varázsolni", amik XML alapúak pl
Custom UI Editor Tool vagy "gyári" cuccal: [link]ArchElf
Ne aggódj, nálam W7 x64 és Office 2010 x64 esetén ugyan ez van. Ha most nem írtad volna, nem is tudtam volna, hogy nem műxik, csak még nem tudom miért, mert a 2007-esben régebben használtam többször is PDF beszúrást és ott semmi gond nem volt.
Ha rájövök/megtalálom a hiba okát írok.(Vagy valaki tudja és beírja a topikba) -
-
-
válasz
csferke
#9098
üzenetére
Először is a szintaxist az szigorúan tartsuk be, mert nem mindegyik Excel-ben fog működni ez a képleted (2010-ben biztosan nem megy). A helyes ez
=FKERES(21;A1:A20;1;HAMIS) vagy angol megfelelőjeként
=VLOOKUP(21,A1:A20,1,FALSE)ami annyit jelent, hogy keressük a 21-et az A1:A20 tartomány 1 oszlopában, pontos egyezéssel. Jól láthatóan az utolsó, logikai paraméter (igaz/hamis vagy true/false) határozza meg, hogy közelítő egyezéssel keressen, avagy pontos egyezéssel.
(Ahogy látod, ez nem a LOOKUP (KUTAT) függvény)
-
válasz
m.zmrzlina
#9094
üzenetére
Látom, azt az egyenlőséget sem értetted (ami nem egyenlőség), pont azért írtam, mert arra gondoltam, hogy azon elmeditálsz, hogy mi is rossz a kérdéseddel...
![;]](//cdn.rios.hu/dl/s/v1.gif)
Sebaj, túl vagyunk rajta...Azt én pontosan tudom, hogy Delila_1 "ott van a szeren" az Excelben és Ő szereti is azt amit csinál, de ha azokat a szabályokat betartja, ahogy én is nekiláttam a feladatnak
# Nincs segédoszlop
# Nincs makró
# Univerzális a képlet (nem csak idén működik, hanem bármely évben, az első héttől kezdve)
# Csak annyi adat van megadva, amit scott_free korábban felvázolt (pl A1 tartalmazza, hogy hányadik hétr kíváncsi, ami lehet 1 is)nos ezen feltételek mellett biztos vagyok benne, hogy
1. van annyira "vehemens" hölgyemény, hogy megoldja (kihívásnak tekinti vagy csak remek agytornának)
2. de biztosan nem fog egy "10 centis" képlettel előállni...
scott_free
Ha olyan fontokat használsz, ami teljesen hétköznapi, minden OS tartalmazza alapból stb, akkor természetesen másik gépen is megmaradnak. Természetesen, ha Te telepítettél valami külső betűkészletet és az a másik gépen nem található meg, akkor valamelyik szabvány betűtípussal fogja helyettesíteniSemmi gond (tudom, hogy ez furcsán hangzik) de nekem az ilyen feladatok kikapcsolódást jelentenek sokszor. Ha épp nem kódolok, vagy (mint épp most 2 napja) gépeket rakok össze és telepítek (hajnalig még 2 új lapost kell életre kelteni), akkor tényleg jó egy kicsit a szürkeállományt megtornáztatni, ezzel a feladattal (meg feltételekkel) rendesen meglehet és az felüdülés ilyenkor számomra.

-
válasz
m.zmrzlina
#9092
üzenetére
Az.
2013-ban már nem lesz ilyen szerencsénk, mert jan. 1 az kedd, 2.-án meg már lehet tiplizni melózni, és az az első hét. ![;]](//cdn.rios.hu/dl/s/v1.gif)
Én meg itt vért izzadok bammeg, hogy összehozzam.
-
válasz
scott_free
#9090
üzenetére
Te is jókor szólsz, hogy az első 2 nap nem érdekes(magyarul 1 hetet soha nem adsz meg), én meg már ilyen képleteknél tartok, aztán még mindig nincs teljesen kész
(de most akkor abbahagyom)=HA(ÉS($A$1=1;HÉT.NAPJA(DÁTUMÉRTÉK(ÉV(MA())&".01.01")+($A$1-1)*7;2)<>1);DÁTUMÉRTÉK(ÉV(MA())&".01.01")+($A$1-1)*7;HA(ÉS($A$1=1;HÉT.NAPJA(DÁTUMÉRTÉK(ÉV(MA())&".01.01")+($A$1-1)*7;2)=1);DÁTUMÉRTÉK(ÉV(MA())&".01.01")+($A$1-1)*7;DÁTUMÉRTÉK(ÉV(MA())&".01.01")+($A$1-1)*7-HÉT.NAPJA(DÁTUMÉRTÉK(ÉV(MA())&".01.01")+($A$1-1)*7;2)+1))
-
válasz
m.zmrzlina
#9087
üzenetére
Szóval erre gondolok, itt vasárnaptól-szombatig tart a hét (WEEKNUM 2. paramétere 1)
itt meg hétfőtől-vasárnapig tart a hét (WEEKNUM 2. paramétere 2
Így már talán érthetőbb, hogy a korábbi képletedet, ez mennyire tudja befolyásolni.
-
válasz
m.zmrzlina
#9087
üzenetére
Ezt most tényleg komolyan kérdezted?

365 nap = 53*7Mondjuk ezzel kapcsolatban van egy érdekesség, akinek van fent 2003-as Excel, az kipróbálhatná.
A feladat alapvetően ugyanaz, mint korábban
A1->2011.12.31
A2->2010.12.31 stb, egészen 2000.12.31B1->WEEKNUM(A1) és másoljátok le a 2000-es dátumig. Minden évben 53 hetet fog kiírni, de a 2000-es évre 54 hetet...
Megvan még ez a jelenség?
-
válasz
m.zmrzlina
#9085
üzenetére
Hát dec. 31-el vége az évnek, meg a heteknek is, jan. 1-el kezdődik az első hét...
de ha ezt nem hiszed, járj utánaA1-be -> 2011.01.01
B1-be -> WEEKNUM(A1) (Azt adja vissza, hogy az adott dátum, az év hányadik hetére esik(kell hozzá az Analysis Toolpak bővítmény))majd A1-be -> 2011.01.03
Aztán "lőn világosság".

-
válasz
m.zmrzlina
#9083
üzenetére
scott_free barátunk egy olyan feladatot adott, ami látszólag egyszerű, de valójában egy egész jó fejtörő. Sajnos ez nem jó megoldás ugyanis ezen év első 2 napja tartozik az első héthez, nem pedig 3.-a.
(ha elseje hétfőre esett volna, akkor minden oké, de hát nem
)Ez az infó figyelembevételével már borul is a dolog, összetettebb képlet szükségeltetik.

(bevallom így átgondolva lehet, hogy inkább makróban oldanám meg)Félre ne értsd, nagyon jó, hogy próbálsz segíteni, csak ezt fontosnak tartottam megemlíteni.
-
válasz
Delila_1
#9065
üzenetére
Ok, akkor megpróbálom másképp
Az alapadat munkalap esetén minden egyes képzési helyhez 3 oktatót lehet megadni maximum. Tegyük fel, hogy Budapesthez 3 oktató van megadva az alapadat munkalapon.
A DATA munkalap C oszlopában (képzés címe) pl 10-szer szerepel Budapest. Ebben az esetben úgy is el kell hogy osszad az oktatókat, hogy 3 budapesthez az első oktató, 3 budapesthez a 2. oktató, 4 budapesthez a 3. oktató kell megadnod.
Ezért írtam korábban hogy 10 budapest-hez 3-3-4 felosztásban kell szerepelni az oktatóknak (adott esetben) -
válasz
Delila_1
#9063
üzenetére
Nem, ez nincs kész, mert azt vitelezed ki, amit először megírt Zomb€€ neked is (ezek szerint)
Azonban valószínűleg nem kérdezted meg amit én...![;]](//cdn.rios.hu/dl/s/v1.gif)
10x is szerepelhet budapest és 3 felé is el kell osztani pl 3-3-4 arányban az oktatókat.
(Budapesthez 3 oktató tartozik, a listában meg 10x szerepel budapest)Következő kérdésem az volt, hogy mi határozza meg, hogy melyik oktató szerepel 3x és melyik 4x... Na erre jött egy olyan válasz, ami alapján nem kivitelezhető(szerintem, vagy ha igen is, ahhoz makró a köbön kell.
) -
-
-
-
-
válasz
Delila_1
#9047
üzenetére
perfag kolléga szerintem nem jól értelmezte a #9032-ben leírt dolgot és azt feltételezte, hogy külső táblázatban vannak az adatok.
Ezen esetekben inaktív a Hivatkozások gomb
=SZUM(A1:A4)
=SZUM(Munka2!A1:A5)Csak így válik aktívvá
=SZUM([1.xlsx]Munka1!$A$1:$A$5)Ha az adott, teljes munkafüzet(minden munkalap) nem tartalmaz külső hivatkozást, akkor a Hivatkozás gomb inaktív
-
-
-
válasz
m.zmrzlina
#9008
üzenetére
Igen, az lesz az oka.
Ezért szívtam én is, emlékeztem hogy régebben vesszővel voltak elválasztva az ezres csoportok. Aztán megnéztem, hogy a számformátum esetén mivel választja el az excel az ezres csoportokkat, ha bejelölöm neki az ezres csoportosítást.
láttam, hogy szóközzel (nálam), lecseréltem a vesszőt szóközre és "lőn világosság".
-
válasz
bozsozso
#9004
üzenetére
Basszuskulcs...
Emlékeztem egy nagyon egyszerű megoldásra, de ez valamiért nem akart működni, #,
Szóval egy kereszt és egy sima vessző és ez nem műxik, de megvilágosodtam, ez viszont pöpecül műxik, egyszerű cellaformázás és számolhatsz is vele utána# "e Ft"
Hát ez tényleg szívás volt, egy vesszőt lecseréltem szóközre...

m.zmrzlina
Nálam úgy ahogy leírtad (kötőjellel) nem működik...
-
válasz
bozsozso
#9002
üzenetére
"Egyszerű" cellaformázással (a legjobb tudomásom szerint) nem lehet, vagy felveszel egy segédoszlopot és abba beírod pl ezt =A1/1000 & "e Ft" vagy ez esetben elegánsabb és célszerűbb is egy makrót írni, ami figyeli, hogy ha az adott oszlopban/tartományban módosul egy cella tartalma, akkor automatikusan végigszalad az adott oszlopon/tartományon és elvégzi a szükséges formázást.
Természetesen a képlet amit feljebb írtam egy "nyers valami", ha szükséges(és általában az), akkor a kerekítésekről gondoskodni kell.
-
-
válasz
DopeBob
#8995
üzenetére
Jaaa, az más...

Így függvényt szúrhatsz be egy cellába
Range("B1").Formula = "=SUM(A1:A10)"
Ez meg a konkrét kérdésedre
Macroban az angol függvénynevekre lehet hivatkozni, az, hogy egy magyar függvénynek mi is az angol "neve", ahhoz itt találsz segítséget: FUNCS.XLS a lényeg
-
válasz
Geryson
#8993
üzenetére
Persze, mert idézőjelek között szerepel a 2,5... Nem számként van jelen...
![;]](//cdn.rios.hu/dl/s/v1.gif)
Azt az oszlopot/tartományt számformátumra formázd, amin a feltételes formázást használod, másrészt meg a korábbi képed alapján csak egy cellára vonatkozik a feltételes formázás (ez utóbbi nem hiba, csak szóltam)
-
válasz
Geryson
#8990
üzenetére
2 szabály kell, ahogy perfag és Delila_1 is írta. 2007-ben (na jó, ez 2010-es excel de nincs különbség ebben) ez a 2 szabályt így kell létrehozni:
1. szabály
2. szabályszerk
Látom összejött nagyjából. Annyi kiegészítés, hogy a 3-nál nagyobb esetet nem kell vizsgálni, ilyenkor a feltételes formázás (ha a 2 szabály nem teljesül), akkor automatikusan az alap formázással látja el az érintett cellát -
-
válasz
Geryson
#8977
üzenetére
1. Milyen verziójú Excelt használsz?
2. írd le, hogy most hogy használod az FKERES-t (abból látom, hogy miben-mit keresel és ha van mit kezdesz vele, jó eséllyel kiváltható az FKERES, csak ezért érdekel)
3. "másik táblázatban dolgozó FKERES nem aktualizál."
Nyomj egy F9-etAmúgy (így utólag is) BÚÉK minden topiklakónak.
-
-
-
válasz
m.zmrzlina
#8950
üzenetére
Az általános formátum esetén is működik ez tény, mivel általános formátum esetén az Excel belső konverziókat is elvégez automatikusan, pl szöveg-ből szám és fordítva. Ezt egyszerűen leellenőrizheted, egy általános formátumú cellába beírsz egy szöveget, majd egy számot.
Az előbbi esetben balra igazítja (mint a szövegeket), utóbbi esetben jobbra igazítja (mint a számokat szokás).Mindig törekedj arra, hogyha számmal dolgozol és olyan fgv-t is használsz, aminek a a helyes működéséhez számformátumú cella szükséges, akkor szigorúan arra is formázd, még ha esetleg pl Általános formátummal sincs gond(csak megjelenítésben)
Ha így jársz el, sokkal kevesebb gondod lesz...

-
válasz
m.zmrzlina
#8948
üzenetére
Arra ügyelj, hogy a KÓD fgv az 1 karaktert vizsgál, tehát ugyanazt az eredményt adja, ha az adott cellába 1 vagy 10-19/100-199/1000-1999 stb közti szám van.
(Azaz pl mindig 49-et fog eredményül adni, ha 1-essel kezdődik a cellában található szám, függetlenül hány számjegyű)Létezik a SZÁM fgv, ami megvizsgálja, hogy egy adott cella tartalma, számot tartalmaz-e avagy sem. Az adott cellákat kötelező Szám formátumra formázni a SZÁM fgv használata esetén!
A SZÁM fgv HAMIS értéket ad vissza, ha a cella üres(törölték DEL-el), és pl egy szóköz beírásakor is. -
válasz
m.zmrzlina
#8946
üzenetére
=KÓD(A1) - Decimális érték (10-es számrendszer)
=DEC.BIN(KÓD(A1)) - Bináris érték (2-es számrendszer)
=DEC.HEX(KÓD(A1)) - Hexadecimális érték (16-os számrendszer)
=DEC.OKT(KÓD(A1)) - Oktogonális érték (8-as számrendszer) -
válasz
m.zmrzlina
#8944
üzenetére
"De egy olyan felhasználónak aki csak használja a munkafüzetet és nem érdekli mi miért van benne annak talán hasznos lenne hogy ha nem lát a cellában semmit akkor a cella semmiként is viselkedjen"
Igen, erre való, hogy törölve legyenek a cellák. Erről nem a felhasználónak kell gondoskodni, hanem a munkafüzet készítőjének. Az olyan típusú megoldások, hogy szóközt rakok cellá(k)ba, nem bevett gyakorlat, egy szakkönyv sem javasol ilyet, mert hibalehetőségek rengetegét hordozzák magukban, egy ilyen "látszólag üres" cellára való hivatkozások, nem várt eredményeket produkálnak.
(Elég gyilkos dolog, egy üresnek hitt cellával dolgozni, ami csak "ránézésre" üres)"Érdekes, hogy a =ÉRTÉK(C9) fv #ÉRTÉK! hibaüzenetet ad ha szóközt teszek C9-be"
Egyáltalán nem érdekes, ez a dolga. Az ÉRTÉK függvénynek elég egyértelmű a definíciója: "A számot képviselő szöveget számmá alakítja."A szóköz nem tesz eleget ennek nyilván...

-
válasz
m.zmrzlina
#8942
üzenetére
A teljes képletet kellene látni, mert amit leírtál, az biztosan nem úgy működik, példa
B1 -> =HA(A1="";"üres";"teli")
C1 -> =HA(A1>0;"teli";"üres")Ha most A1-et törlöd(DEL gomb), akkor B1 és C1 is az "üres" értéket kapja
Ha A1-be egy szóközt gépelsz, akkor B1 és C1 is a "teli" értéket kapjaHa A1="" feltételt használsz, ez csak akkor igaz, ha az A1-nek nincsen értéke (üres, DEL gombbal törölve), ha bekerül egy szóköz, akkor már nem üres, illetve a szóköznek számértéke is van 32 (vagy hexa 20, ahogy tetszik), ergo az A1>0 feltétel esetén igaz lesz.
Ha ez nálad nem így működik, annak az lesz az oka, hogy az ÉS()-ben felsorolt feltételek valamelyike nem teljesül(vagy épp teljesül) , de biztosan nem az üres cellával van a gond...
-
Ha az a megoldás megfelelő, hogy meg kell nyitva lennie folyamatosan az adott munkafüzetnek, akkor van.
Itt 10 másodpercenként menti a munkafüzetet
Ha egy megadott időben szeretnéd menteni, akkor a linkben megadott kódban a módosítani kell ezt a sort mindkét helyen
Application.OnTime Now + TimeSerial(0, 0, 10), "SaveThisWorkBook", , True
erre:
Application.OnTime TimeValue("14:00:00"), "SaveThisWorkBook", , True
Így minden nap délután 2 órakor elmenti a munkafüzetet.
Értelem szerűen módosítva a kódot, azt futtatsz le így(olyan makrókódot), amire épp szükséged van.
[ Módosította: Ndruu ]
-
De Én nem azt írtam

Egyenlőségjellel kezdődjön, mint egy képlet(ahogy írtam), és akkor működni fog. (Kipróbáltam és működik, nem írnám le ha nem működne
)
tessék, itt az A és B oszlopok illetve még pár találomra kijelölt cellák üresek (beleírtam az ="" képletet az összes üres cellába) ez az eredmény mentés után, a Te makróddal:
-
Hát azt csak úgy lehet, ahogy írtad. Ki kell jelölni az összes üres cellát, majd beírni az ="" "képletet" mindbe. Ezt természetesen fel lehet gyorsítani, nem kell egyenként elvégezni.
1. Szerkesztés/Ugrás/üres cellák kijelöl és OK
2. (Most ki van jelölve az összes üres cella), kezd el begépelni ezt ="", majd CTRL+ENTEREzáltal minden üres cellába bekerül a "semmi"...

-
Igen, az remek "trükk", csak az a "gond" vele, hogyha egy másik gépen is lesz használva esetleg a munkafüzet és ott más nyelvű OS fut(vagy valamiért mások a területi beállítások), akkor voila, máris nem pontosvessző lesz...

Persze, ha csak és kizárólag a Te gépeden lesz használva az excel munkafüzet, akkor tökéletes megoldás.

-
Ok, akkor inkább szavak helyett.

'itt add meg, mi legyen az ELVÁLASZTÓ karakter
Const MYDELIMITER = ";"
Dim MyCell As Range
Dim MyRow As Range
Dim MyCellValue As String
Dim MyFname As String
Dim MyFnum As Long
Dim MyRange As Range
Private Sub CommandButton1_Click()
'itt add meg a táblázatod tartományát
Set MyRange = Range("A1:B7")
MyFname = "D:\FIRE\" & Format(Now(), "yyyy.mm.dd") & ".csv"
If Not Dir(MyFname) = vbNullString Then
UserChange = MsgBox(prompt:="A fájl (" & MyFname & ") már létezik. Felülírja?", Title:="Megerősítés", Buttons:=vbYesNo)
If UserChange = vbYes Then WriteMyFile
Else
WriteMyFile
End If
End Sub
Private Sub WriteMyFile()
MyFnum = FreeFile
Open MyFname For Output As MyFnum
For Each MyRow In MyRange.Rows
For Each MyCell In MyRow.Cells
MyCellValue = MyCellValue & MyCell.Value & MYDELIMITER
Next MyCell
MyCellValue = Left(MyCellValue, Len(MyCellValue) - 1)
Print #MyFnum, MyCellValue
MyCellValue = ""
Next MyRow
Close MyFnum
End Sub -
Szerintem elég egyértelműen fogalmaztam:
"A LISTAELVÁLASZTÓT(pontosvesszőről, ami az alapbeállítás magyar OS esetén) egy függőleges vonalra cseréltem"Ha magyar operációs rendszert használsz, akkor a területi beállításokban az alapértelmezett LISTAELVÁLASZTÓ a pontosvessző, ha meg pl Angol OS-t használsz, ott meg a vessző az alapértelmezett.
A makrót meg nem érdekli, hogy milyen OS-t használsz, az mindig vesszővel fogja elválasztani a CSV-t, ha azzal a módszerrel készíted, ahogy korábban beírtad(ActiveSheet.SaveAs)Jobban/érthetőbben nem tudom leírni...

-
Az elsőre majd írok valamit, most nem sok időm van...
""Mentés másként -> CSV (pontosvesszővel tagolt)"
Ha így mented el, akkor az a területi beállításokra támaszkodik, íme a példaMentés másként -> CSV (pontosvesszővel tagolt)-ként mentettem, és ez az eredmény
A makrót nem érdekli a területi beállítás, az az angol beállításokat követi, angolul kell a függvényneveket megadni, a függvények paramétereit vesszővel kell elválasztani stb stb...
Ezért kell más elven megoldani a CSV fájl létrehozását, hogy az területi beállításoktól, a makró alapértelmezett(angol) nyelvétől függetlenül, mindig ugyanazt a formátumú(pontosvesszővel elválasztva, szövegek idézőjelek közt(vagy sem) stb stb) CSV-t produkálja... -
Azért van, hogy idézőjelbe teszi a NINCS DÖNTÉS értéket, mert szóközt tartalmaz, ezt kikerülni nem lehet azzal a módszerrel, amit használsz (legalábbis én nem tudok róla).
Ezért kellene egy másik megoldást eszközölni.(természetesen megoldható, csak egy kicsit több meló, de tényleg csak kicsit több) -
ActiveWorkbook.SaveAs Filename:="D:\FIRE\" & Format(Now(), "yyyy.mm.dd") & ".csv", FileFormat:= _
xlCSV, CreateBackup:=False"van egy több If-ből álló tömböm"
Ilyen nincs, ez így értelmetlen, bár tudom mire gondolsz.
Amikor az ActiveWorkbook.SaveAs segítségével mented a CSV-t, akkor nincs beleszólásod abba, hogy milyen karakterrel legyenek az elemek elválasztva, mint ahogy abba sem, hogy a szöveg/általános típusú értékeket idézőjelek közé tegye avagy sem.
Excel illetve az OS területi beállításai a mérvadók ebben az esetben. Ha tényleg "személyre szabott" CSV-t szeretnél létrehozni, akkor azt más módszerrel kell megoldani. -
1. A help/súgó hasznos dolog, mert abból is sokat lehet tanulni, főleg, ha kezdeteknél még egy for-next ciklus felépítése/megírása is problémát okoz. Ezen felül ezt javaslom: [link]
A kezdőknek szánt könyvekben általában a VBA programozást szokták bemutatni, de olyan szinten, aminél a súgó többet ér, viszont az objektumok bemutatása, az ki szokott maradni az ilyen alap könyvekből. Na szóval ezért javaslom azt, amit fentebb...2. Range("A" & Rows.Count).End(xlUp).Row
Ez az A oszlop utolsó használt sorának a számát adja eredményül, remélem nem értettem félre a kérdésed... -
-
-
-
A1-be 298,15
A2-be 299,15
kijelölöd az A1 és A2 cellát együtt
a kijelölés jobb alsó sarkához viszed az egérkurzort, nyomva tartod a bal egérgombot és elkezded lemásolni2 kérdésedre
beírod pl B9 cellába azt a képletet(egyenlőségjellel kezdeni), aztán ráállsz a B9 cellára, a kijelölés jobb alsó sarkához viszed az egérkurzort, nyomva tartod a bal egérgombot és elkezded lemásolni -
-
-
válasz
Delila_1
#8771
üzenetére
Gondolom az Én megoldásom egy kicsit "elborultnak" találod nem?

Hát igen, sajnos vannak egy páran, akik néha eltűnnek egy jó időre, egy szó nélkül, és ha előtte az ember rászánt a saját idejéből (néha nem is kevés időt), akkor legalább annyi elvárható lenne, hogy legalább megírja, hogy "ok minden rendben, köszi. Most egy időre eltűnök..." vagy valami...
Zomb€€
i = 48
j = 40
Range("D" & i).Select
ActiveCell.FormulaR1C1 = "='Alap tábla'!R[-" & j & "]C[-1]"
Range("D" & i + 1).Select
ActiveCell.FormulaR1C1 = "='Alap tábla'!R[-" & j + 1 & "]C"Értelem szerűen egy ciklusba teszed, aztán növelgeted az I és J változót (gondolom kettővel)
-
-
válasz
Delila_1
#8760
üzenetére
Na végre megoldottam mindent, elméletileg minden oké. Már kóserok a golyók

Írj(akár privebe és küldöm ha érdekel a munkafüzet)Szerk
Elküldve. -
-
válasz
Delila_1
#8758
üzenetére
Az nem kóser, hogy a szoroban nem használt golyói nem látszódnak...Pl az előbbi képen amit linkeltem a nulla az nem ugy kell hogy kinézzen, hanem felülről lefelé
teli
üres
üres
teli
teli
teli
teliSzóval mint amikor lenullázod a szoroban-t....
Igen, sima függvényekkel dolgoztam(meg még nekiugrom majd)
Te írtad, hogy nem lehet makrózni...
Azzal sec-perc kész lenne... 
-
válasz
Delila_1
#8750
üzenetére
Hirtelen felindulásból eddig jutottam, ami még nem megfelelő, remélem nem kell teljesen más módszerhez folyamodni: A maradék golyók még nem kóserek...

-
-
válasz
atesz90
#8716
üzenetére
Egy makrós megoldás, csak a "változatosság kedvéért"...

Private Sub CommandButton1_Click()
Dim MyFxs As WorksheetFunction
Dim Src_Range As Range
Dim Dest_Range As Range
Set MyFxs = Application.WorksheetFunction
'Melyik tartmányban számolja meg a számokat
Set Src_Range = Range("A1:B7")
'Eredménytáblázat kezdőcellája (bal-felső)
Set Dest_Range = Range("D1")
For i = 1 To 100
Dest_Range.Select
With ActiveCell
.Offset(i - 1, 0).Value = i
.Offset(i - 1, 1).Value = MyFxs.CountIf(Src_Range, i)
End With
Next i
Set MyFxs = Nothing
Set Src_Range = Nothing
Set Dest_Range = Nothing
End Sub -
-
1. Sub vs. Function
Private Sub CommandButton1_Click()
Call My_SUB_Multiplication(5)
MsgBox (My_FUNC_Multiplication(5))
End Sub
Sub My_SUB_Multiplication(MyNumber As Integer)
Range("A1") = MyNumber * MyNumber
End Sub
Function My_FUNC_Multiplication(MyNumber As Integer) As Integer
My_FUNC_Multiplication = MyNumber * MyNumber
End FunctionDe belinkelve a PH-ra összecsúszott
Azért, mert a PH! törli a felesleges szóközöket(egynél több szóköz szavak közt vagy végén. (Ezen még egy kicsit agyalok, csak megint (még mindig) totálkáros a PH! ebben az időszakban, örülök, ha ez a HSZ elmegy (kb 6-7 perce próbálom küldeni)

márpedig az Excel úgy tűnik még olyat sem tud a cserénél, hogy adott oszlopban lévő elemeken hajtsa csak végre a cserét.
CTRL+H/Listába mind gomb, listából kijelölheted, hogy melyiken legyen a csere végrehajtva. [link]
-
válasz
Fire/SOUL/CD
#8693
üzenetére
Szóval egy "kicsit" másabb lett a makrókód, így egy az egyben beillesztheted a PH-ra való hozzászólásod folyamán.
Function GetLinkAddress(MyCell As Range) As String
GetLinkAddress = "[L:" & _
MyCell.Hyperlinks(1).Address & _
"]" & _
MyCell.Value & _
"[/L]"
End FunctionA Function az visszaad valamilyen értéket, ez esetben STRING-et, azaz amelyik cellából meg van híva, annak a cellának a tartalma megváltozik, mint egy hagyományos pl SZUM esetén...
-
-
Autószűrővel szűkítheted a táblázatod, majd egy makróban írt szubrutin segítségével kinyered a linkek címét.
Makrókód
Function GetLinkAddress(MyCell As Range) As String
GetLinkAddress = MyCell.Hyperlinks(1).Address
End FunctionRáállsz az I2-es cellára és =GetLinkAddress(B665)
(Azért B665 szerepel itt, mert a szűrések következtében a B oszlopban ez az első sor)Aztán hagyományosan, egérrel lemásolod a képletet. Mindez képben
-
válasz
Satchmo7
#8688
üzenetére
[link](Az Ebooks ajánlat nem él már)
Továbbá van egy nagyon hasznos fájl is alapban minden excelben, a neve FUNCS.XLS
Az, hogy ez a fájl pontosan hol található, az függ az OS és az Office változattól, itt az x86 vagy x64-es változat értendő. Nálam (W7 x64 és az Office 2010 x64) itt található.C:\Program Files\Microsoft Office\Office14\1038\
A fent említett munkafüzetben megtalálható magyarul és angolul az összes függvény, ami azért nagyon hasznos, mert makróban mindig az angol függvénynevekkel lehet csak dolgozni és jól jöhet, ha egy magyar függvénynek nem tudod az angol nevét.
Amiket ajánlottam, nem makróprogramozási tutorialok, de nélkülözhetetlen segítség hozzá
-
válasz
Delila_1
#8686
üzenetére
1. Őszintén szólva nem is gondoltam arra, hogy lazlo8 hsz-ában az első kérdése, az a másodikban szereplő makróra vonatkozik
2. Az adott pdfcreator-os kódban ez meg letudva(ciklusba van szervezve)
Csak infóként: 2007/2010-es Office-ban létezik PDF Add-In, illetve enélkül is lehet PDF-be menteni, ha telepítve van Acrobat Reader...Ez esetben maga a VBA is ad lehetőséget rá...
-
1. Igen, szedd szét.
2. Nem tudom, melyik pdfcreatort használod(van jó pár), ezért ezt a pdf creatort töltsd le és telepítsd(miután a jelenlegit uninstaláltad), aztán tanulmányozd ezeket a kódokat.
(Azt, hogy hogy lehet fájlnevet létrehozni, (ami tartalmazza a pl dátumot), azt meg korábban megválaszoltam, csak szerintem átsiklottál rajta...Olvass vissza...
-
A 2000-től a 2007-es Office-ig bezárólag, 6.0-ás VBA "motort használ", azonban ezen azonosság ellenére vannak olyan programozástechnikai eltérések (elsősorban pl deklarálásokban, függvényhívásokban), amikre oda kell figyelni és ez 2003 vs. 2007-re is igaz. A 2010-es Office már 7.0-ás "motort használ", ami alapvetően kompatibilis teljesen a 6-ossal, csak kibővített funkciókkal rendelkezik és ami nem mellékes, ugye a 2010-es Office x64-es változatban is elérhető.
Új hozzászólás Aktív témák
- Játékkulcsok ! : PC Steam, EA App, Ubisoft, Windows és egyéb játékok
- Kaspersky, BitDefender, Avast és egyéb vírusírtó licencek a legolcsóbban, egyenesen a gyártóktól!
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! Automatikus 0-24
- Windows, Office licencek kedvező áron, egyenesen a Microsoft-tól - Automata kézbesítés utalással is!
- Bitdefender Total Security 3év/3eszköz! - Tökéletes védelem.
- Dell Vostro 3425 6magos Ryzen 5 5625U 16GB RAM 512GB SSD 1 év garancia
- Apple iPhone 17 Pro 256GB Deep Blue használt, karcmentes 100% akku (16 ciklus) Apple garancia
- SK Hynix 16GB és 32GB DDR4 so dimm 3200MHz modulok számlával, 6 hó garanciával
- Akció! Apple iMac 19.2 i5-8500 Radeon Pro 560X 4GB 16GB 256GB SSD 21.5" 4K Retina
- í kilenc! AKCIÓS PRECÍZIÓS KÉSZÜLÉK! 7670 i9-12950HX 32GB RAM 1TB SSD Nvidia RTX A3000 12GB 1 év gar
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

![;]](http://cdn.rios.hu/dl/s/v1.gif)
Szerencsére a 16-os csoportosítás is megfelelő lett, és még a 2000 is osztható vele maradék nélkül, kell ennél több?... 



Emlékeztem egy nagyon egyszerű megoldásra, de ez valamiért nem akart működni, #,




Fferi50