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.
Gyorskeresés
Legfrissebb anyagok
- Bemutató Spyra: akkus, nagynyomású, automata vízipuska
- Bemutató Route 66 Chicagotól Los Angelesig 2. rész
- Helyszíni riport Alfa Giulia Q-val a Balaton Park Circiut-en
- Bemutató A használt VGA piac kincsei - Július I
- Bemutató Bakancslista: Route 66 Chicagotól Los Angelesig
Általános témák
LOGOUT.hu témák
- [Re:] Gurulunk, WAZE?!
- [Re:] [D1Rect:] Nagy "hülyétkapokazapróktól" topik
- [Re:] [attilasd:] A laposföld elmebaj: Vissza a jövőbe!
- [Re:] [Sub-ZeRo:] Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- [Re:] [sziku69:] Fűzzük össze a szavakat :)
- [Re:] [sziku69:] Szólánc.
- [Re:] [Luck Dragon:] Asszociációs játék. :)
- [Re:] Elektromos rásegítésű kerékpárok
- [Re:] [bb0t:] Gyilkos szénhidrátok, avagy hogyan fogytam önsanyargatás nélkül 16 kg-ot
- [Re:] [GoodSpeed:] ASUS ROG STRIX B650E-F GAMING WIFI - Memory Context Restory (MCR)
Szakmai témák
PROHARDVER! témák
Mobilarena témák
IT café témák
Téma összefoglaló
- Utoljára frissítve: 2023-11-13 08:31:56
LOGOUT.hu
Hozzászólások
Fferi50
őstag
Szia!
Workbooks.Open Filename:= "C:\A.xls"
Range(cells(2,2),cells(2,2).End(xlDown)).Copy destination:=Workbooks("B.xls").Sheets("munka1"). Range("A2")
Üdv.
the radish
senior tag
Köszönöm!
the radish
senior tag
Adott egy elég hosszú makró, aminek a közepén, ha munka1 A1 = 1 le kéne futnia Szatocs1981 által közzétett makrónak:
Dim Zelle As Range
For Each Zelle In Selection.Cells
Zelle.NumberFormat = "@"
Zelle.Value = Replace(Zelle.Value, ",", ".")
Next Zelle
Ezzel semmi probléma nem is lenne, "THEN" kóddal meg is oldanám, de nem ilyen egyszerű.
A makrónak folytatódnia kell, akár így, akár úgy de ugye ez középen van, tehát nem kéne kilépnie ha a feltétel nem teljesül, viszont a fenti kódnak csak a feltétel teljesülése esetén kéne lefutnia.
A "Case" kapcsoló megint nem lenne jó, mert akkor két makrót kéne fenntartani, ráadásul - amint írtam - a makró közepén lenne az elágazás.
Lehet, hogy nagyon egyszerű, de nem jövök rá.
Előre is köszönöm.
[ Szerkesztve ]
poffsoft
addikt
dupla
[ Szerkesztve ]
[ Szerkesztve ]
poffsoft
addikt
miért lépne ki?
az if then lefuttatja a cserét, és megy tovább a makród.
if worksheet("munka1").range("A1")=1 then
Dim Zelle As Range
For Each Zelle In Selection.Cells
Zelle.NumberFormat = "@"
Zelle.Value = Replace(Zelle.Value, ",", ".")
Next Zelle
ELSE
blabla2
blabla2
END IF
?
vagy nem értelek.
[ Szerkesztve ]
[ Szerkesztve ]
the radish
senior tag
Köszi. Jól belekavarodtam...
air
nagyúr
Sziasztok!
Először is köszi a segítséget a múltkori problémámban.
Most lehet, hogy picit nehezebbet kérdezek.
Próbált már valaki Excelben műszakbeosztás varázslót csinálni?
Vagy erre inkább Access-t javasolnátok?
Tintatartó, aligátor, búzavirág, csók, gyalupad, fogpiszkáló
poffsoft
addikt
volt ilyen próbálkozásom.
elég régen. Excel.
Műszak ütemezés, nem komplett nyilvántartás.
[ Szerkesztve ]
[ Szerkesztve ]
spe88
senior tag
Hello,
Olyat, hogy tudok csinálni, hogy egy adott tartományban színezze be a cellát, ha egy másik cella teljes elemét megtalálja benne
Pl.:
A oszlop
asdfalmagfdg
vxcvkörtenvbn
cyxvbarackwerwe
bnvbnvbalmayxcvyxv
agdfagananászvccxv
B oszlop
alma
körte
barack
szóval ezeket színezné ki:
asdfalmagfdg
vxcvkörtenvbn
cyxvbarackwerwe
bnvbnvbalmayxcvyxv
köszi
Spóroljunk! Kerül, amibe kerül!
poffsoft
addikt
feltételes formázás, kijelölés képlettel.
itt meg az instr() excel megfelelője (talán keres) szövegfüggvény.
[ Szerkesztve ]
[ Szerkesztve ]
ueva
csendes tag
Sziasztok!
Segítséget szeretnék kérni a következő problémára.
Adott egy oszlop, amelyben pl. magasságokat tárolunk csökkenő sorrendben.
Fel kell osztani gondolatban a magasságokat 10 m-es sávok szerint. A „legfelső” sávba tartozzon minden, legalább 2650 m-es magasság, a következőbe az ezeknél kisebb, de legalább 2640 méteresek, az az utáni csoportba kerüljön minden eddig nem szerepelt, de legalább 2630 m-es magasság és így tovább!
Segédcellák nélkül meg kellene adni, hogy hány magasság esik az egyes sávokba! (Ezek szerint a GYAKORISÁG függvény nem alkalmazható!?)
Köszönöm előre is!
[ Szerkesztve ]
poffsoft
addikt
miért nem lehet gyakorisággal?
[ Szerkesztve ]
the radish
senior tag
Az alábbi kijelölés hogy lenne helyesen?
Dim tol$
tol$ = Range("BH2")
Dim ig$
ig$ = Range("BI2")
Range("A" tol$:"B" ig$).Select
Az "ig" tulajdonképpen a BI oszlopban található legnagyobb érték, =MAX(BI:BI)
[ Szerkesztve ]
ueva
csendes tag
Hát, segédcella nélkül kell megadni. A GYAKORISÁG-hoz pedig a csoportokat meg kell adni.
poffsoft
addikt
nem ülök excel előtt, de tömböt tudtommal nem csak hivatkozásként tudsz megadni.
talàn a
=GYAKORISÁG(A2:A20;{2360;2350;2340;2330}
Vonalon kellene elindulnod?
tömbképletként.
[ Szerkesztve ]
ueva
csendes tag
Megpróbáltam, de sajna nem működik.
Fferi50
őstag
Szia!
Ha a képen levő értékek számok (azaz cellaformázással van a " m" hozzáadva), akkor a GYAKORISÁG függvénynek működnie kell (Ha F2 után, illetve a szerkesztősorban csak a szám jelenik meg).
A "titok", hogy poffsoft képletét tömbképletként kell megadni annyi sort kijelölve, ahány gyakorisági osztályt tartalmaz a második paraméter, jelen esetben 4 sort, ha bővíted az osztályok számát akkor annak megfelelő sort kell kijelölnöd a cél oszlopban.
Ha viszont a 2655 m érték szövegként van beírva (azaz 2655 m a cella értéke, ha F2-t nyomsz rá), akkor nem használható a gyakoriság függvény, mert nem számként értelmezi.
Egyébként mit jelent a sajna nem működik? 0 értéket ír ki vagy hibát, ha hibát akkor melyiket? Adj több információt, hogy segíthessünk.
Üdv.
the radish
senior tag
Sziasztok!
Tegnap esti problémámat egy kis utánajárást követően megoldottam.
Most az alábbit szeretném kivitelezni:
Egy makró behív egy file-t. Ha az nem található, akkor az alábbi üzenet fogad:
Meg lehet azt oldani, hogy ha nem találja az adott file-t, akkor egy felugró msg box fogadjon a VB ablaka helyett?
Előre is köszönöm.
(#28770) szatocs1981 válasza the radish (#28769) üzenetére
szatocs1981
aktív tag
Ez segít a továbbiakban?
If Dir("C:\amitakarsz.txt") <> "" Then
MsgBox "File létezik!"
Else
MsgBox "File nem létezik!"
End If
rgqjx
aktív tag
ueva
csendes tag
Szia!
A táblázat értékei számok, a m csak formázással van mögé téve.
Igen tömbképletként alkalmaztam a GYAKORISÁGOT, de teljesen hibás értékek jöttek ki. Erre írtam, hogy sajna nem működik.
Aztán rájöttem, hogy a csoporttömb értékeinek nem a leírásban szereplő 2650, 2640, 2630..... értékeket kell megadnom, hanem 10-zel felfelé tolva 2660, 2650, 2640.....
Így már jobb az eredmény. Csak az a gond, hogy a kerek értékeket nem a jó csoportba számolja, hanem az alatta lévőbe.
Lehet, hogy mégsem jól adtam meg a csoporttömb értékeit?
Fferi50
őstag
Szia!
Úgy gondolom, akkor a csoporttömb értékeket kellene 1-gyel csökkentened, így a kerek értékek már felfelé esnének.
Üdv.
ueva
csendes tag
Köszönöm a segítséget neked és poffsoft-nak is!!!
Még egy kérdésem lenne. A különböző sávba eső értékeket feltételes formázással váltott színnel (egyik sávba eső értékek kék háttérrel, következő sávba esők fehér háttérrel) jelenjenek meg.
A képen kézzel csináltam, és elvileg ezt is segédcellák nélkül kellene.
Talán valamiféle maradékos osztásos képlettel meg lehetne oldani?
[ Szerkesztve ]
m.zmrzlina
senior tag
Hogyan tudom beállítani az AutoFit tulajdonságot egy cellára?
Nem a sor/oszlop azonosítók közti duplakattra gondolok, hanem hogy automatikusan történjen az AutoFit ha szükség van rá. Régen volt ilyen egy munkalapomon de nem tudom hogyan lehet beállítani.
[ Szerkesztve ]
(#28777) szatocs1981 válasza m.zmrzlina (#28776) üzenetére
szatocs1981
aktív tag
Néha egyszerübb (és gyorsabb) lenne a googliban keresgélni....
the radish
senior tag
Jaj bocsánat, nem válasznak szántam.
Egy ismeretlen hibába ütköztem.
Egy változó alapján megy végbe a szűrés:
Sheets("m1").Select
kr10 = Sheets("m2").Range("IV1")
Range("A:A").Select
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:= _
"=" & kr10
Range("A1:F20000").Select
Semmi gond nincs, de ha a változó 10, vagy nagyobb érték, nem működik. Mi lehet a gond?
[ Szerkesztve ]
(#28779) the radish válasza the radish (#28778) üzenetére
the radish
senior tag
Láma vagyok.
A kijelölés volt kevés. A1:F20000
[ Szerkesztve ]
poffsoft
addikt
ez feltételes formázás lesz, elvileg cellaérték alapján, de képlettel is megoldható.
minden osztálynak más színt kell adni?
mert a gyakoriság leírása szerint: az osztály felső, alsó határával (HF, HA ) kifejezve x-et:
HF1> x >=HA1
HF2=HA1> x >=HA2
vagyis:
1. osztály: ]HF1 - HA1]; [HF2 - HA2];
ezt én annyi feltételes formázással tudom megadni, ahány osztályod van.
Kijelölöd az adattartományt, és egyesével hozzáadod ezeket a feltételeket a formázáshoz:
1.) =ÉS(A2<1000000;A2>=2300)
2.) =ÉS(A2<2300;A2>=2290)
3.) =ÉS(A2<2290;A2>=2280)
...
[ Szerkesztve ]
kopi.dll
tag
Sziasztok.
Lenne egy megoldandó problémám,amiben a segítségeteket szeretném kérni.
Adott egy hexadecimális szám egy cellában pl.:"01 E6 AB" majd ezt szeretném összeadni (01+E6+AB), és egy cellában megkapni az eredményt.
Tudna ebben segíteni nekem vki.?
Köszönöm előre is.
kopi.dll
the radish
senior tag
Függőleges tartományban az alábbi számok vannak (max 999, min -99):
230
-67
98
-98
11
Szükségem lenne arra, hogy minden szám maximum 3 karakter hosszúságú legyen:
230
-67
098
-98
011
stb
SZÖVEG függvénnyel próbálkozom, de nem jön össze.
m.zmrzlina
senior tag
Én a Szövegből oszlopok paranccsal először szétdarabolnám /akár rejtett cellákba/ és azt már össze lehet adni.
(#28784) m.zmrzlina válasza the radish (#28782) üzenetére
m.zmrzlina
senior tag
Próbáld a következő egyéni formátumkóddal:
000;-00
Fferi50
őstag
Szia!
Ha számod az A1 cellában van, akkor a képlet a következő:
=HEX.DEC(BAL(A1;2))+HEX.DEC(KÖZÉP(A1;4;2))+HEX.DEC(JOBB(A1;2))
Ha az eredményt is hexában szeretnéd látni, akkor a fenti képletet tedd be a DEC.HEX függvénybe.
Üdv.
[ Szerkesztve ]
(#28786) the radish válasza m.zmrzlina (#28784) üzenetére
the radish
senior tag
Ezzel összejött, köszönöm!
ueva
csendes tag
Köszönöm szépen!
Klasszul működik!
poffsoft
addikt
nm
[ Szerkesztve ]
kopi.dll
tag
Szia,
köszönöm szépen sikerült.
Egy kis módosítás, hogy a függvény alakilag, így néz ki HEX2DEC.
üdv
kopi.dll
Fferi50
őstag
Szia!
No igen, a függvények "kinézete" és neve verziófüggő - sajnos.
Üdv.
kopi.dll
tag
Ok. Köszi
kopi.dll
ueva
csendes tag
Szia!
Mégsem működik!
Az én hibám félreértelmeztem a feladatot.
A feltételes formázást 2 színnel kell csak elvégezni. A legnagyobb érték fehér hátterű legyen a többi sávba tartozó pedig ennek megfelelően kék/fehér felváltva.
A sávok: 2659-2650i, 2649-2640, 2639-2630,.....,2509-2500.
Ezt úgy oldottam meg, hogy a feltételes formázáshoz a következő két szabályt írtam:
=MARADÉK(KEREK.LE($A2/10;0);2)=1 --> FEHÉR HÁTTÉR
=MARADÉK(KEREK.LE($A2/10;0);2)=0 -->KÉK HÁTTÉR
Aztán utána néztem, hogy abban az esetben, ha valamelyik értéken módosítok, akkor attól függően a formázásnak is követnie kell.
pl: Ha a 4. értéket a 2634-et 2640-re módosítom, akkor mivel 3 érték esik a 2640-es sávba mindhárom kék színű viszont az utána következő sávnak már fehérnek kell lenni.
Ilyennek kéne lenni:
Nekem viszont nem az, mivel a képletem szerint 10-zel osztva az is páros.
Az enyém így néz ki:
Hogy lehetne úgy megadni a formázás szabályát, hogy helyesen működjön?
Nagyon köszönöm!
Üdv.
poffsoft
addikt
Eléggé zavaros.
Nem tudom, miért osztással próbálkozol, ha a feladat az osztályképzéssel indult, valószínű a formázásnál is az osztályokat kellene használni.
feltételes formázással add meg ugyanígy:
fehér háttér:
=VAGY((A2>=2650);ÉS(A2<2639;A2>=2630);ÉS(A2<2619;A2>=2610);ÉS(A2<2599;A2>=2590);ÉS(A2<2579;A2>=2570);ÉS(A2<2559;A2>=2550);ÉS(A2<2539;A2>=2530);ÉS(A2<2519;A2>=2510))
kék háttér:
=VAGY(ÉS(A2<2649;A2>=2640);ÉS(A2<2629;A2>=2620);ÉS(A2<2609;A2>=2600);ÉS(A2<2589;A2>=2580);ÉS(A2<2569;A2>=2560);ÉS(A2<2549;A2>=2540);ÉS(A2<2529;A2>=2520);(A2<2509))
nem nagyon értem, mi a feladat...
a leírásod szerint mégsem az osztályok szerint kell színezned (azért kék a következő is, mert a köztük lévő osztály gyakorisága 0 (nincs ilyen adat).
most akkor pontosan mi is a feladat?
segédoszlopok nélkül?
ha egy osztályköz üres, azt ne vegye figyelembe a feltételes formázás?
ez szép feladat, most nem is vállalnám be...
[ Szerkesztve ]
[ Szerkesztve ]
ueva
csendes tag
Szia!
Bocs, hogy ilyen zavarosan adom elő, de először én is félreértelmeztem a problémát.
Megpróbálom kevésbé zavarosan leírni.
Szóval:
Van néhány magasság adatom, amelyeket gondolatban 10 m-es sávokra fel kell osztani, majd megadni, hogy az egyes sávokba hány adat tartozik. Ehhez kellet a GYAKORISÁG.(A színezést itt csak manuálisan végeztem)
Aztán jött az új kihívás, hogy ezeket a sávokat ki kell emelni úgy, hogy az azonos sávba tartozó magasságok azonos háttérrel, a különböző sávokba tartozó, viszont a táblázatban „szomszédos” magasságok adatai eltérő háttérszínnel jelenjenek meg! Első sáv adatai fehér, következő kék...stb. Csak arra nem figyeltem, hogy a színezés automatikusan reagáljon minden (a magasságok eredeti, monoton csökkenő rendezettségét megtartó) adatváltozásra! Tehát, ha pl. a 2634 m-es magasságot átírom 2640 m-re, akkor így már az a 40-es sávba fog tartozni, tehát kék színű. A 30-as sáv gyakorisága 0, a 20-as sávnak így fehérnek kell lennie.
Valahogy így:
De, ha a feltételes formázásban lefixálom, hogy melyik sáv milyen színű legyen, akkor nem fogja követni a változásokat.
Most egy kicsit érthetőbb voltam?
Nagyon köszi a segítséget előre is!
Üdv
spe88
senior tag
Olyat, hogy tudok, hogy feltételes formázásnál a képletbe az legyen, hogy az adott szám egyenlő 0-val és a .Pattern = xlGray25 szerint van bepontozva, akkor rakja a cellát pirosra!
Igazából ez a .Pattern = xlGray25 az amit nem tudom, hogy tudnék egy képeltbe beilleszteni!
Köszi
Spóroljunk! Kerül, amibe kerül!
the radish
senior tag
Sziasztok!
Msgbox kód kéne, amin van egy Ok és egy Mégse.
Az Ok lenne az alapértelmezett és 10 sec múlva aktivizálódna is, ráadásul az sem ártana, ha a hátralévő idő ez az OK felirat mellett (előtt) zárójelben látszódna.
Van erre megoldás?
Előre is köszönöm.
Fferi50
őstag
Szia!
Szerintem ez saját alkotású UserForm-mal oldható meg. Egy cimke az üzenettel, két parancsgomb + egy cimke a timernek.
Amikor megmutatod a formot, beállítod az üzenetet és a timert - megjelenítés userform.show false paraméterrel, hogy a program fusson tovább, de a programba beteszed a 10 mp várakozási időt is (Application.Wait) a megjelenítő sor után - ha lejárt az idő, végrehajtod a műveletet és eltünteted a formot.
Ha Mégse gombot nyomnak, akkor is el kell tüntetned a formot, mielőtt tovább mész.
Üdv.
[ Szerkesztve ]
the radish
senior tag
Köszi, de az aktiválást úgy gondoltam, hogy le is nyomódik az ok gomb.
Most ezzel kísérletezek, de az a baj, hogy ugyan lenyomódik a kijelölt gomb, de nem tudok semmi mást csinálni amíg tart az idő, konkrétan még klikkelni sem tudok egyik gombra sem.
Sub vagy()
UserForm11.Show
Application.Wait Time + TimeSerial(0, 0, 10)
UserForm1.CommandButton1 = True
UserForm1.CommandButton1 = vbClick
End Sub
Azaz valahogy jó lenne a visszaszámolás, de ugyanakkor aktívnak kéne maradnia a gomboknak, ha meg akarom pl. szakítani a mégsem gombbal.
Fferi50
őstag
Szia!
A userformnak van egy modal paramétere, ami
vagy 1 (ha nem adod meg, ez a default), ebben az esetben addig nem megy tovább a program, amíg a form látszik
vagy 0 ill. False lehet, ezt mindig meg kell adni. Ilyenkor a form nem állítja meg a program futását. Ezért is írtam, hogy a False paramétert is állítsd be a show meghívásakor.
Az application.wait valóban megállítja a program futását, bocs erre nem voltam figyelemmel, más módon kell a 10 mp - visszaszámlálást megoldani.
Még agyalok rajta egy kicsit, lehet az időzítő funkciót kell használni.
Üdv.
Mai Hardverapró hirdetések
prémium kategóriában
- Panasonic Lumix G X VARIO 12-35mm f/2.8 II ASPH. Power O.I.S. (H-HSA12035)
- 2db Iceriver KS0 KASPA bányagép + 180W új tápegység 2 év garanciával.
- Panasonic Lumix DC-G9 (V-Log L kiegészítéssel, 4 akkuval)
- Commlite CM-EF-NEX Auto-Focus Adapter (Canon EF - Sony E)
- Üzletből, garanciával, legújabb Asus Vivobook 17" i7-1355U 10 mag 5GHz/16RAM/1TBSSD/17,3"FULLHD