Hirdetés
- Viber: ingyen telefonálás a mobilodon
- GoodSpeed: Márkaváltás sok-sok év után
- sziku69: Szólánc.
- Gurulunk, WAZE?!
- MaxxDamage: (TongFang) Medion Erazer Beast 16 X1 benchmark
- Luck Dragon: Asszociációs játék. :)
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- bb0t: Ikea PAX gardrób és a pokol logisztikája
- sziku69: Fűzzük össze a szavakat :)
- D@reeo: Send to qBittorrent Firefox kiegészítő (with SavePaths)
-
LOGOUT
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
-
Fferi50
Topikgazda
válasz
the radish
#28799
üzenetére
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.
-
the radish
senior tag
válasz
Fferi50
#28798
üzenetére
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 SubAzaz 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
Topikgazda
válasz
the radish
#28797
üzenetére
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.
-
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.
-
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
-
ueva
csendes tag
válasz
poffsoft
#28794
üzenetére
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 -
poffsoft
veterán
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... -
ueva
csendes tag
válasz
poffsoft
#28780
üzenetére
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. -
m.zmrzlina
senior tag
válasz
the radish
#28786
üzenetére
Szivesen.
-
the radish
senior tag
válasz
m.zmrzlina
#28784
üzenetére
Ezzel összejött, köszönöm!
-
m.zmrzlina
senior tag
válasz
the radish
#28782
üzenetére
Próbáld a következő egyéni formátumkóddal:
000;-00
-
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. -
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.

