-
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
-
Delila_1
Topikgazda
válasz EmberXY #5225 üzenetére
Az egyéni makró-munkafüzetbe kell mentened. Ekkor az Excel létrehoz egy personal.xls nevű fájlt, amit ezután az Excel minden indításakor megnyit, így a bele írt makrót minden füzetedben eléred.
A personal füzet rejtve "mentődik el", csak akkor látható, ha az Ablak menüben felfeded. Erre a legritkább esetben van szükség.
A fálj elérési útvonala:
C:\Documents and Settings\Felhasználó\Application Data\Microsoft\Excel\XLSTART.
Erről az útvonalról az Excel gondoskodik.
Jó tudni, hogy amelyik ebbe a könyvtárba teszed, az mind megnyílik az Excel indításakor.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 EmberXY #5229 üzenetére
Ha megadod, hogy az egyénibe akarod menteni a rögzített makrót, sem útvonalat megadni, sem felfedni, sem elnevezni nem kell a fájlt. Az Excel ezt mindet önállóan megteszi.
Kár is volt beírni a hozzászólásomba a felfedés lehetőségét, ne használd.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
-
Delila_1
Topikgazda
válasz EmberXY #5237 üzenetére
Az elrejtett, NEM bezárt personal makróit egyrészt az Eszközök/Makró/Makrók (Alt+F8) helyen, vagy a VBE-ben, az Eszközök/Makró/Visual Basic Editorban (Alt+F11) érheted el.
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
-
Delila_1
Topikgazda
válasz EmberXY #5249 üzenetére
Félreértetted Cuci hozzászólását. A besorolást saját magára értette, és a nem egészen korrekten feltett kérdést is másik emberre.
A personalod akkor jönne rendbe, ha a jelenlegit törölnéd a könyvtáradból (közben az Excel ne legyen megnyitva), és újra kezdenéd nulláról.
Exportálandó fájl nyitva, makró rögzítve az egyénibe.Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Cuci3
tag
válasz EmberXY #5251 üzenetére
Bocs, nem gondoltam volna, hogy bárki is felveszi ezt a mondatomat. Természetesen nem rólad volt szó. Ahhoz a témához nem is szóltam hozzá.
Ellenben ha visszaolvasod az előző fél oldalt, akkor láthatod, hogy Delilaval szórakoztunk sok poston át azon, hogy egy nem eléggé részlétesen megfogalmazott kérdésre más-más értelmezés szerint válaszokat adjunk. A végén persze ugyanoda lyukadtunk ki, de én egy egyszerű fkerest ajánlottam, ő pedig megírta ezt a szép és hosszú képletet.Ha ezek után Gabcsika is megsértődik, akkor kénytelen leszek viccekkel telerakni a fórumot, hogy valami humorérzéket csempésszek a userekbe.
-
Delila_1
Topikgazda
-
Delila_1
Topikgazda
válasz EmberXY #30365 üzenetére
Te határozod meg, hogy a szűrt oszlop adataiból milyen értéket szeretnél képezni. Ezt a függvényszámmal határozhatod meg. A 9 adja az összeget, más számok a minimumot, maximumot, átlagot, darabszámot, stb. adják eredményül.
=RÉSZÖSSZEG(9;B:B)
[ 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.
-
ny.janos
tag
válasz EmberXY #30363 üzenetére
Delila válaszát kiegészíteném azzal, hogy egy lépéssel fejlettebb függvény a RÉSZÖSSZEG helyett az ÖSSZESÍT függvény, de csak a 2010-es és újabb excelben használható. Előnye, hogy az összegzendő adatok között akár hibaérték is lehet, nem kapsz hibaüzenetet az összeg helyett.
Hátránya mindössze annyi, hogy ránézve a függvényre magára, nem tudod, hogy az mit számol, ahhoz illetve magához a használatához is szinte elengedhetetlen a súgó. De az előnye mindenképpen a használata mellett szól.
Itt találsz róla egy leírást és videót. -
Delila_1
Topikgazda
válasz EmberXY #30395 üzenetére
Eddig észre sem vettem ezt a státuszsori kiírást.
Különböző adatok lekérdezése a Munka1 lapra:
Sub adatok()
With Munka1.Range("A1")
.Offset(0, 0).Value = Environ("username") 'F felhasználó neve
.Offset(1, 0).Value = Environ("computername") 'PC neve
.Offset(2, 0).Value = Environ("userdomain") 'felh. domain
.Offset(3, 0).Value = Environ("sessionname") 'berendezés
.Offset(4, 0).Value = Environ("PROCESSOR_ARCHITECTURE") 'proci tip.
.Offset(5, 0).Value = Environ("PROCESSOR_IDENTIFIER") 'proci azonosító
.Offset(6, 0).Value = Environ("NUMBER_OF_PROCESSORS") 'procik száma
End With
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 EmberXY #30398 üzenetére
Igen, makró, modulba kell helyezni. Erről olvashatsz a téma összefoglalóban, egy rövid bekezdésben.
Ha el akarod menteni a füzetet, makróbarátként (xlsm kiterjesztéssel) tedd.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 EmberXY #30438 üzenetére
Másik lapon lévő adatokat is nyomtathatsz 1 lapon a Fényképezőgép eszköz használatával.
Az első képen a Munka1 lap adatai, és az eszközzel behozott kép látszik, szűrés után. A második képen a Munka2 lapra behivatkozott adatok vannak.
[ 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 EmberXY #30444 üzenetére
Állandóan, de bármikor odébb húzhatod. Ez egy kép, ami az eszközzel készül. Ki kell tenni hozzá a Testreszabás menüben a Fényképezőgép ikonját. A választható parancsok helye a Minden parancs legyen. Ekkor a felsorolásban állva nyomj F-et, majd lépegess lentebb, míg megtalálod.
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 EmberXY #30473 üzenetére
Próba – cseresznye.
Valószínű, hogy más gépen is működik. Nem kell minden gépen kint lennie a SZUM függvény ikonjának ahhoz, hogy az alkalmazásával bevitt képlet jó eredményt adjon máshol 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
-
Delila_1
Topikgazda
válasz EmberXY #30652 üzenetére
Legegyszerűbb az utolsó bekezdésedben leírt forma.
Lehetne az INDIREKT függvény bevezetésével olyan képletet összehozni, amit nem kell módosítani a sorok számának a megadott határon túli növekedésekor, de lehetőség szerint érdemes elkerülni az INDIREKT-et. Ez a függvény minden esetben, mikor a füzetben változik valami, újraszámol.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
-
Zola007
veterán
válasz EmberXY #32562 üzenetére
nem kijelölt területet tettem át, hanem komplett munkalapot.
Éppen azért, hogy az összes formázás, stb megőrződjön(#32559) Fferi50: nincs mit rajta nézni, mert ugyanabban az excelben van megnyitva a 2 dokumentum, a nyomatási beállításokat pedig az Excel adja, nem a munkalap.
Az az érdekes, hogy a cellák excelben látott mérete is eltér, pedig a beállított méret ugyanaz. Szerintem valami bugzik. Nincs benne makróMʏ ᴘʜɪʟᴏsᴏᴘʜʏ ɪs: Iᴛ’s ɴᴏɴᴇ ᴏғ ᴍʏ ʙᴜsɪɴᴇss ᴡʜᴀᴛ ᴘᴇᴏᴘʟᴇ sᴀʏ ᴏғ ᴍᴇ ᴀɴᴅ ᴛʜɪɴᴋ ᴏғ ᴍᴇ. I ᴀᴍ ᴡʜᴀᴛ I ᴀᴍ ᴀɴᴅ I ᴅᴏ ᴡʜᴀᴛ I ᴅᴏ. I ᴇxᴘᴇᴄᴛ ɴᴏᴛʜɪɴɢ ᴀɴᴅ ᴀᴄᴄᴇᴘᴛ ᴇᴠᴇʀʏᴛʜɪɴɢ. Aɴᴅ ɪᴛ ᴍᴀᴋᴇs ʟɪғᴇ sᴏ ᴍᴜᴄʜ ᴇᴀsɪᴇʀ. - Sɪʀ Aɴᴛʜᴏɴʏ Hᴏᴘᴋɪɴs
-
Fferi50
őstag
válasz EmberXY #32626 üzenetére
Szia!
Némi munkával és egy kis makróval megoldható a dolog.
A makró futásához elég sok előkészület kell, de szerintem megéri.
1. lépés: Ha nem kimutatások vannak a lapon, akkor minden "táblázatot" célszerű átalakítani Táblázattá a beszúrás táblázat menüpontban, a nevüket használjuk majd. Ha csak kimutatások vannak, akkor azok neve használható. Ha nem szeretnéd táblázat formában használni, akkor is minden részterületnek adj nevet légy szíves. Mindhárom esetet nevezzük most táblának.
2. lépés: Kinevezel egy cellát, amelyben a kiválasztott tábla nevét fogjuk megadni. Ezt természetesen elrejtheted, lényeg, hogy a használandó területen kívül legyen. Ez nálam az AQ68 cella volt.
3. lépés: Minden táblára egyenként feltételes formázást csinálsz az alábbiak szerint:
A formázandó cellák kijelölése képlettel, A képlet pedig:
=$A$68="Táblanév" formátumnak kijelölöd amit szeretnél látni pl. kitöltés zöld, érvényesség =Táblanév
Ha táblázattá alakítottad, vagy kimutatás, akkor a bővítésnél automatikusan bővül a terület.
4. lépés: A munkalap kódlapjára bemásolod az alábbi makrót (lapfül - jobb egérgomb - kód megjelenítése)Private Sub Worksheet_SelectionChange(ByVal Target As Range)
dim tbl as Variant
Application.EnableEvents = False
Range("AQ68").Value = 0' ide annak a cellának a címét írod, ahová a feltételes formázás jelzőjét tetted
On Error Resume Next
For Each tbl In ActiveSheet.ListObjects ' ha kimutatások vannak akkor Pivottables
If Not Intersect(Target, Range(tbl)) Is Nothing Then
If Err = 0 Then Range("AQ68") = tbl.Name: Exit For
Err = 0
End If
Next
Application.EnableEvents = True
End SubHa van kimutatás és általad átalakított táblázat is, akkor két ciklus kell egymás után, egy a ListObjects, egy másik pedig a Pivottables objektumokra. Ha még neveid is vannak(nem alakítottad táblázattá a tartományt, csak névvel láttad el, akkor az is külön ciklus és ott a névvel variálni kell, nem lesz jó rá a fenti sor).
Ha több munkalapodon is van hasonlóra szükség, akkor a névadást és a formázást minden lapon el kell végezned, a makrót viszont akkor a Thisworkbook kódlapjára kell beírni a következő két sor közé:
Alt+F11 - VBA projectet kibontod, ott a Thisworkbook -ra dupla katt - bal oldali lenyílóból Workbook - jobb oldali lenyílóból SheetSelectionChange, megjelenik az alábbi két sor.
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)End Sub
A makró és a megelőző munkád eredménye:
A hivatkozásra kattintva a megfelelő tábla átszíneződik a feltételes formázásnak megfelelően (ezért egy színűre, de akár különböző színűre is formázhatod a táblákat), ha a táblán belül kattint, vagy másik cellára lép, marad a formázás. Ha másik táblára kattint, akkor a másik tábla formázódik át, az előző formázása megszűnik. Ha táblán kívülre kattint, akkor megszűnik a formázás. Értelemszerűen akkor is megszűnik a formázás, ha visszaugrik a hivatkozás oszlopokra.Ezután nincs más hátra, mint makróbarát munkafüzetként elmenteni az egészet - kipróbálni és remélhetőleg örülni.
Remélem, sikerül megoldani. Ha bármi gondod lenne, csak írj lsz.
Üdv.
[ Szerkesztve ]
-
Fferi50
őstag
válasz EmberXY #32630 üzenetére
Szia!
"el kell neveznem minden táblázatot?"
Amikor a beszúrás - táblázat átalakítást megcsináltad, akkor az Excel automatikusan adott neki egy nevet, ezt megtudhatod, ha a táblázat törzsét (fejléc nélkül) kijelölöd, mivel ekkor a szerkesztőléc mellett a bal oldalon megjelenik a neve. Ugyanitt a lenyílóban megláthatod, milyen nevek vannak az adott lapon.
Ezeket a neveket kell a feltételes formázásban az érvényesség képletbe beírni.
Miután OK vagy Alkalmaz gombot nyomsz, a név átváltozik az adott névhez tartozó tartományhoz és ezt látod a későbbiekben.Szerintem ennyi az egész.
Üdv.
-
Fferi50
őstag
válasz EmberXY #32646 üzenetére
Szia!
"Működik, az a része rendben is van, hogy a táblázat legaljára áll, viszont amint új adatot írnék bele, és cellát váltok, rögtön újra elugrik,, egyre lentebb és lentebb, míg nem a legalsó táblázat alján megáll."
Ilyet nem lenne szabad csinálnia, hacsak össze nem érnek a táblázataid és így az adat bevitele után már az újabb táblázatra sikerül ugrania. Szerintem legalább két üres sornak/oszlopnak kellene lennie a táblázatok között. (Bár kipróbáltam, egy sor különbséggel, a beírás után a következő tábla fejléc sorára ugrott és nem lejjebb).
Nem lehet, hogy az a sor, amit utólag megváltoztattál, rossz helyen van?
Így kellene kinéznie:Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim tbl As Variant
Application.EnableEvents = False
Range("AQ68").Value = 0
On Error Resume Next
For Each tbl In ActiveSheet.ListObjects
If Not Intersect(Target, Range(tbl)) Is Nothing Then
If Err = 0 Then Range("AQ68") = tbl.Name: Target.End(xlDown).Offset(1, 0).Activate: Exit For
Err = 0
End If
Next
Application.EnableEvents = True
End SubÜdv.
-
Fferi50
őstag
válasz EmberXY #32661 üzenetére
Szia!
Szerintem elég, ha csak a jelenlegi kitöltött sorokat alakítod át most, hiszen automatikusan bővül a táblázat, ha új adatot viszel be a végére. Azaz nem kell fix 220 sor, elég, ha csak megfelelő "távolságot" tartasz a táblázatok között, hogy elférjenek a további adatok. A makró feltételezi, hogy nincsenek üres cellák a táblázat adott oszlopában.
Üdv.
-
Delila_1
Topikgazda
válasz EmberXY #32661 üzenetére
Egy alternatív megoldásnál az A oszlopba sima egyenlőségjellel behivatkozod az egyes tábláid bal felső celláját a csatolt kép szerint. A makró elintézi, hogy bárhova elmozdíthatod az egyes táblákat, szúrhatsz be vagy törölhetsz sorokat, ill. oszlopokat, az A oszlop cellájára kattintva mindig a megfelelő tábla első oszlopának alsó cellájára ugrik a fókusz.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim talal
If Target.Column = 1 Then
Application.EnableEvents = False
talal = Columns("B:DZ").Find(Target, LookIn:=xlValues).Address
Range(talal).End(xlDown).Select
Application.EnableEvents = True
End If
End SubSzerk.: a Columns("B:DZ") kifejezésben a DZ helyett írhatsz "nagyobb" értéket.
[ 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.
-
Fferi50
őstag
válasz EmberXY #32676 üzenetére
Szia!
A táblázat alá egy cellát betöltve (beírva) a cellára ráállva (akár nyíl, akár egér) a jobbra nyíllal át tudsz menni a mellette levő cellára és oda is írhatsz, a harmadik oszlopba ugyanígy. Ha az adatot nem enterrel ütöd át, hanem jobbra nyíllal hagyod el a cellát, akkor benne marad az üres cellában, nem ugrik le tovább.
Tehát a probléma akkor jelentkezik, ha egymás után több sort viszel be az első oszlopba és utána szeretnéd a üres cellákat kitölteni.
DE nem szeretném csak a magyarázatot adni, itt egy megoldás tervezet, amit a Sub - End Sub közé kell írni:Dim tbl As Variant
Application.EnableEvents = False
Range("AQ68").Value = 0
On Error Resume Next
For Each tbl In ActiveSheet.ListObjects
If Not Intersect(Target, Range(tbl)) Is Nothing Then
If Err = 0 Then Range("AQ68") = tbl.Name
If Not IsEmpty(Target) Then Target.End(xlDown).Offset(1, 0).Activate: Exit For
Err = 0
End If
Next
Application.EnableEvents = TrueEz azt csinálja, ha üres cellára léptél a táblázaton belül, akkor nem ugrik el a végére.
Üdv.
-
Fferi50
őstag
válasz EmberXY #33686 üzenetére
Szia!
Ezt a dokumentumot egyszerre többen is nyitva tartják és módosíthatják (közös használat) vagy egyszerre csak egy embernél lehet nyitva?
Természetesen megoldható makróval az üzenet, viszont lenne egy makró nélküli javaslatom:
A munkalapok egy cellájába betenném ezt a képletet:
=Darabteli(jegyzetlap!A:X;"n")=0
Feltételes formázással ezt a cellát úgy formáznám, ha az értéke nem 0, akkor legyen pl piros, egyébként zöld.
Ha az egyes munkalapokhoz más-más oszlopba kerül a jegyzetlapon a megjegyzés, akkor ahhoz kell igazítani a tartományt.Üdv.
-
Fferi50
őstag
válasz EmberXY #33688 üzenetére
Szia!
Nem túl bonyolult, csak meg kell számolni az adott munkalaphoz tartozó "n" értékeket.
Sub figyelmeztet()
If Application.CountIf(Sheets(jegyzetlap).UsedRange, "n") > 0 Then MsgBox "Elintézetlen tétel van"
EndifEzt meghívhatod a Thisworkbook Workbook_Open eseményéből és a munkalapok Activate eseményéből.
A UsedRange változtatható aszerint, hogy melyik oszlopban kell keresni, ezt még akkor pontosítani kell.
Üdv.
Új hozzászólás Aktív témák
- NVIDIA GeForce RTX 3080 / 3090 / Ti (GA102)
- Az USA vizsgálja a RISC-V kínai terjedésének kockázatát
- DIGI kábel TV
- gban: Ingyen kellene, de tegnapra
- Premier előzetesen a Gray Zone Warfare
- Windows 10
- Poco X6 Pro - ötös alá
- Ukrajnai háború
- Debrecen és környéke adok-veszek-beszélgetek
- XPEnology
- További aktív témák...
- PC JÁTÉKOK (OLCSÓ STEAM, EA , UPLAY KULCSOK ÉS SOKMINDEN MÁS IS 100% GARANCIA )
- Eredeti Windows, telepítéssel! Digital Doctor Számítógép Szerviz
- Adobe Creative Cloud - 2024. 04. 05 - 2025. 04. 05-ig
- Bitdefender Total Security 3év/3eszköz! - "Tökéletes védelem most kedvező áron..."
- Microsoft licencek KIVÉTELES ÁRON AZONNAL - UTALÁSSAL IS AUTOMATIKUS KÉZBESÍTÉS - Windows és Office