Hirdetés
-
PowerWash Simulator - Már több mint 12 millióan próbálták ki
gp Sokak szerint abszurd a játék alap témája, mégis nagyon sokan döntöttek arról hogy kipróbálják a programot.
-
MG4 menetpróba
ma Mindenképpen van fantázia az MG4-ben, az alapfeladatokat olcsón kipipálja, de többet akar nyújtani, mint amire képes.
-
AMD Radeon undervolt/overclock
lo Minden egy hideg, téli estén kezdődött, mikor rájöttem, hogy már kicsit kevés az RTX2060...
-
Mobilarena
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
-
Delila_1
Topikgazda
válasz FehérHolló #3600 üzenetére
Szívesen.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
gamer0101
aktív tag
Sziasztok! 2007-es Excelben miképp lehetne megoldani, hogy a cellába beírt "01" az "01" is maradjon cellaváltás esetén? Ugyenez vonatkozik persze minden 0-val kezdődő számra. Nekem így kellene most használni, de ő mindig kijavítja simán csak "1"-re.
Valami ötlet? -
gazsiazasz
csendes tag
Hali!
kérdés:
vannak 10db cellában számok egymás mellett amit más adatokból nyerek képlet segítségével.
Ezek tulajdonképp egy berendezés alkatrészeinek a méretei, vannak növelő és csökkentő méretek, a 2összegének 0-t v. 1-et kell adjon, tehát ha a fent emlitett 10számot összeadom(a növelő tag pozitiv méretet, a csökkentő tag negatív méretet jelent), a végeredménynek 0-nak v. 1-nek kell lennie. Aztán ebből a 10 méretből egy másik képletből pl a számok feletti cellába ki van hozva hogy az adott cella értéke módosítható e vagy sem (Legalább 1méret biztosan módosítható mindig).Na most a kérdés az hogy ha én a növelő és a csökkentő(ezek egyébként fixek hogy melyik csökkentő, melyik növelő) tagoknak az előjeles összegénél 0-t kapok, akkor az egyik méretem ugy kell módosítani hogy 0 helyett 1et kapjak és ha pedig 1jönne ki a helyett 0-t kellene hogy kapjak végeredményképpen, és csak 1tagot lehet módosítani e célból a 10méret közül, azokon az elemeken belül amelyikeket kiadta az excel hogy azokat módosíthatom.
Segítsetek!!
-
Delila_1
Topikgazda
válasz FehérHolló #3602 üzenetére
Az Eszközök/Bővítménykezelőben kapcsold be az Analysis ToolPak-ot és az Analysis ToolPak-VBA-t. Az első egy halom új függvényt ad, amiket a munkalapodon alkalmazhatsz, a másik ugyanezt adja a VBA felületen, amiktől értelmezhetővé válnak a makrók utasításai az Excel számára.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
válasz gazsiazasz #3606 üzenetére
Tegyél már be egy képet, a leírás alapján (nekem) nem elég világos a feladat.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Lehdog
csendes tag
Sziasztok!
Kedves fórumozók, segítségre lenne szükségem. A megoldandó feladat a következő: Szeretném elérni, hogy egy kombobox elemeit kiválasztva, a táblázat adott sheetjének adott cellájára ugorjon. Ha valaki tud egy ilyen makrót, legyen kedves ossza meg velem is
Előre is köszönöm! -
FehérHolló
veterán
válasz Delila_1 #3607 üzenetére
Nem az a baj, hogy nem értelmezi a makrókat, hanem az, hogy a magas biztonsági szint miatt letiltja a futtatásukat, amikor megnyitom az adott excel filet.
Hogy lehet a biztonsági szintet csökkenteni, vagy valami más megoldás van rá?
(Bekapcsoltam az általad említett két bővítményt.)
[ Szerkesztve ]
Skynet is real. It's called Google.
-
Delila_1
Topikgazda
válasz FehérHolló #3611 üzenetére
Nem tudom.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
válasz gazsiazasz #3609 üzenetére
Ez elég bonyolult, dolgozom rajta, az eredményt hét végén elküldöm email-ben (ha jó a megadott címed).
[ Szerkesztve ]
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
válasz FehérHolló #3614 üzenetére
A "Nem tudom"-ot? Nagyon szívesen, máskor is.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
válasz FehérHolló #3614 üzenetére
A #3600-nál azt mondtad, hogy tökéletesen működik. Másik gépen nem megy?
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
FehérHolló
veterán
válasz Delila_1 #3616 üzenetére
Ugyanaz a gép. Amíg nem zártam be, addig ment, amikor újra megnyitottam, már nem.
Egyébként a megoldás: eszközök -> makró -> biztonság -> magasról közepesre. Közben rájöttem.Tudnál még esetleg valamiben segíteni, ha nem vagyok nagyon a terhedre?
A fenti makróba mit kellene még beleírni a végére, hogy visszaugorjon abba a cellába, amit változtattam?
Ezt próbáltam a végére (End If elé) írni, de kifagy:
Range(Target.Column & Target.Row).Select
[ Szerkesztve ]
Skynet is real. It's called Google.
-
FehérHolló
veterán
válasz FehérHolló #3617 üzenetére
Megoldva. Cells(CurrRow, CurrCol).Select.
(Változóknak van érték adva.)Sorba rendezés milyen függvénnyel megy? Kezdek belemelegedni.
[ Szerkesztve ]
Skynet is real. It's called Google.
-
Delila_1
Topikgazda
válasz FehérHolló #3619 üzenetére
Függvény nincs rá, rögzíts makróban egy sorbarendezést, és azt vesézd ki.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
Ebben az esetben a legördülő bemeneti tartománya B1: B4, a cellacsatolás E2. A csatolást a legördülő "mögé" érdemes tenni, ott nem látszik, senkit sem zavar.
A makró:
Sub Ugras()
sor = Cells(2, 5) 'E2 cellában van a kiválasztott elem sorszáma
lapnev = Cells(sor, 2)
cell = Cells(sor, 3)
Sheets(lapnev).Select
Range(cell).Select
End SubMikor kiválasztasz egy munkalapot (Alma: Banán) a listából, az E2 cellába beíródik a listabeli sorszáma.
Az Ugras makrót rendeld hozzá a legördülőhöz.[ Szerkesztve ]
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
lapa
veterán
válasz Delila_1 #3622 üzenetére
ne érts félre, nem kritikának szántam. élvezettel olvasom a megoldásaidat, tegnap is jót tanultam a dir() function részirűl, az application.filesearch-ben nem tudsz attribútumokra filterezni pl.
az meg pláne tisztelendő, hogy ilyen aktívan hosztolod a kedvenc programom totyikját
[ Szerkesztve ]
-
FehérHolló
veterán
válasz Delila_1 #3620 üzenetére
Viszonylag sokat keresgéltem tegnap, végül ez volt az a sok közül, ami némiképp megfelelne a célnak:
Sub SortAllRangeData()
' Place column header for temporary sort area.
Range("IV1").Value = "Numbers"
' Move numbers to temporary sort location.
For Each cell In Selection
Range("iv65536").End(xlUp).Offset(1, 0) = cell.Value
Next cell
' Sort numbers in ascending order.
Range("IV1", Range("IV1").End(xlDown)).Sort Key1:=Range("IV2"), _
Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
' Move sorted data back to original sheet location.
Selection(1, 1).Activate ' Make sure the ActiveCell is the
' top left of Selection first.
CCnt = Selection.Columns.Count
RCnt = Selection.Rows.Count
CellCnt = Selection.Cells.Count
Tcell = 2
For c = 1 To CCnt
For r = 1 To RCnt
Range(ActiveCell.Address).Offset(r - 1, c - 1).Value = _
Range("iv" & Tcell).Value
Tcell = Tcell + 1
Next r
Next c
' Clean up temporary sort location.
Range("IV1", Range("IV1").End(xlDown)).Clear
End SubEz viszont túl sok idő, mire lefut. A cél a kezelés kényelmesebbé tétele lenne, nem az, hogy akárhányszor hozzá van adva egy adat, mindig lefusson egy ilyen és rabolja az időt. Inkább a végén megcsinálom manuálisan a sorba rendezést mielőtt mentem.
Skynet is real. It's called Google.
-
lapa
veterán
válasz FehérHolló #3626 üzenetére
próbáld meg kétdimenziós tömbbe (array) rakni, korábban volt róla szó. utána azon futhat le a két for-next. nagyjából két nagyságrenddel meggyorsítja.
-
FehérHolló
veterán
Nem fogok egy 400x9-es táblát minden új sor beillesztésénél átmásolni valahova, rendezni, majd visszamásolni. Főleg úgy, hogy egymás után 4-5 sort szoktam általában hozzáadni.
Egyébként erősen kétlem, hogy nincs rá egyetlen függvény (makróknál), amikor egy kijelöléssel és egy kattintással meg lehet csinálni, ha manuálisan akarja az ember.
[ Szerkesztve ]
Skynet is real. It's called Google.
-
Delila_1
Topikgazda
válasz FehérHolló #3626 üzenetére
Látom, egy kulcs szerint akarsz rendezni. Szerintem sem érdemes makrót futtatni, a kulcsot képező oszlopban állva egyetlen kattintás, és kész, ki sem kell jelölni a táblát.
Legfeljebb zárás előtt egy inputboxban (vagy msgboxban) rákérdezel, hogy akar-e rendezni, és igen esetén egyszer lefuttatni.[ Szerkesztve ]
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
válasz FehérHolló #3628 üzenetére
Itt egy kis makró, ami a fájl bezárásakor rákérdez a rendezésre (I oszlop szerint):
Sub auto_close()
If MsgBox("Akarod rendezni mentés előtt az adatokat?", vbYesNo) = vbYes Then
Range("I2").Select
Selection.Sort Key1:=Range("I2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End If
ActiveWorkbook.Save
End SubFontos, hogy auto_close legyen a neve, mert akkor automatikusan végrehajtódik záráskor.
Ha még ugyanarról a fájlról van szó, amelyikben B:G oszlopokban van adat, és I-be íródik a dátum, akkor gondoskodni kell a H oszlop kitöltéséről, hogy a rendezésbe belevegye az előző oszlopokat is. Ha üres oszlop van közöttük, csak az I oszlopot rendezi.
A H-ba, ha egyébként nem lenne ott adat, a targetes makróval íratunk egy pontot. Az
If (Target.Column >1 kezdetű sor után írd be:
Cells(8,Target.Column)="."Ha nincs fejléced, a Header:=xlGuess-t javítsd át Header:=xlNo-ra.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
FehérHolló
Félrevezettelek az előbb (ha hagytad magad). A targetes így módosul:
Sub Worksheet_Change(ByVal Target As Excel.Range)
If (Target.Column > 1 And Target.Column < 8) Then
Cells(Target.Row, 8) = "." 'Itt írtam hülyeséget az előbb
Cells(Target.Row,9).Select
Selection.FormulaR1C1 = "= TODAY()"
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone
Application.CutCopyMode = False
Cells(Target.Row, Target.Column).Select 'Ez visszaáll a bevitt adat cellájára
End If
End Sub[ Szerkesztve ]
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
FehérHolló
veterán
válasz Delila_1 #3632 üzenetére
Köszönöm, de a H-ban is van adat, csak annak nem számít a módosítása.
Különben a végén a Target.Row és Target.Column értékeivel vigyáznék, mert közben a copy miatt módosulnak.
Rendezőset csak holnap tudom kipróbálni, mert most mennem kell egy találkozóra.
[ Szerkesztve ]
Skynet is real. It's called Google.
-
Delila_1
Topikgazda
válasz FehérHolló #3633 üzenetére
Kipróbáltam. Ha meghagyod az eredeti Range("I" & Target.Columns).Select-et a
Cells(Target.Row, 9).Select helyett, akkor hiba nélkül működik.Akkor most véletlenül kiderült, hogy a formai különbségnek látszó eltérés a működésben is mást eredményt ad.
Jó szórakozást!
[ Szerkesztve ]
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
válasz gazsiazasz #3609 üzenetére
A makrót úgy írtam, hogy a 21. sor színeit, és a 22. sorban lévő IGAZ és HAMIS értékeket figyelje, azok alapján módosítsa a 41. sor valamelyik adatát. A linkelt képből nem derül ki világosan, hogy a 41-en kívül kell-e még máshol is változtatni.
Előbb képletekkel szerettem volna megoldani, de nem sikerült, makróval viszont nem túl bonyolult.Sub Méretek()
If Cells(41, 12) = 0 Then
f = 0
For oszlop = 3 To 11
If Cells(22, oszlop) Then
If Cells(21, oszlop).Font.ColorIndex <> 3 Then
Cells(41, oszlop) = Cells(41, oszlop) - 1
f = 1
Else
Cells(41, oszlop) = Cells(41, oszlop) + 1
f = 1
End If
End If
If f = 1 Then Exit For
Next
End If
If Cells(41, 12) = 1 Then
For oszlop = 2 To 11
If Cells(22, oszlop) And f = 0 Then
If Cells(21, oszlop).Font.ColorIndex <> 3 Then
Cells(41, oszlop) = Cells(41, oszlop) + 1
f = 1
Else
Cells(41, oszlop) = Cells(41, oszlop) - 1
f = 1
End If
End If
If f = 1 Then Exit For
Next
End If
End SubProgramozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
cortez25
aktív tag
Sziasztok!
egy kis segitség kellen, ha csinálok egy listát, és után azt érvényesitem több cellára akkor ugye választhatok a legördülő menüből. Azt szeretném, ha a listában szereplő adatokat ne lehessen ismételni a legördülő cellában.
Azért hajtunk, hogy öregségünkre legyen miből visszaállítani az egészségünket, ami ebbe ment tönkre.
-
Delila_1
Topikgazda
Úgy vettem észre, hogy csak a billentyűzetről bevitt adatot veszi target értéknek, amit makróval íratsz be egy cellába, azt nem. Ezért, ha range("i" & target.column).select kifejezéssel hivatkozom egy cellára, a target.row értéke nem változik. Erről nem láttam sehol leírást.
Azt mondod, "ha az & tényleg műx". Próbáld ki!Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
perempe
addikt
Ha kitöltöm A oszlopot, és az első sort számokkal, akkor hogyan tudom a hányadosukat kiszámítani? (B2-vel kezdődne a téglalap. Példa: 3 oszlop és 5 sor esetén D6 a jobb alsó sarok. Hogyan dobja ki a megfeleő oszlop és sor hányadosait a metszésesekben?)
* Brahms: 4. szimfónia *
-
cortez25
aktív tag
esetleg valaki valamilyen tanács? #3637
[ Szerkesztve ]
Azért hajtunk, hogy öregségünkre legyen miből visszaállítani az egészségünket, ami ebbe ment tönkre.
-
Ősember
őstag
hello
adott egy oszlop tele számokkal. szeretném, ha az oszlopban szereplö összes számot megszorozná egy adott számmal, mondjuk 123-al és az összes kapott eredményt kerekitse mondjuk 50-re. tehát ha az oszlop egyik száma eddig 23 volt, akkor most 23*123=2829~2850 lesz. 27-nél pedi 27*123=3321~3300.
aki tudja mit kell tenni az ne fogja vissza! köszönöm elöre is[ Szerkesztve ]
______________________________________________________________________ www.rambazar.com - G.Skill minden szinten - 8GB DDR3 15.000Ft alatt!
-
Ősember
őstag
válasz Ősember #3641 üzenetére
esetleg azzal bonyolitanám a dolgot, hogy mielött megszorozná a számot, azelött hozzáadjon egy másik számot (pl 5 - fix, mint a szorzo) és akkor ezt az öszeget szorozná majd kerekitené
______________________________________________________________________ www.rambazar.com - G.Skill minden szinten - 8GB DDR3 15.000Ft alatt!
-
Delila_1
Topikgazda
válasz Ősember #3642 üzenetére
G1-be írom a szorzót (123), H1-be a hozzáadandó értéket (5). A számok az A oszlopban, A1-től kezdődően vannak, a kerekített eredményt a B oszlopban kapom meg. A C-be beíratom a (A+H1)*G1 értéket, hogy ellenőrizni lehessen a kerekítést. Ha erre az utóbbira nincs szükség, töröld a Cells(sor,3)=sz sort.
Sub KerekOtven()
sor = 1
Do While Cells(sor, 1) <> ""
sz = (Cells(sor, 1) + Cells(1, 8)) * Cells(1, 7)
Cells(sor, 3) = sz
ket = Fix(Right(sz, 2))
Select Case ket
Case Is <= 24
sz = Left(sz, Len(sz) - 2) & "00"
sz = Fix(sz)
Case 25 To 74
sz = Left(sz, Len(sz) - 2) & "50"
sz = Fix(sz)
Case Is >= 75
sz = Left(sz, Len(sz) - 2) & "00"
sz = Fix(sz) + 100
End Select
Cells(sor, 2) = sz
sor = sor + 1
Loop
End SubProgramozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
válasz cortez25 #3637 üzenetére
Egy kicsit pontosabban kellene megfogalmaznod a kérdésedet. Úgy látom, más sem érti, azért nem kapsz választ.
Azt szeretnéd elérni, hogy a hivatkozott listában ne szerepelhessen egy adat kétszer?Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
Most vettem észre, hogy már több ikonból lehet női arcképet választani. Mikor beléptem, két arc volt, abból is az egyik foglalt.
Ideje a változtatásnak.Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Ősember
őstag
válasz Delila_1 #3643 üzenetére
nagyon keveset foglalkoztam excelel, igy megkérdezném, hogy hova irjam be ezt a kodot?
ha az alapértékek nem A1-ben lesznek majd, akkor ezt a sort kell modositanom, igaz?sz = (Cells(sor, 1) + Cells(1, 8)) * Cells(1, 7)
amennyit kivettem belöle akármilyen hosszu ez a lista ez végig megcsinálja majd a müveleteket, stimmt?
[ Szerkesztve ]
______________________________________________________________________ www.rambazar.com - G.Skill minden szinten - 8GB DDR3 15.000Ft alatt!
-
Delila_1
Topikgazda
válasz Ősember #3646 üzenetére
Mindkét kérdésedre igen a válasz. Az 1-et írd át annyira, ahányadik oszlopban vannak az adataid.
A kódot a VBE-be (Visual Basic Editor) másold be. Behívása vagy Eszközök/Makró/Visual Basic menüből, vagy Alt+F11-el történik. A bal oldali könyvtárban állj rá a füzetedre, majd a menüből az Insert/Module hatására jobb oldalon kapsz egy üres lapot, oda másold.
Indítás az Excelben: Eszközök/Makró/Makrók (vagy ezek helyett Alt+F8), ott a makró címére duplán kattintasz.[ Szerkesztve ]
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
cortez25
aktív tag
válasz Delila_1 #3644 üzenetére
Lehet,hogy bonyolult voltam
Szóval egyszerű a kérdés, van egy ugyanazon táblában egy listám, mondjuk nevekkel 30 db név. Ezeket a neveket 5 számhoz akarom hozzárendelni, úgy,hogy a végére elfogyjanak, vagy ne lehessen ismételni őket, viszont az 5 számhoz különbözö mennyiségű nevet is lehessen rendelni.
Na addig eljutottam,hogy a listát a számokhoz érvénysítettem, de attól a lista mindíg felajánlja ugyanazokat neveket és akár egy számhoz többször is ugyanazt a nevet gördítem le. Na ezt nem akarom.
[ Szerkesztve ]
Azért hajtunk, hogy öregségünkre legyen miből visszaállítani az egészségünket, ami ebbe ment tönkre.
-
Ősember
őstag
válasz Delila_1 #3647 üzenetére
hello
megy rendesen csak egy gondom van... amikor éppen megcsinálom a makrot akkor teljesen jo minden, müködik pikk pakk akárhányszor csak akarom, de amint kilépek az excelböl és ujra használni szeretném nem inditja el a makrot arra hivatkozva, hogy tul magas a biztonsági szint. ha leveszem a biztonsági szintet egészen alacsonyra, akkor is azt irja, hogy a biztonsági szint magas.... valamit ötlet?______________________________________________________________________ www.rambazar.com - G.Skill minden szinten - 8GB DDR3 15.000Ft alatt!
Új hozzászólás Aktív témák
- Eredeti játékok OFF topik
- A TikTokon marakodik Trump és Biden, betilthatja az USA
- Path of Exile (ARPG)
- Yettel topik
- Kínában túl sok az EV, fokozódik az árháború
- 3D nyomtatás
- AMD Ryzen 9 / 7 / 5 / 3 3***(X) "Zen 2" (AM4)
- Formula-1
- Luck Dragon: Asszociációs játék. :)
- Anime filmek és sorozatok
- További aktív témák...
- Bitdefender Total Security 3év/3eszköz! - "Tökéletes védelem most kedvező áron..."
- Bontatlan - BATTLEFIELD 1 Collectors Edition - Játékszoftver nélkül
- Windows 10 Home COA fizikai licencek kiárusítás ingyenes szállítással
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! LEGOLCSÓBB! Automatikus 0-24
- Windows, Office licencek a legolcsóbban, egyenesen a Microsoft-tól - 2990 Ft-tól!