-
poffsoft
veterán
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)
... -
the radish
senior tag
válasz
the radish
#28778
üzenetére
Láma vagyok.
A kijelölés volt kevés. A1:F20000 -
the radish
senior tag
válasz
Fferi50
#28774
üzenetére
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").SelectSemmi gond nincs, de ha a változó 10, vagy nagyobb érték, nem működik. Mi lehet a gond?
-
szatocs1981
aktív tag
válasz
m.zmrzlina
#28776
üzenetére
Néha egyszerübb (és gyorsabb) lenne a googliban keresgélni....
-
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.
-
ueva
csendes tag
válasz
Fferi50
#28774
üzenetére
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? -
ueva
csendes tag
válasz
Fferi50
#28768
üzenetére
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?
-
the radish
senior tag
válasz
szatocs1981
#28770
üzenetére
Köszönöm!
-
rgqjx
aktív tag
-
szatocs1981
aktív tag
válasz
the radish
#28769
üzenetére
Ez segít a továbbiakban?
If Dir("C:\amitakarsz.txt") <> "" Then
MsgBox "File létezik!"
Else
MsgBox "File nem létezik!"
End If -
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.
-
Fferi50
Topikgazda
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
Az alábbi kijelölés hogy lenne helyesen?
Dim tol$
tol$ = Range("BH2")
Dim ig$
ig$ = Range("BI2")
Range("A" tol$:"B" ig$).SelectAz "ig" tulajdonképpen a BI oszlopban található legnagyobb érték, =MAX(BI:BI)
-
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!
-
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ászvccxvB oszlop
alma
körte
barackszóval ezeket színezné ki:
asdfalmagfdg
vxcvkörtenvbn
cyxvbarackwerwe
bnvbnvbalmayxcvyxvköszi
-
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? -
Rota
tag
.
-
poffsoft
veterán
válasz
the radish
#28753
üzenetére
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. -
poffsoft
veterán
válasz
the radish
#28753
üzenetére
dupla
-
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 ZelleEzzel 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.
-
Fferi50
Topikgazda
válasz
the radish
#28750
üzenetére
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
Bocsánat, kifutottam az időből, pedig lenne még egy.
Ezt a műveletet hogy tudom egyszerűbben megoldani?
Workbooks.Open Filename:= C:\A.xls
Range("B2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("B.xls").Activate
ActiveWindow.WindowState = xlNormal
Sheets("munka1").Select
Range("A2").Select
ActiveSheet.Paste -
the radish
senior tag
válasz
szatocs1981
#28748
üzenetére
Köszi, ez működik!

-
szatocs1981
aktív tag
válasz
the radish
#28747
üzenetére
Próbáld meg evvel a makróval. Mielött futtatod jelöld ki a cellákat, ahol cserélni akarod a vesszöt pontra!
Sub Csere()
Dim Zelle As Range
For Each Zelle In Selection.Cells
Zelle.NumberFormat = "@"
Zelle.Value = Replace(Zelle.Value, ",", ".")
Next Zelle
End Sub -
the radish
senior tag
válasz
szatocs1981
#28746
üzenetére
De igen, számokban kéne. Azonban csak ennél a munkafüzetnél, ezért a globális beállítás módosítása nem járható út.
Ha nem lehet megoldani, akkor marad a csere függvény, csak nem akartam, hogy tovább hízzon a méret. -
szatocs1981
aktív tag
válasz
the radish
#28745
üzenetére
Amúgy nem az a gond, hogy SZAMOKBAN a tizedesvesszöt akarod lecserélni pontra?
Azt szerintem Windows-ban vagy EXCEL beállításokban kell megtenni.Ha SZÖVEGBEN akarod lecserélni a vesszöt pontra, akkor müködik a makró!
-
the radish
senior tag
válasz
szatocs1981
#28744
üzenetére
Hiába futtatom makróként, nem cseréli le a ","-t "."'-ra.
A kijelölés aktív, de nem cserél. -
szatocs1981
aktív tag
válasz
the radish
#28743
üzenetére
"Nem megy" - ez mit takar?
-
the radish
senior tag
válasz
FozzieBear
#28742
üzenetére
Hát sajnos nem.
Őszintén megmondva, a makrót rögzítettem, de indítást követően már nem megy. -
FozzieBear
csendes tag
válasz
the radish
#28741
üzenetére
Szerintem nincs ezzel semmi gond, kicseréli ez az aktív munkalap A1:B20 tartományában.
-
the radish
senior tag
Mi lehet a gond az alábbi pár sorral, hogy nem cseréli ki a ","-t "."-ra?
Range("A1:B20").Select
Selection.Replace What:=",", Replacement:=".", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False -
poffsoft
veterán
válasz
Melack
#28733
üzenetére
mi a képlet a conditional formattingnál?
ha az A1-ben kezdődik a validálásod, állj az a1 cellára,
magyarban a "formázandó cella kijelölése képlettel", a képlet pedig:
=$A1="close"
ehhez beállítod a formátumot.
az "Érvényesség" tartományba pedig =$1:$100megjegyzem, hogy teljes sorokat nem érdemes formázni, célszerűbb helyette az adattábla tartományát megadni.
-
rgqjx
aktív tag
Sziasztok!
A mellekelthez hasonlo excel tablazatok tartalmat szeretnem osszehasonlitani tartalom alapjan. Az oszlopok valtozhatnak, de a Kelet es az Eszak mindig igy van egymas mellett. Altalaban 2-500 sorosak ezek a tablazatok es kb 6-8 van beloluk, angol Office 2013-ban mentve.
A tablazat foldrajzi koordinatakat tartalmaz. A kivansagom az lenne, hogy szeretnem kilistazni azokat a teruleteket, melyek maximum ~50 meterre vannak egymastol, tehat valoszinuleg ugyan ott. Arra gondoltam, hogy eloszor a keleti koordinatatol maximum +-50 elteresbe beleferoket tovabb szukitenem az eszaki +-50-el..., majd ezek nevet kene kiirni. Peldaul: AAAA es CCCC kozel vannak egymashoz, de pl BBBB es DDDD mar tavol.Ti hogy indulnatok neki?
Egyik otletem, hogy egy tablazatba masolom az osszes tablazat lenyeges adatat es utana index-->match fuggveny bonyolitva a +-50 tavolsaggal (if, and)Adnatok par tippet, ami esszerunek tunik?
Elore is koszonom!


-
the radish
senior tag
Sziasztok!Adott egy szám, 10,250000. Ezt szeretném egy az ÖSSZEFŰZ függvénnyel több másik cellával összefűzni, de az eredményben 10,25 látszik csak, pedig szükségem lenne a hat tizedesjegyre.Hogy lehetne ezt megoldani?Előre is köszönöm.Köszi, a #,000000 paraméter kellett.
-
hemaka
nagyúr
Üdv.
Kérdésem, hogy megoldható lenne az Excelben, hogy van egy linkem forráskódja:
<a href="mappa1/file1.zip"></a>Ebből szeretnék többet úgy. hogy a mappa1 ne változzon, csak a file1 nőjön mindig eggyel, tehát így:
<a href="mappa1/file1.zip"></a>
<a href="mappa1/file2.zip"></a>
<a href="mappa1/file3.zip"></a>Ezer éve nem használtam excelt, próbálkoztam vele, de lövésem sincs hogyan lehetne megoldani. Köszönöm a segítséget.
-
Melack
veterán
Guruk! Segítség kellene. Angol nyelvű Excel 2010, drop down listből ha kiválasztok egy elemet (closed/waiting fro response, stb), akkor szeretném, ha a teljes sort az alapján színezné ki, hogy mit választok. Próbáltam a Conditional formattingot, de nem akar sikerülni. Hol tolom el? rosszul indultam eleve neki?
-
v-paci
aktív tag
válasz
Delila_1
#28729
üzenetére
Bocsánat a láma kérdésért, lehet nem voltam egyértelmű, inkább bevágom a táblázat egy részét:
Azt szeretném, hogy amikor a kimutatásban összesítve van a hónapok eredménye, akkor a teljesített MGB... valós darabszámát is hozzá tudjam adni. Meg lehet ezt valahogy oldani? Mármint, hogy egy megbízást csak egyszer számoljon?
-
v-paci
aktív tag
Sziasztok.
Adott egy táblázatom, amiben számlázó/nyilvántartó szoftverből exportált fuvarok szerepelnek. Az első oszlop tartalmazza a fuvarazonosítót, viszont abban az esetben, ha egynél több lerakóhely van, akkor annyiszor szerepel a fuvar a táblázatban, ahány lerakó volt. Kimutatást szeretnék csinálni, amiben szerepelnek a fuvar mennyiségek is. Hogyan tudom megoldani, hogy egy azonosítót csak egyszer számoljon?
-
oxox
addikt
válasz
Delila_1
#28718
üzenetére
koszi a gyors segitseget...maris probalomerror
egyreszt angol az excelem (match parancsot azonositottam be a holvannal)
A ket megadott cellam a D26, D28
A tablazatom pedig L24-tol tart AR-igezt irtam be
=index($l$24:$ar$36;MATCH($d$26;$A:$A;0);MATCH($d$28;$1:$1;0))hol a hiba?
thanks, es sorry a hozzanem ertesemert -
oxox
addikt
Sziasztok Guruk,
egy szamomra osszetettebb feladatra szeretnek segitseget/fuggvenyt kerni.
lebutitva
legyen egy tablazatom, melynek az oszlopai 1,2,3, a sorai a,b,c, a tablazat belso reszeire meg legyen mondjuk nevek irvavan ket mezom, ahol az egyikbe 1-tol 3-ig kapok egy eredmenyt, ill. egy masik mezom ahol a, b, vagy c-t kapok (az most mindegy vegul is, hogyan kapom) azt szeretnem, ha a mellekelt tablazatbol kikeresne ezeket a sort, oszlopot, es egy cellaba kiirna a keresztezodesbe kapott nevet
pelda
ha a megadott oszlop 2 a sorom pedig C, akkor egy fuggveny keresse meg a 2-es oszlopot, ill. C sort, es irja be az eredmenyt egy cellaba...azert nem szeretnek logikait, ha nem muszaly (mondjuk if-et), mert kb 40x15-os tablazatrol van szo, es gondolom azzal hosszadalmas lenne.koszi elore is

oxox -
Fferi50
Topikgazda
válasz
boomkat88
#28713
üzenetére
Szia!
Sajnos, úgy tűnik ez nem műxik a sor/oszlop cimkéknél. Viszont ha jobb egérgombbal rákattintasz egy sorcimkére és kiválasztod a rendezést, ott van olyan lehetőség, hogy kézi húzással. Ekkor tetszés szerinti sorrendbe rakhatod az adott cimke értékeit (ez persze akár sok munka is lehet). Másik trükk esetleg, hogy számokat vagy betűket raksz a cimkék első betűjébe a kívánt sorrend szerint.
Üdv.
-
poffsoft
veterán
válasz
Fferi50
#28712
üzenetére

lassan megtanulom azért a VBA-t így segítséggel.
Ma a Global volt a második nyerő deklaráció tőled, kb. 1 hónapnyi javítást meg is csináltam ma a kódomon
Az iteráció tiltást/visszaállítást is a workbook open / beforeclose rutinra bíztam, így nem panaszkodik a körkörös többé

-
boomkat88
újonc
válasz
Fferi50
#28691
üzenetére
Köszi! Egészen jó lett, de a sor -és oszlopcímkéknek meg tudom adni, hogy a forrás táblázat szerinti sorrendben rendezze és ne növekvő sorrendben? Mert a kimutatás beállításaiban a megjelenés fülön kétféle sorbarendezést választhatok (A-Z és adatforrás sorrendje szerinti) nekem természetesen az utóbbi van kipipálva, de mégis növekvő sorrendben vannak és nem úgy ahogy az adatforrásban. Hogy lehet?

-
Fferi50
Topikgazda
válasz
poffsoft
#28710
üzenetére
Szia!
Látom, közben megtaláltad a jó (jobb) megoldást. De most leírt esetben is működik a dolog. Mivel a Thisworkbook modul u.n. osztálymodul, ezért az ott deklarált Public változók úgy érhetők el, ha "teljes névvel", a modul nevével is hivatkozunk rá: Thisworkbook.változónév. Ebben az esetben látható az értéke más modulokból is.
Ez az eljárás minden osztálymodulnál működik (tehát pl. egy munkalaphoz tartozó kódban is deklarálható Public változó és a kódmodulneve.változónév formában lehet rá hivatkozni más modulokban).Üdv.
-
poffsoft
veterán
válasz
Fferi50
#28709
üzenetére
ilyesmit próbáltam, a thisworkbook.open eseményben deklaráltam public-ot, de azt a module1-ből már nem látta a sub.
a globalnak utánanézek, nem ismerem
ja, az egésszel azért vacakolok, mert magát a főrutint a selection.change esemény hívja meg (és annak is kell meghívnia), és eléggé belassul a munka...
-
Fferi50
Topikgazda
válasz
poffsoft
#28708
üzenetére
Szia!
Akkor deklaráld a tömbödet Public-nak, vagy Global-nak. Egy külön eljárásban töltsd fel a tömböt, mielőtt meghívnád a "számoló" rutint. Ha a külön eljárásod lefut, megnézheted, hogy benne maradnak az értékek a tömbben (ez biztos, de ellenőrizd egyszer). Idézet a 2010-es VBA helpből: "You can also use the Public statement with empty parentheses to declare a dynamic array. After declaring a dynamic array, use the ReDim statement within a procedure to define the number of dimensions and elements in the array"
A többszöri meghíváskor már nem kell feltölteni a tömböt, mert az már megtörtént külön. Az értékük addig él, amíg ki nem lépsz a főprogramból.Üdv.
-
poffsoft
veterán
válasz
Fferi50
#28707
üzenetére
modul szinten kellene állandó, de ugye public vagy const változó nem lehet tömb.
az a bajom, hogy egy futtatás során több százszor feltöltöm ezt a tömböt, a sub minden meghívásakor,
pedig elég lenne a modul "inicializálásakor".
azok a "ciklust vezérlő" változóim modul szintű public const -ok.
ciklus nélkül is feltölthetném, a range megoldás jó is lehetne, de akkor is csak a modul inicializálásakor.
tömb helyett azt nem lehet megoldani pl, hogy konstansként deklarálom a:
elem11
elem12
elem22
-t,
és ezeket indirekten generált nevükkel érem el?a= indirect.elérés("elem" & i & j)
módjára?a körkörös képlet kiértékelésekor már nem talál hibát, ezért merem állítani, hogy nem körkörös (meg szerintem sem az). mondjuk eltolás fv range kijelöléséhez használ cellaértéket a képlet, ami ha a cellaérték helyett 0-t helyettesít be, valóban körkörös.
Az iteráció kikapcsolását találtam én is, de pont a leírtad aggaszt engem is...
-
Fferi50
Topikgazda
válasz
poffsoft
#28706
üzenetére
Szia!
Mivel a makródnak tudnia kell, hogy mivel számoljon, egyszer mindenképpen meg kell adnod valahol a programban ezeket az értékeket. Mivel a ciklust vezérlő változóid érteke valószínűleg nem állandó, hiszen ellenkező esetben a konkrét számokat adtad volna meg a select case-ben ezért a tömb értékeid sem lesznek valódi konstansok!
Ha tényleges értékeket tudsz, akkor megoldás lehet pl. az, hogy egy munkalapon beírod ezeket az értékeket mondjuk az A1-B8 tartományba, majd a tombvaltozó=range("A1:B8").value utasítással egy lépésben bekerül a tömb értékébe mind. A tömböt dinamikusnak kell deklarálni.
Beteheted az értékeket egy szövegfájlba és akkor onnan is be lehet olvasni fájlművelettel.Ha az excel azt mondja, körkörös hivatkozás van, akkor az úgy is van, csak valószínűleg olyan "bonyolult módon", hogy "szabad szemmel" nem látható. Érdemes ilyenkor a képletvizsgálatot bekapcsolni.
A beállítások képletek részénél van olyan, hogy közelítés engedélyezése x lépésben, ha ide beírod az 1 lépést, akkor nem kiabál a körkörös hivatkozás miatt - cserébe viszont nem is számolja át ismét az értékeket, ha változott a bemenő adat, csak kérésre.
Ezért nem ajánlott a "kikapcsolása".Üdv.
-
poffsoft
veterán
sziasztok,
van egy makró, amiben tömböt használok.
Ezt a tömböt minden futtatásnál fel kell töltenem (amúgy konstansok lesznek a futás alatt)
Ezt hogyan lehetne valódi konstansokkal megoldani, hogy ne kelljen minden futáskor feltöltenem?
(a General szekcióban gondoltam, hogy a teljes modulra érvényes állandók legyenek)
Feltétel, hogy a tömbhöz hasonlóan indexekkel tudjak hivatkozni rájuk.
Azt tudom, hogy tömböt ott nem tudok deklarálni, de megoldásom nincsen...
Sub Keretek(ByVal Target As Range)
Dim i As Long
Dim lean() As Long
Dim omax As Long, omin As Long, omed As Long, oTh As Long
Dim negy As Long
negy = 4
omax = 6
omin = 1
omed = 2
oTh = 5
ReDim lean(1 To 2, 0 To omax + 1) As Long
For i = 0 To omax + 1
Select Case i
Case 0
lean(1, i) = xlDash 'szaggatott
lean(2, i) = xlHairline 'hajszál
Case 1 To omin
lean(1, i) = xlContinuous 'foly
lean(2, i) = xlThick 'vastag
Case omin + 1 To omed
lean(1, i) = xlContinuous 'foly
lean(2, i) = xlMedium 'közepes
Case omed + 1 To oTh
lean(1, i) = xlContinuous 'közepes
lean(2, i) = xlThin 'vékony
Case Else
lean(1, i) = xlNone 'folyamatos
lean(2, i) = xlThin 'vékony
End Select
Next i
'.....
End SubMásik gondom, hogy rendszeresen felugrik egy hibaablak, hogy "körkörös hivatkozások" vannak (ami amúgy nem igaz, de elhiszem az excelnek, hogy úgy gondolja), és ez munka közben elég zavaró.
Ezt hogyan lehetne letiltani ? Remélem, nem csak globálisan az összes hibaüzenet letiltásával, mert az nem lenne szerencsés megoldás...

-
m.zmrzlina
senior tag
válasz
RedHarlow
#28686
üzenetére
Feltételezem, nincsen olyan emailcím az 1000 között aminek azonos az első öt karaktere. Ez esetben csinálj egy segédoszopot, modjuk az E oszlopba a következő képlettel:
E1 képlete:=BAL(A1;5)
Ezt másold le az email címlista aljáig. Azután akár el is rejtheted az oszlopot.C1 képlete:
=HAHIBA((INDEX(A:A;HOL.VAN(B1;E:E;0)));"")Ezt másold le a C20-ig. /vagy addig amennyi rövidítésed van/
Ha mégis van olyan email cím aminek azonos az első öt karaktere akkor az első előfordulást fogja eredményként adni.
Új hozzászólás Aktív témák
- Milyen videókártyát?
- A robotaxik bizony karamboloznak, nincs itt semmi látnivaló!
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- eMAG vélemények - tapasztalatok
- LEGO klub
- Otthoni hálózat és internet megosztás
- Nothing Phone (3a) Lite – mennyit ér a név?
- Kávé kezdőknek - amatőr koffeinisták anonim klubja
- Xiaomi 15T Pro - a téma nincs lezárva
- Sorozatok
- További aktív témák...
- Árváltozás: Deus Ex Human Revolution Collector's Edition
- 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
- Árváltozás + játék DVD: Watch Dogs Deadsec Edititon
- Bitdefender Total Security 3év/3eszköz! - Tökéletes védelem, Most Ünnepi áron! :)
- Apple Watch Ultra 2,Újszerű,Dobozával,12 hónap garanciával
- GYÖNYÖRŰ iPhone 13 Pro Max 128GB Graphite -1 ÉV GARANCIA - Kártyafüggetlen, MS3063, 100% Akksi
- GYÖNYÖRŰ iPhone 11 Pro 64GB Silver -1 ÉV GARANCIA - Kártyafüggetlen, MS3565, 100% Akkumulátor
- HIBÁTLAN iPhone 14 256GB Midnight -1 ÉV GARANCIA - Kártyafüggetlen, MS3531, 93% Akkumulátor
- ÁRGARANCIA!Épített KomPhone i7 14700KF 32/64GB RAM RTX 5070 Ti 16GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: BroadBit Hungary Kft.
Város: Budakeszi
Cég: ATW Internet Kft.
Város: Budapest












