-
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
veterán
Egyszerűen kitöltheted az üres helyeket.
Kijelölöd a B6:D14 területet. Ctrl+g-re bejön az ugrás menü, ahol az irányítottat, majd az üres cellákat választod. Marad a kijelölés, az aktuális cellába beírsz egy egyenlőség jelet, majd FEL nyilat nyomsz, Ctrl+Enter.Ezután már csak a képletet kell beírni a B3-ba: =FKERES(B2;$A$6:$D$14;OSZLOP();1), és ezt jobbra másolni.
-
Delila_1
veterán
-
Delila_1
veterán
Rendeld a lapodhoz a makrót. Az A oszlopba írva a B-ben lesz a dátum, a C-ben a sorszám.
Mikor törölsz az A-ból egy adatot, üres lesz az azonos sorban lévő B és C cella, a sorszámok maradnak. Ha ebbe az üres A-ba új adatot írsz, a következő sorszám lesz a C-ben.Pl. folyamatosan írtál az A1-be, A2-be és A3-ba. A C1=1, C2=2, C3=3. Törlöd az A2-t, a C2 (és B2) üres lesz. Új értéket írsz az A2-be, a sorszáma 4 lesz, amiből látszik, hogy később töltötted ki a 2. sort, mint a 3-at.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
If Not IsEmpty(Target) Then
Cells(Target.Row, 2) = Date
Cells(Target.Row, 3) = Application.Max(Columns(3)) + 1
Else
Range("B" & Target.Row & ":C" & Target.Row) = ""
End If
End If
End Sub -
Delila_1
veterán
Régebbi verzióban a Szerkesztés - Csatolások menüpontban a Váltás gomb segítségével kitallózod az aktuális fájlt. Gyakorlatilag a csatolás saját magára mutat majd minden füzetben. Ezzel a lépéssel egyszerre minden lapon megszűnik a másik füzetre történő hivatkozás.
Másik, kicsit macerásabb mód, hogy a csere funkció segítségével a hivatkozásnak azt a részét, ami a másik füzetre mutat, minden egyes lapon lecserélsz "semmire" (üresen hagyod a mire cserél rovatot).
-
Delila_1
veterán
A laphoz rendelt makróval lehet megoldani. Az első változatot írtam meg, mikor az A1-be írva a B1 zárolt lesz. Mikor törlöd az A1 tartalmát, mindkét cella felszabadul. A B1-be írva az A1 lesz zárolt.
A makró indítása előtt a többi cellában – ahova még akarsz írni a fenti kettőt kivéve – töröld a zárolást.
Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Protect UserInterfaceOnly:=True
If Not Intersect(Target, Range("A1:B1")) Is Nothing Then
If IsEmpty(Target) Then
Range("A1:B1").Locked = False
Exit Sub
End If
End If
If Target.Address = "$A$1" Then
Range("B1").Locked = True: Range("A1").Locked = False
End If
If Target.Address = "$B$1" Then
Range("A1").Locked = True: Range("B1").Locked = False
End If
End Sub -
perfag
aktív tag
Szerintem cellába nem lehet. Vagy ha lehet is, hát onnan kezdve nem titkos.
Makróban viszont el tudom képzelni, egy maszkolt InputBox-szal. Mások is így csinálják: [Password Character InputBox].
(A Daniel Klann-os forrásra több helyen hivatkoznak, de már nem él a link.)
Két InputBox-szal begyűjtöd a felhasználói nevet és a jelszót, hozzáadod a lekérdező stringhez és jönnek a zadatok.
-
Pá
addikt
Az előzőhöz kapcsolódik, de más jellegű a kérdés, szóval ezt külön hsz-be írom.
Amikor beírják a jelszavukat a passwordos cellába, jó lenne, ha nem mutatná a karaktereket, hanem csak ilyen csillagocskákat jelenítene meg a képernyőn. Ez megoldható valamiféle formátummal, vagy akárhogy?
-
Delila_1
veterán
Kikeresed a tartomány max. és min. értékeit, ezek különbségét osztod annyival, ahány árnyalatban akarod megjeleníteni a karaktereket.
A csatolt képen a B1 a min., C1 a max., D1 az osztás, és az E1:E6 tartomány adja a határértékeket a feltételes formázáshoz. Kerekítheted is a számokat.
A formázást meg úgy tedd, ahogy m.zmrzlina ajánlotta.Szerk.: semmi szükség a HA függvényre, elég az =$B$1+$D$1*SOR()-1 az E2 cellától, az első érték (E1) a min. érték legyen.
-
m.zmrzlina
senior tag
Szerintem ebből makró lesz de ezzel kapcsolatban nekem is van kérdésem.
Miért nem lehet egy feltételesen formázott cella háttérszínét Másolás>Irányított beillesztés>Formátum módszerrel lemásolni?
Illetve ha ilyen cella háttérszínének az értékét szeretném lekérdezni az Immediate ablakban az ?ActiveCell.Interior.Color paranccsal akkor a fehér (vagy Nincs kitöltés) értékét adja ( 16777215-öt)?
(Ismerjük a viccet? "Angolórát adok-veszek.")
-
m.zmrzlina
senior tag
Egy form-ot szeretnék csinálni, amibe mindig becopyzok egy oszlopnyi adatot és mindig az aktuális adatok határozzák meg a tartományt.
Így már értem, valóban nem a szín a probléma gyökere. A "form" gondolom nem VBA UserForm hanem egy megfelelően kialakított Excel munkalap, ugye?
-
m.zmrzlina
senior tag
Ez sajnos nem jó nekem. Én ezzel a módszerrel szeretném megoldani, ha lehet, csak a cellák helyett a betűket színezze.
De bizony, hogy jó.
Csak a példámban egy szín világosság értéke változik neked pedig az kell, hogy (ha nem is silány 5 lépésben) két szín átmenjen egyikből a másikba. Sajnos ha ragaszkodsz a példádban lévő látványhoz akkor nem fogod megúszni az egyéni színek felvételét. Minél finomabb átmeneteket akarsz annál többet.
A 2007-es Excel alapból nem tudja (vagy legalábbis én nem tudok róla) azt a formázást amit szeretnél, szóval kénytelen leszel szegelgetni.
Mi a tartomány (legkiseb-legnagyob szám) amit kezelni szeretnél. Lehet nekiállok egy kicsit művészkedni. (Jelzem botrányos színlátásom van
)
-
m.zmrzlina
senior tag
Az első kérdésedre:
A tartományt (a legkisebb és a legnagyobb szám közötti tartományt ) felosztod annyi részre ahány szintű átmenetet akarsz csinálni. Minél több a szint annál finomabb lesz az átmenet. Az 5 célszerűnek látszik mert ahhoz nem kell egyéni szinekkel bajlódni csak kiválasztani a "Téma szinei"-ből.
Aztán minden szinthez csinálsz Feltételes formázást az alábbiak szerint:
Az intervallumok határait megadod a "következők között van" utáni két cellában, és a Betűtipus fülön kiválasztasz az adott intervallumhoz egy betűszínt. Célszerűnek látszik a legvilágosabbal kezdeni és minél nagyobbak a számok annál sötétebb színt választani.
A végén a szabálykezelőben ilyesmit kell látnod:
-
Delila_1
veterán
Önmagára mutatást nem írhatsz, de a számok melletti oszlopba beteheted a következő képletet a B2 cellától kezdve:
=HA(A1>A2;"ň";HA(A2=A1;"ů";"ń"))
A képletet tartalmazó oszlop legyen Wingdings karakterű.
Arra az esetre, ha nem sikerülne valamiért a képlet beillesztése, a C:E oszlopba beírtam a karakterek kódját, de választhatsz helyettük bármi mást.
-
Delila_1
veterán
Hiperhivatkozást szúrj be a cellába.
Beszúrás - hiperhivatkozás - A dokumentum adott pontja. A megjelenő ablakban kiválaszthatod az ugrás helyét, valamint azt, hogy mi legyen a megjelenő szöveg az ugrást előidéző cellában.
A cellán jobb klikkre is előjön a hiperhivatkozás menüpont. -
-
perfag
aktív tag
Küldj át az ipsének egy másik xlsx fájlt, kérdezd meg azt meg tudja-e nyitni.
Már nem emlékszem mikor jelent meg az Office 2007. A diákjaim mindig gyorsabban áttérnek, mint én az új verzióra (mert az új verzióban már hátha benne van a varázsgomb, amit elég megnyomni és mindent megcsinál egyedül). Kaptam egy házit késve, tehát e-mailben. No, akkor jártam pont így. Próbáltam jobbról, balról ... zip-pel is bele lehet ám nézni ... csak Excel 2003-mal megnyitni nem lehetett (azóta már tudom, hogy egy letölthető okossággal lehet) ... visszaadtam, hisztiztem kicsit, mert ha én vagyok a tanár akkor nekem ennyi jár ... kb. egy hét múlva derült ki, hogy van egy új Excel verzió
.
-
Delila_1
veterán
Rögzíts egy makrót a solver beállításaival, amibe minden feltételt vegyél be.
Legyen annyi üres lapod, ahány változatot szeretnél látni. Az első lapon van a kiinduló táblázat, nálam ez az A1:D5 terület, a célcella D6.Sub solver()
Dim lap As Long, max As Single, változat As Integer
max = 0
változat = 30 'Itt add meg a kért változatok számát
For lap = 1 To változat
Sheets(lap).Select
'Kiinduló változat másolása a következő lapra
If lap < 20 Then
Range("A1:D6").Select 'A saját területedet add meg itt
Selection.Copy Sheets(lap + 1).Cells(1)
End If
'Ide jön a rögzített makró
If Range("D6") > max Then max = Range("D6")
Next
MsgBox max
End Sub -
Delila_1
veterán
Valószínű, hogy egy képlet eredménye az A1 értéke.
Az A1, B1, C1, stb. cellákba írd meg a képletet. Az A1 ilyesmi legyen:=Ha(a_kapcsoló_1-et_mutat;ide_jön_a_képlet_azon_része_ami_a_számítást_elvégzi;"")
B1-ben a kritérium a kapcsoló 2-es állása.A következő fázisra váltás előtt az A1-et saját magára másolod értékként (irányított beillesztéssel), vagy ha módodban áll, elrejted a sort – hogy ne kelljen újra összeállítani egy esetleg 30 cm-es képletet.
-
perfag
aktív tag
Módszer. Előkészítés:
- kijelölöd a P3Q20 tartományt
- adsz neki egy nevet, pl. nullázódó
Használata:
- a Szerkesztőléc előtt a Név mezőre kattintasz, kijelölöd a nullázó-t
- (a munkalapon a P3Q20 tartományod ettől kijelölődik)
- a Szerkesztőlécen beírod 0
- Ctrl-Enter, ettől a kijelölt tartomány minden cellájában nulla lesz -
ulrik19
tag
megoldható ez is.
Ez némileg másképp működik. Meg kell adni egy cellában, hogy melyik cellákba kell szétosztani, és milyen arányban. Gondolom, ez előre rögzíthető, vagyis általában ugyanazt a dolgot ugyanabban az arányban ugyanazokra a ktghelyekre osztasz szét.
Pl. legyen egy cella tartalma ez: N12=20;N16=30;N21=10;N26=40
Itt százalékban van megadva, hogy melyik cellára mekkora rész menjen. Nem vizsgálja a program, hogy az összeg 100%-e! Persze azt is bele lehet szőni... Fontos az egyenlőségjel, és az is, hogy ;-vel kell elválasztani az elemeket.Állj rá erre az egy cellára. Majd indítsd a makrót:
Public Sub ktgelosztas2()
Dim osszeg As Integer, i, strAr, strAr2
osszeg = Int(Val(InputBox("Felosztandó összeg:")))
strAr = Split(Selection.Value, ";")
For i = 0 To UBound(strAr)
strAr2 = Split(strAr(i), "=")
Range(Trim(strAr2(0))).Value = Val(Range(Trim(strAr2(0))).Value) + osszeg * Val(strAr2(1)) / 100
Next i
End SubEzzel a módszerrel egyébként több költségallokációs módot tudsz tárolni. De azon a sheet-en kell tárolni, ahol az adatok vannak.
-
ulrik19
tag
Én így csinálnám. Ehhez a makróhoz célszerű hozzárendelni egy billentyű-kombinációt is.
Public Sub ktgelosztas()
Dim cella As Object, osszeg As Integer
osszeg = Int(Val(InputBox("Felosztandó összeg a kijelölt cellák között:") / Selection.Count))
For Each cella In Selection
cella.Value = Val(cella.Value) + osszeg
Next
End SubHasználata:
kijelölöd azokat a cellákat, amikre szét akarod osztani az értéket. (a ctrl nyomva tartva az egérrel ugye tudsz egymástól független cellákat sorban kijelölni, ahányat csak szeretnél)Majd indítod a makrót (pl. a hozzárendelt billentyűkombinációval).
A progi bekéri a számot, amit szétoszt annyi részre, ahány cellát kijelöltél, és a kijelölt cellák értékét növeli a rá jutó résszel. (ha valamelyik kijelölt cellában szöveg volt, akkor azt nullának értelmezi, ha szöveget adsz be a felugró ablakban, akkor nullát ad mindenhova, vagyis nem változik az érték. Ha valamelyik kijelölt cellában képlet van, akkor az felül fog íródni a konkrét értékkel)
hajrá!
-
Delila_1
veterán
Na még egy utolsó. A költségek nevei az A1:A10 tartományban vannak, az eddigi összegek pedig B1:B10-ben.
Állítsd pirosra azokat az összegeket (B oszlop), ahova az új összeget szét akarod osztani.
A szétosztandó összeget írd be a D1-be.Sub Eloszt_1()
For sor = 1 To 10
If Cells(sor, 2).Font.ColorIndex = 3 Then Db = Db + 1
Next
For sor = 1 To 10
If Cells(sor, 2).Font.ColorIndex = 3 Then
Cells(sor, 2) = Cells(sor, 2) + Round(Cells(1, 4) / Db)
End If
Next
End SubA makró végig szalad a B1:B10 tartományban, és összeszámolja a piros karakteres cellákat, ezek darabszáma lesz az osztó. Újra végig lépked ugyanott, és a piros cellák tartalmához hozzáadja a D1-ben talált összeg annyiad részét, ahány piros cellát talált.
Azt hiszem, ez volt az eredeti kérdésed. -
Delila_1
veterán
Akkor a personal.xls-be vidd be:
Function Eloszt(Összeg As Double, Részre As Integer)
Eloszt = Összeg / Részre
End FunctionKijelölöd a cellákat, beírod: =Eloszt(26253;3), és Ctrl+Enterrel egyszerre beviszed a kijelölt cellákba. Az osztó és osztandó persze minden esetben más lehet.
-
Delila_1
veterán
Beteszem a kétféle megoldást. Mindegyiknél a beviteli cella az A1, a 3 másik pedig A3, A4, és A5.
Az első makró vagy a makrók közül indítható, vagy egy gombhoz rendeled. Bevitele: Alt+F11, Insert/Module, a kapott üres oldalra másold be.Sub ktsg_elosztás()
Dim sor
For sor = 3 To 5
Cells(sor, 2) = Cells(sor, 2) + Int(Cells(1) / 3)
Next
End SubA másik a bevitelt követően automatikusan hajtódik végre. Ennek a bevitele: Lapfülön jobb klikk, Kód megjelenítése, a kapott üres oldalra másold be.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim sor
If Target.Address = "$A$1" Then
For sor = 3 To 5
Cells(sor, 2) = Cells(sor, 2) + Int(Target.Value / 3)
Next
End If
End Sub -
Cuci3
tag
Igazából még egyikkel sem szórakoztam. Mondjuk szerntem nem a titkosítás, hanem a jelszó hossza, meg bonyolultsága a lényeg. Egy 3 karakteres jelszót Office 97/2000 titkosítással max fél óra alatt fel lehet törni. Egy 6-8 karaktereset, kis-nagybetűs, betűs-számos kb fél nap (tippelem exponenciális növekedés alapján).
Szóval ha nem az adófizetők 2008-as bevallását akarod futárszolgálattal A pontból B pontba küldeni, akkor szerintem maradj az alapbeállításnál.
Ha pedig azt akarod átküldeni, akkor adok egy ftp-t és segítek.Vagy RSA kódolásos bérelt vonali infoküldés.
-
Delila_1
veterán
Eszerint félreértettem, a makrók levédésére gondoltam. (VB->Visual Basic)
A füzetet elrejtheted az Ablak menü Elrejtés pontjával. Ezt csak azok nem tudják felfedni, akik nem ismerik, hogy ugyanitt van mód a láthatóvá tételére is. De ha már eleve olyan könyvtárba mentetted a fájlodat, ahol másnak eszébe sem jut keresni, nyert ügyed van.Az egyes lapokat jelszóval levédheted az Eszközök/Védelem/Lapvédelem menüben.
A cellák alapállásban védettek, de ez a tulajdonságuk csak akkor érvényesül, ha bekapcsoltad a lapvédelmet. Ebből következik, hogy amelyik cellák módosítását engedélyezni akarod, azoknál a Cellaformázásban a Védelem lapon ki kell venned a pipát a Zárolt négyzetből. Ugyanott a Rejtett négyzet bejelölésével azt éred el, hogy a védett lapon nem látszanak a képletek, csak az eredményük.
A lapvédelemnél több dolgot le tudsz tiltani, főleg a 2003-nál és 2007-nél. -
Delila_1
veterán
http://www.mnb.hu/engine.aspx?page=arfolyamlekerdezes
Erről az oldalról naponta letöltheted az aktuális árfolyamokat xls-ben. Elméletileg választhatsz időintervallumot, de úgy látom, a választás ellenére visszamenőleg 1 hónap adatait adja 67 pénznemre. Alapértelmezésben arfolyam2008.xls címen mentheted a fájlt - jelenleg.
Lehetne makrót írni rá, ami kikeresi az alsó sort, és az általad meghatározott oszlopból ezt az adatot illeszti be a táblázatodba, de mivel csak 3 értékre van szükséged, azt kézzel is könnyen átteheted. -
Delila_1
veterán
Szerkesztés/Ugrás/Irányított. Itt kiválasztod az Állandókat, mire felajánlja a számokat, szövegeket, logikai értékeket és a hibákat. Azokat hagyd kijelölve, amiket ki akarsz törölni. Az OK-ra a kiválasztott cellák lesznek jelöltek, és akkor a DEL billentyűvel egyszerre kitörölheted mindet.
-
Delila_1
veterán
Itt megtalálod a personal.xls létrehozásának a menetét az 527-es hozzászólásnál.
Eszközök->Tools
Margókkal a fekvő lap:Sub Fekvo_lap()
With ActiveSheet.PageSetup
.LeftMargin = Application.InchesToPoints(0.196850393700787)
.RightMargin = Application.InchesToPoints(0.196850393700787)
.TopMargin = Application.InchesToPoints(0.196850393700787)
.BottomMargin = Application.InchesToPoints(0.196850393700787)
.HeaderMargin = Application.InchesToPoints(0.511811023622047)
.FooterMargin = Application.InchesToPoints(0.393700787401575)
.CenterHorizontally = True
.Orientation = xlLandscape
End With
End SubAmi makrót a personalba teszel, az minden füzetnél elérhető lesz.
A fejléc és lábléc magasságát a HeaderMarginnál és a FooterMarginnál állíthatod. -
Delila_1
veterán
Még azt tehetnéd meg, hogy a personal.xls-be beviszed az alábbi makrót, és kiteszel hozzá egy ikont az eszköztárra. A fekvő lap beállításán kívül a táblázatodat vízszintesen a margók között középre is helyezi. Ha az nem kell, az alsó makrót használd.
Sub Fekvo_lap()
With ActiveSheet.PageSetup
.CenterHorizontally = True
.Orientation = xlLandscape
End With
End SubSub Fekvo_lap()
ActiveSheet.PageSetup.Orientation = xlLandscape
End Sub -
Pá
addikt
Senki?
Az a lényeg, hogy egy programban dolgozom, ami termel csomó adatot.
Ott van egy fül: 'copy to excel' azzal megnyit egy excel táblát és belemásolja az adatokat. Így kell lementenem. Fektetett laphelyzetben kell legyen a cucc és nem szeretném minden egyes alkalommal átállítani, mert tényleg nagyon sok fileról van szó.Kérdés, hogy be lehet-e állítani, hogy amikor a progi átmásolja a cuccost, alaból fektetett legyen és nekem már csak mentenem kelljen.
Most jut eszembe van egy másik is. Amikor mentek, akkor alaból a text formátumot ajánlja fel. Azt is át kell állítanom excelre. Ezt sem lehet beállítani? Tényleg nagy könnyebbség lenne ez a robotmunkában.
-
Brutforsz
senior tag
Két ötletem is van:
Az egyik az, hogy egy új cellában az ÖSSZEFŰZ függvényt használod, argumentumainak pedig a 00000 értéket, valamint a 5301-et tartalmazó cellát adod meg.
A másik az egyéni cellaformátum megadása, ahol beállítod, hogy a cella tartalma előtt jelenítsen meg 5 db 0-t. szerk.: Ha minden igaz (most csak séróból írom), "00000"# a kívánatos cellaformátum. Azonban ez csak megjeleníti a nullákat, a cella tartalmára nem lesz hatással. Ha az értékét is szeretnéd változtatni, akkor az első megoldást javaslom.
-
Delila_1
veterán
Nagybetűs-> UPPER
Ez a függvény, amit beírsz. Mikor beírtad, visszaállsz ugyanerre a cellára, és a jobb alsó sarkában lévő kis fekete négyzetet "megfogod" az egérrel, és lehúzod addig, ameddig az adataid tartanak. Ezzel végig másolod.
Amennyiben vízszintesen is akarod másolni, jobbra húzod a négyzetet.Amikor kész vagy az érték beillesztésével, a függvényeket tartalmazó cellákat ki is törölheted.
-
rákász
csendes tag
Window - Freeze Panes (Ablak - Ablaktábla rögzítése)
1. Ha azt akarod, hogy az 1. sor látszódjon, akkor a 2-es sort kijelölöd, és Window - Freeze Panes
2. Ha azt akarod, hogy az A oszlop látszódjon, akkor B oszlopot kijelölöd és Window - Freeze Panes
3. Ha azt akarod, hogy az 1-es sor és A oszlop látszódjon, akkor B2 cellát kijelölöd és Window - Freeze Panes
Vissza: Window - Unfreeze Panes
Új hozzászólás Aktív témák
Hirdetés
- Allegro vélemények - tapasztalatok
- AMD Ryzen 9 / 7 / 5 7***(X) "Zen 4" (AM5)
- Eredeti játékok OFF topik
- Fortnite - Battle Royale & Save the World (PC, XO, PS4, Switch, Mobil)
- Revolut
- AMD GPU-k jövője - amit tudni vélünk
- Apple Watch
- Formula-1 humoros
- Melyik tápegységet vegyem?
- E-roller topik
- További aktív témák...
- Eredeti Microsoft termékek - MEGA Akciók! Windows, Office Pro Plus, Project Pro, Visio Pro stb.
- Antivírus szoftverek, VPN
- Játékkulcsok olcsón: Steam, Uplay, GoG, Origin, Xbox, PS stb.
- Vírusirtó, Antivirus, VPN kulcsok
- Kaspersky, McAfee, Norton, Avast és egyéb vírusírtó licencek a legolcsóbban, egyenesen a gyártóktól!
- Csere-Beszámítás! Sapphire Pulse RX 9070 XT 16GB Videokártya! Bemutató darab!
- ÁRGARANCIA!Épített KomPhone Ryzen 7 7800X3D 32/64GB RAM RTX 5070 GAMER PC termékbeszámítással
- ÁRGARANCIA! Épített KomPhone Ryzen 5 7600X 32/64GB RTX 5070 12GB GAMER PC termékbeszámítással
- Bomba ár! Lenovo ThinkPad T15 G1 - i5-10GEN I 16GB I 256GB SSD I 15,6" FHD Touch I Cam I W11 I Gari!
- Lenovo Legion 5 Gaming. Az ár irányár, komoly érdeklődés esetén van lehetőség egyeztetésre
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged