- Mobil flották
- Yettel topik
- Az Oppo Find X8 Ultra lett a legvékonyabb kameramobil
- Android alkalmazások - szoftver kibeszélő topik
- Akciófigyelő: Ha kéne vezeték nélkül CarPlay és Android Auto...
- Samsung Galaxy A56 - megbízható középszerűség
- Nothing Phone (3a) és (3a) Pro - az ügyes meg sasszemű
- Bemutatkozott a Poco X7 és X7 Pro
- Telekom mobilszolgáltatások
- One mobilszolgáltatások
-
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
válasz
Fire/SOUL/CD #7870 üzenetére
Tedd át az egészet egy másik lapra. Tudod, előfordulnak hibás lapok az Excelbe.
Az R2-be egy jóval nagyobb számot írtam, mint a többi, és hibátlanul működik. -
Delila_1
veterán
válasz
Fire/SOUL/CD #7867 üzenetére
1. Az Excel belső eseményeire írt gépi kódú reakció mindig gyorsabb, mint a VB-s makró.
2. Valami csak nem jó az adoptálásnál, nálam kiválóan működik. :)
3. A nagy(r$2:r$500;4) kisebb, mint a nagy(r$2:r$500;3), ezért írtam >nagy(r$2:r$500;4), ill. >nagy(r$2:r$500;6) képleteket. -
Delila_1
veterán
válasz
Sickboy25 #7864 üzenetére
Valóban félreértettem az eredeti kérdést.
Minden feladatot több módon lehet megoldani. Továbbra is más megoldást javaslok, nem a Fire által megadott makróst, ami akkor működik, mikor az R oszlopba beírsz egy adatot.
Az elképzelésem szerint ki kell jelöldöd az R2:R500 tartományt. Ha több adatra számítasz, a tartomány is legyen nagyobb, és a képleteket ennek megfelelően módosítsd. A tartomány első tagját azért a 2. sortól adtam meg, mert feltételezésem szerint van címsorod. A feltételes formázás első képlete:
=ÉS(DARAB2(R$2:R$500)<=81;R2>NAGY(R$2:R$500;4)), és itt megadod a formátumot,
a másodiké: =ÉS(DARAB2(R$2:R$500)>81;R2>NAGY(R$2:R$500;6)). Itt ugyanazt a formátumot add meg.
A 80, vagy annál kevesebb csapat indulása esetén a 3 legnagyobb fogást színezi ki, több indulónál az 5 topot.
A két képletben a <=81, ill. a >81 szintén a címsor miatt nem 80. -
Delila_1
veterán
válasz
Sickboy25 #7850 üzenetére
1. Vegyük, hogy az A:C tartomány bizonyos sorait akarod színezni. Beírod az első színezendő sor számát pl. a H1-be, az utolsót az I1-be. Kijelölöd az A:C tarományt. Formátum -> Feltételes formázás. A képlet: =ÉS(SOR()>=$H$1;SOR()<=$I$1). Megadod a kedvenc formátumodat.
2. A lapvédelem előtt jelöld ki azokat az oszlopokat, amiket majd engedsz módosítani. Cellaformázás, Védelem fül, vedd ki a pipát a Zárolt elől. -
Delila_1
veterán
Azt kell figyeltetni, aminek következtében a cella értéke felveszi a Bizonyos szót.
Pl. ha a B10 értéke akkor lesz Bizonyos, ha a C10-be beírsz egy 1-est, akkor a makró:Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 3 And Target.Value = 1 Then _
Rows(Target.Row).Interior.ColorIndex = 4
End SubEbben most két új érdekesség van. Ha a feltételhez (IF) nem tartozik hamis ág (Else), akkor egy sorba írhatod a feltételt, és azt, hogy mi történjen, ha ez teljesül, nem kell End If-fel lezárni.
A másik, hogy a hosszúra sikerült sorokat meg lehet törni úgy, hogy egy szóköz után egy alsó kötjelet teszünk, és folytatjuk a következő sorban az utasítást. Jobban áttekinthető lesz a makró, nem kell hozzá görgetni a képernyőt. A fordító program, ami a Visual Basic-ből gépi nyelvre ülteti át az utasításokat, hogy értelmezhető legyen a gép számára, soronként fordítja az utasításokat. Ezeket a megtört sorokat 1 sorként értelmezi, egyszerre ülteti át gépi kódba. Nagyobb programoknál észrevehető a gyorsabb futás. -
Delila_1
veterán
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Value="Bizonyos" Then Rows(Target.Row).Interior.ColorIndex = 4
End SubUgyanez az oszlop megadásával együtt:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Value="Bizonyos" And Target.Column= 2 Then Rows(Target.Row).Interior.ColorIndex = 4
End Sub -
Delila_1
veterán
A laphoz kell rendelned a makrót (lapfülön jobb klikk, Kód megjelenítése, a jobb oldalon kapott üres lapra másold be):
Private Sub Worksheet_Change(ByVal Target As Range)
Rows(Target.Row).Interior.ColorIndex = 4
End SubA fenti makró bármelyik cellába írt szövegnél zöldre festi a teljes sor hátterét. Ha azt akarod, hogy egy bizonyos oszlopba történt beírásra zöldítsen, akkor egy feltételhez kell rendelni a szín megadását.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 Then Rows(Target.Row).Interior.ColorIndex = 4
End SubEz a makró csak akkor színez, ha a B (2.) oszlopba viszel be valamilyen értéket (szöveg, szám, dátum, logikai). A Target.Column értékével add meg a a megfelelő oszlopot.
-
Delila_1
veterán
válasz
GBandeee #7820 üzenetére
Nekem nem egészen tiszta, hogy mit szeretnél. Egy előző kérdésedből úgy vettem ki, hogy a 25 legnagyobb értékű gyümölcs neve mellé egyrészt a legnagyobb értékeket, másrészt a SZUMHA függvény eredményét. Vagyis ha az alma 2× is szerepel a 25 legnagyobb érték között (16 és 15 értékkel), akkor legyen alma 16, és alma 15, egy másik oszlopban pedig az alma mellett szerepeljen azoknak a számoknak az összege (B oszlop), amelyikek mellett az A oszlopban az alma szó található. Ha a fenti 16-on és 15-ön kívül az almának van még 3, 5, és 2 értéke is, akkor az utóbbi oszlopban 41 legyen az összeg.
A sorrend: A #7814-ben alma:16; körte:4, a mostaniban 14 alma; 6 barack szerepel. A változó igényeidnek megfelelően az egyes oszlopok sorrendjét felcserélheted, egyszerűen áthúzod azokat az új helyükre.
Akkor vegyük előlről a függvényeket: A és B marad, ahogy volt.
C1-> =B1+SOR()*0,0001
D1:D25 a sorszám
E1-> =NAGY(C:C;D1) ha ezt az oszlopot úgy formázod, hogy egész számokat mutasson, akkor valóban nincs szükség az INT függvényes oszlopra.
F1-> =INDIREKT("A"&HOL.VAN(E1;C:C;0))
Nem vagyok biztos benne, de azt hiszem, a következő oszlopban azt az értéket akarod kiíratni, ahányszor a legnagyobb 25-ben szerepel pl. az alma. Ennek a függvénye
G1-> =DARABTELI(F:F;F1)
Egy kicsit kicifrázva, hogy az első előfordulásnál 1, a másodiknál 2 legyen:
H1-> =DARABTELI(F$1:F1;F1) -
Delila_1
veterán
Igazad van. Akkor kicsit összetettebb a feladat, több oszlop kell hozzá.
Az A és B marad a megnevezés, és a hozzá tartozó összeg.
C1-> =B1+SOR()*0,0001
D1:D25 -> 1-től 25-ig sorszám
E1-> =INDIREKT("A"&HOL.VAN(F1;C:C;0))
F1-> =NAGY(C:C;D1)
G1-> =INT(F1)
H1-> =SZUMHA(A:A;E1;B:B)
A C1-et kell lemásolni az eredeti adatok mellé, az E1:H1 tartományt pedig a 25. sorig. -
Delila_1
veterán
válasz
GBandeee #7814 üzenetére
Nem írtad, melyik értéked melyik oszlopban található. Írom a saját elképzelésem szerint.
Az A oszlop tartalmazza a neveket (alma, körte), B-ben a hozzájuk tartozó összegek.
Hogy ne kelljen a 25 db NAGY függvénybe egyenként beírni a második paramétert, a C1:C25 tartományba beírtam 1-től 25-ig a számokat.
D1-be: =INDIREKT("A"&HOL.VAN(NAGY(B:B;C1);B:B;0))
E1-be: =NAGY(B:B;C1)
F1-be: =SZUMHA(D:D;D1;E:E)
A 3 képletet együtt lemásolod a 25. sorig. -
Delila_1
veterán
-
Delila_1
veterán
A
Cells(1, i).Value = F.Criteria1 sor helyett legyen
Cells(1, i).Value = Right(F.Criteria1, Len(F.Criteria1) - 1)Mikor már a lapra álltál [Sheets("Receptek").Select], nem kell külön megadni a lapot:
Sheets("Receptek").Cells(1, i).Value = F.Criteria1 helyett elegendő a
Cells(1, i).Value = F.Criteria1 -
Delila_1
veterán
Sub föccer()
Dim AF As AutoFilter
Dim F As Filter
Dim i As Long, usor As Long, C As Long
Sheets("Munka1").Select
Set AF = ActiveSheet.AutoFilter
C = AF.Filters.Count
For i = 1 To AF.Filters.Count
Set F = AF.Filters(i)
If F.On Then
Cells(1, i).NumberFormat = "@"
Cells(1, i).Value = F.Criteria1
End If
Next
End Sub -
Delila_1
veterán
-
Delila_1
veterán
Itt a sültgalamb – én is segítséget kértem hozzá.
Sub Filt()
Dim AF As AutoFilter, F As Filter, i As Long, usor As Long
Set AF = ActiveSheet.AutoFilter
usor = Range("A65536").End(xlUp).Row
For i = 1 To AF.Filters.Count
Set F = AF.Filters(i)
If F.On Then
Cells(1, i) = Cells(usor, i)
End If
Next
End Sub -
Delila_1
veterán
Most ezt tudja:
Nevezd át a lapokat. Ahol a sok adatod van, legyen Lista, a másik Kritériumok.
A Lista lapon vannak 20 oszlopban az adataid. A Kritériumok lapon a B1:B20 tartományban érvényesítéssel vannak az egyes oszlopokra vonatkozó kritériumok, pl. ha a Lista!A oszlopban az almára akarsz szűrni, akkor a Kritériumok!B1 cella értéke alma; ha az Lista!E oszlopban Fótra szűrnél, akkor a Kritériumok!B5 legyen Fót.
A gombot az Űrlapvezérlők közül tedd ki a Kritériumok lapra.
Sub filt()
Dim i As Integer
Sheets("Lista").select
Cells(1).Select
For i = 1 To 20
If Sheets("Kritériumok").Cells(i, 2) > "" Then
Selection.AutoFilter Field:=i, Criteria1:=Sheets("Kritériumok").Cells(i, 2)
End If
Next
End SubAmennyiben nem ez a célod, írd le pontosan, mit is akarsz. Azt szeretnéd, hogy a Lista lapon egyenként beállítod a (20) szűrőt, és ezek a kézzel beállított kritériumok jelenjenek meg a Kritériumok!B1:B20 tartományában?
-
Delila_1
veterán
válasz
WildBoarTeam #7757 üzenetére
Most látom, hogy nem is összegezni akarod az értékeket, hanem formázni a cellákat.
Azt hiszem, ez csak makróval lehetséges. Az összevonásokat mindenesetre érdemes megszüntetni. -
Delila_1
veterán
válasz
WildBoarTeam #7757 üzenetére
A helyedben megszüntetném a B oszlop összevonásait, így minden megszüntetés felső sorába kerülne a cím. Kijelölöd a B4:Bsok tartományt, Ctrl+g (Ugrás), Irányított, Üres cellák. A kijelölés első cellája a B5 lesz. Ide beírsz egy = jelet, és megnyomod a fel nyilat, Ctrl+enter. Jó, ha ezután a teljes B oszlopra adsz egy irányított érték beillesztést.
Most már tudod alkalmazni a SZUMHA függvényt az összegzésre.
Feltételes formázással eltüntetheted a B ismétlődő elemeit (háttér színűek legyenek a karakterek).
-
Delila_1
veterán
Csúnya hiba, a feltételt kihagytam.
Sub filt()
Dim i As Integer
Cells(1).Select
For i = 1 To 20
If Sheets(2).Cells(i, 2) > "" Then
Selection.AutoFilter Field:=i, Criteria1:=Sheets(2).Cells(i, 2)
End If
Next
End SubA Munka2 lap fizikailag is második nálam, ezért a Sheets(2) hivatkozás is megfelel.
-
-
Delila_1
veterán
Igen. Az ÉRTÉK függvény helyett viszont mást írnék.
Ahhoz fel kell venned egy új oszlopot, feltöltöd a képletekkel, majd az újat irányítottan értékként rá kellene illesztened az eredetileg szövegként megadott számokat tartalmazó oszlopra, végül a képletet tartalmazó ideiglenes oszlopot törlöd.
Ezek helyett a ciklusmagbancells(sor,3)=cells(sor,3)*1
feltételezve, hogy a C oszlopban vannak a szöveg formátumú számok.
-
Delila_1
veterán
A #7740-ben a sor a ciklusváltozó a
Cells(sor,7).Formula= "=VLOOKUP(F" & sor & ",A:B,2,0)"
sorban. -
Delila_1
veterán
Az Fkeres-re itt egy példa:
Az G1 képletére a rögzítés ezt adta:
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1],C[-6]:C[-5],2,0)"
Átalakítva:
ActiveCell.Formula = "=VLOOKUP(F2,A:B,2,0)"
Ezt az átalakítottat a G2 cellán állva futtattam.
Ciklusba is beteheted, ott
cells(sor,7).formula= "=VLOOKUP(F" & sor & ",A:B,2,0)" -
Delila_1
veterán
Egyenként meg tudnám mondani, de ezeket legjobb, ha makrórögzítéssel kipróbálod.
Rögzítésnél megtudod az angol megfelelőjüket.
R1C1 hivatkozást ad: az RC[-1] azt jelenti, hogy a sor, amire hivatkozol, nem változik, de az oszlop 1-gyel kevesebb, mint ahova a képletet írtad.
A C oszlop képletében ez azt jelenti, hogy a B oszlop azonos sorában lévő cellára hivatkozol.
Leírva kacifántos, biztos jobban is el lehetne mondani. -
Delila_1
veterán
A Worksheet_Change esemény tud területet kezelni.
sor=Target.Row
oszlop=Target.Column
Msgbox Target.Address (egy kijelölt területre vittél be Ctrl-lel adatokat)For i=0 to 9, vagy For i=0 to 9 step 3, vagy For i=15 to 3 step-1
Elöltesztelős ciklus, pl.:
sor=10
Do While cells(sor,2)<>""
'ciklusmag
sor=sor+1
LoopNyűglődik a gépem, hol van hálózat, hol nincs.
-
Delila_1
veterán
válasz
WildBoarTeam #7732 üzenetére
Hát aki ilyen tündöklő, az lemaradhat.
-
Delila_1
veterán
Kitehetsz egy új ikont az eszköztárra (Testreszabás menü, Parancsok fül, Makrók kategória).
A printer gombképét átmásolod rá, és az Aut_Filter makrót rendeled hozzá (ikonon jobb klikkre jönnek elő ezek a lehetőségek, mikor a Testreszabás menü aktív).
Érdemes kicsit módosítani a gombképen, hogy meg lehessen különböztetni az eredetitől. -
-
Delila_1
veterán
Sub Aut_Filter()
Range("A1").Select
Selection.AutoFilter Field:=1, Criteria1:=Cells(1, 10)
Selection.AutoFilter Field:=2, Criteria1:=Cells(1, 11)
Selection.AutoFilter Field:=5, Criteria1:=Cells(1, 12)
Selection.AutoFilter Field:=6, Criteria1:=Cells(1, 13)
End SubA feltételeket a J1:M1 tartományba írtam.
Az A oszlopot [Field:=1] a J1 szerint szűröm [Criteria1:=Cells(1, 10)]
B-t a K1 szerint, E-t az L1, és F-et az M1 szerint. -
-
Delila_1
veterán
A cellákat tartalmazó objektum a lap: Worksheets("Munka1").Select
A főbb akciókat (eseményeket) úgy csalhatod elő, hogy a VBE-ban fent bal oldalon a General-t átváltod Worksheet-re. Jobb oldalon legördítheted az eseményeket.
Cellára hivatkozás: Cells(sorszám, oszlopszám), de pl. az A1 Cells(1), B1 Cells(2), C1 Cells(3).
-
Delila_1
veterán
Kicsit sok a kérdés egyszerre.
Kezdem a közepén.Adott laphoz kód elővarázsolása: lapfülön jobb klikk, Kód megjelenítése. Vagy: Alt+F11 (VB editor), bal oldalon lapnévre klikk.
Nyomógomb
Kétféle van, az Űrlapok, vagy a Vezérlők eszközkészlete csoportból. Előcsalásuk: ikonsoron jobb klikk, a felsorolásból kiválasztod a megfelelőt.Nem írom tovább, mert nem tudom, hányas verziót használsz. A fentiek a 2003-ra vonatkoznak.
-
Delila_1
veterán
válasz
Mr.Csizmás #7715 üzenetére
Szívesen.
-
Delila_1
veterán
válasz
Mr.Csizmás #7713 üzenetére
Akkor az AD oszlopba írd a sorszámokat, AD10-től lefelé, ameddig van adatod az A oszlopban.
Mivel üres oszlopok is vannak, valóban ki kell jelölnöd az A10:ADvalahány területet, utána rendezés, ahogy WindBoar írta. -
Delila_1
veterán
válasz
Mr.Csizmás #7710 üzenetére
Akkor az F oszlopba írd a lefelé növekvő sorszámokat. Ha van címsorod, akkor az F1-be ne írj.
A számok bevitele után állj az F oszlop valamelyik celláján, és rendezd az adatokat csökkenő sorrendbe (Z-A ikon). -
Delila_1
veterán
válasz
Mr.Csizmás #7708 üzenetére
Nem így értettem. Vannak adataid az A oszlopban, a B-ben, a C-ben, stb. Melyik oszlop az utolsó?
Csak az első sorban van a címsorod, vagy esetleg több sorban is? -
Delila_1
veterán
válasz
Mr.Csizmás #7706 üzenetére
Melyik az első üres oszlopod?
-
Delila_1
veterán
válasz
Mr.Csizmás #7704 üzenetére
Az adataid mellett egy üres oszlopba beírod a számokat 1-től 45-ig.
NE jelöld ki a rendezés előtt az új oszlopot, csak állj benne. Rákattintasz a Z-A ikonra, ami csökkenő sorrendbe rendezi az oszlopot, és viszi magával a többi adatot is. -
Delila_1
veterán
válasz
Fire/SOUL/CD #7684 üzenetére
Azt mondod, hogy az F7 tartalma Vasárnap: süt a nap? Meglehet.
-
Delila_1
veterán
válasz
Echo2211 #7671 üzenetére
Nálad most a Eszközök/Beállítások/Megjelenítés fülön be van kapcsolva a Képletek négyzet.
Eszerint nem is volt szükség a cella rejtettre állítására, és a lapvédelem bekapcsolására, csak a fenti beállítást kellett volna megváltoztatni. Ugyanezt egyszerűbben is elérheted, a bal oldali Alt, és a pont billentyű vált a képletek és az eredmények mutatása között.
-
Delila_1
veterán
válasz
Fire/SOUL/CD #7663 üzenetére
Elolvastam, köszönöm.
-
Delila_1
veterán
Most jött egy 2007-es kérdés.
Van két oszlop. Az A-ban nevek, a B-ben összegek, de az utóbbiak között vannak üres cellák is. Szűrök a B-ben üresre, majd a cellákat együttesen kijelölve Ctrl+Enterrel beviszek egy számot a kijelöltekbe, mire az első és utolsó kijelölés közötti értékeket is felülírja.Ez tipikus hiba?
Állítólag csak új füzetekben csinálja. (?!) -
Delila_1
veterán
válasz
Fire/SOUL/CD #7660 üzenetére
Fejben számoltam. Kisebb volt a kivonandó óra, perc, és a másodperc is.
Nem merném magamat expertnek titulálni.
-
Delila_1
veterán
válasz
Fire/SOUL/CD #7657 üzenetére
5:36:05 kellett ahhoz, hogy eljussunk oda, ahonnan el kellett volna indulnuk:
egyikőnk sem akar senkit meggyőzni a maga igazáról, a másik fél szokása, belátása, ízlése, és pénztárcája ellen. -
Delila_1
veterán
válasz
Fire/SOUL/CD #7657 üzenetére
Ez az! Maradjunk ennyiben!
-
Delila_1
veterán
válasz
Fire/SOUL/CD #7655 üzenetére
Ez mind szócséplés. Te a 2007-et favorizálod, én jobban szeretem a 2003-at. Viszont senkit sem akarok rákényszeríteni arra, hogy azt alkalmazza, amit én szeretek.
-
Delila_1
veterán
válasz
Fire/SOUL/CD #7653 üzenetére
Ha 2007-ben kell makrót írni, azt 2007-ben teszem meg, nem a 2003-ból viszem át.
Minden feladatnak több lehetséges megoldása van, és ez jó. A szumhatöbb helyett pl. kiválóan működik a szorzatösszeg, de ezeken kívül ismerek néhány más megoldást rá.
Jó étvágyat!
-
Delila_1
veterán
válasz
Fire/SOUL/CD #7651 üzenetére
...ha valaki magasabb szinten dolgozik (makró programozás, fejlesztőeszközökkel való kommunikáció, beépíttet függvények nagy számú használata/ismerete stb stb), akkor annak már régen váltania kellett.
Ez a rész rám is vonatkozik, azt hiszem, megfelelek a kritériumoknak, de megvagyok a váltás nélkül.
Van egy ismerősöm, akit gyerekkorában valószínűleg gramofontűvel oltottak be, egyet hajt, mint a pereces, és nem hajlandó tudomásul venni a körülményeket. Úgy gondolja, hogy csakis az ő szempontjai üdvözítőek.
-
Delila_1
veterán
válasz
Fire/SOUL/CD #7649 üzenetére
Lelkes szószólója vagy a magasabb verziók alkalmazásának. Egy dologról azonban megfeledkezel. Az újabb verziókat úgy fejlesztik ki, hogy a felhasználónak minden alkalommal bővítenie kelljen a hardverét.
Valaki, aki számítástechnikai termékek forgalmazásával foglalkozik, kért tőlem egy programot. A feladat az volt, hogy a 12-14 xls-be, csv-be letöltött, eltérő struktúrájú árlistát egy fájlban, azonos küllemmel jelenítsen meg.
Minden árjegyzékből törölni kellett sorokat más-más szempont szerint. A törlések után a változó tartalmú árjegyzékek összesítése után 20-25.000 sor került az új fájlba.
Mivel két helyen, két gépen dolgozik, 2003-ban, és 2007-ben is meg kellett írni. Kiváncsiságból tettem bele két sort, ami a makró elején, és végén beteszi egy-egy cellába az aktuális időt, és ezekből kiszámoltam a futás időtartamát.
Az én gyenge izomzatú gépemen és az övén a 2003-as verziós csaknem azonos ideig futott, de a 2007-es nála 1,5, nálam 28 percig tartott (gutaütés kerülgetett a tesztelés alatt).
Volt egy 12,5 megás fájl is az árlisták közöt, amit a 2007 alatt meg sem tudtam nyitni, előbb felére kellett csökkenteni a rekordok számát.Hát ez még hozzátartozik a modernizáláshoz.
-
Delila_1
veterán
válasz
Fire/SOUL/CD #7645 üzenetére
A 2003 nem ismeri a szumhatöbb függvényt.
-
Delila_1
veterán
válasz
motinka #7641 üzenetére
Egyszerűbb lenne a Szorzatösszeg függvénnyel.
A feltételek a G1:I1 tartományban vannak.
A szorzatösszeg első paraméterében a *-okkal ÉS-ként összefűzi a feltételeket, a második (a ; utáni) paraméter az összeg tartomány.3-nál jóval több feltételt adhatsz meg, 8-ig biztosan működik, addig próbáltam ki.
A mellékelt ábra tartományai helyett beírhatod a névvel ellátott tartományaidat. -
Delila_1
veterán
válasz
motinka #7635 üzenetére
Az első paraméter a sort, a második az oszlopot adja, ezért nem cserélhető fel – büntetlenül.
Miután elküldtem a tabulálásról szóló üzenetet, észrevettem, hogy én sem adtam rendes formát. Pl. az If - End if pároson belül minden sornak 1 tabulátorral jobbra kellene lennie a jelenlegihez képest, és a Select Case - End Select közöttieknek is.
-
Delila_1
veterán
válasz
motinka #7631 üzenetére
Több dolgot kellett átírni benne. A Select Case sorban most már nem az A1-et [cells(1)], hanem a B5 cellát [cells(5,2)] kell figyeltetni.
Az ÖSSZESnél sem írhatsz XX oszlopot. A kiterjesztésből gondolom, hogy a 2007-es verziónál előbbit használsz, ahol az utolsó oszlop az IV.
A fentieket kijavítva:Private Sub Worksheet_Change(ByVal Target As Range)
Dim kezd As String, vég As String
If Target.Address = "$B$5" Then
Select Case Cells(5, 2)
Case "CSABA"
kezd = "D": vég = "F": GoTo Rejt
Case "JÁNOS"
kezd = "G": vég = "I": GoTo Rejt
Case "FERENC"
kezd = "J": vég = "L": GoTo Rejt
Case "LÁSZLÓ"
kezd = "M": vég = "O": GoTo Rejt
Case "TIBOR"
kezd = "P": vég = "R": GoTo Rejt
Case "ÖSSZES"
Columns("D:IV").Hidden = False
End Select
End If
Exit Sub
Rejt:
Columns("D:IV").Hidden = True
Columns(kezd & ":" & vég).Hidden = False
End Sub -
Delila_1
veterán
válasz
kissgy04 #7614 üzenetére
A D oszlop módosított adatai a "látvány" szerint egy sorban vannak. Ha soronként akarod a v.-t az egyes cellák mellé tenni, és a teljes módosított oszlopot szerepeltetnéd a Word-ben, ilyen legyen a makró:
Sub Cella_mod()
Dim sor As Integer
For sor = 2 To ActiveSheet.UsedRange.Rows.Count
Cells(sor, 2) = "sh03" & Cells(sor, 2)
Cells(sor, 14) = Cells(sor, 4) & " v."
Next
End SubEzután kijelölöd az N oszlop adatait, és áthúzod a Wordbe. Az Excelben változatlan marad a D oszlop.
-
Delila_1
veterán
válasz
kissgy04 #7614 üzenetére
Ez a kis makró megoldja a problémádat. A futtatása után az M1 cella tartalmát bemásolod a Wordbe.
Sub Cella_mod()
Dim sor As Integer
For sor = 2 To ActiveSheet.UsedRange.Rows.Count
Cells(sor, 2) = "sh03" & Cells(sor, 2)
Cells(1, 13) = Cells(1, 13) & Cells(sor, 4) & " v. "
Next
End SubA ciklust a 2. sortól indítottam, feltételezve, hogy az 1. címsor. Ha nem, a For sor=2 to...
sorban a 2-t írd át 1-re. -
Delila_1
veterán
válasz
Fire/SOUL/CD #7610 üzenetére
Lesz név bőven, ahogy a névadásnál látom, ezért a Nevek-et át kellene tenni máshova. Legjobb lenne egy másik lapra árhelyezni, és annak megfelelően átírni az OFSZET-es meghatározást is.
-
Delila_1
veterán
válasz
motinka #7607 üzenetére
A neveket beírtad a T oszlopba, ennek megfelelően az érvényesítés forrását így is megadhatod: =$T$1:$T$5
Még jobb, ha a Beszúrás/Név/Név megadása menüpontban meghatározol egy Nevek című területet, ami követi a sorok számának és tartalmának a változását.
Hozzáadás, fent megadod a Nevek címet, a hivatkozáshoz beírod:
=OFSZET(Munka1!$T$1;0;0;DARAB2(Munka1!T:T);1)Az érvényesítésnél a forrás ezután =Nevek
A nevek és az ÖSSZES közé nem kell üres cellát tenned, akkor nem lesz "lyuk" a legördülőben.
A névadások közül – ha csak az oszlopok rejtéséhez, felfedéséhez vitted be a neveket –, nyugodtan törölheted a nevek által meghatározott területeket.
Fire-nek igaza van, bizony kifelejtettem az összes oszlop láthatóvá tételét, pedig gondoltam rá, Tanár Úr, kérem.
Míg én fogalmaztam ezt a förmedvényt, észrevetted a hibát, azt a részt töröltem is a válaszomból.
-
Delila_1
veterán
válasz
motinka #7601 üzenetére
Itt a makró, elég jól látszik belőle, melyik adatokat kell átírnod. A Case utasításokból az End Select sor elé akárhány újat beszúrhatsz. Ennek alapján eldöntheted, mit akarsz később a további adatokhoz idomítani, a különböző nézeteket, vagy a makrót.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim kezd As String, vég As String
If Target.Address = "$A$1" Then
Select Case Cells(1)
Case "Csaba"
kezd = "D": vég = "F": GoTo Rejt
Case "János"
kezd = "G": vég = "I": GoTo Rejt
Case "Ferenc"
kezd = "J": vég = "L": GoTo Rejt
Case "László"
kezd = "M": vég = "P": GoTo Rejt
End Select
End If
Exit Sub
Rejt:
Columns("D:O").Hidden = True
Columns(kezd & ":" & vég).Hidden = False
End SubA makrót a kérdéses laphoz kell rendelned. Lapfülön jobb klikk, Kód megjelenítése, a VB szerkesztőben jobb oldalon kapott üres lapra másold be.
Szerk.: a Columns("D:O").Hidden = True sorban a kettőspont után nem nulla van, hanem O betű, az utolsó felhasznált oszlopod betűjele.
-
Delila_1
veterán
válasz
motinka #7601 üzenetére
Itt nagyon meleg van. Szerintem ez praktikus, és egyszerű megoldás.
Lehet makrót is írni rá, nem nagy ügy, csak ahhoz ismernem kell az összes nevet, és a hozzájuk tartozó oszlopokat. Akkor viszont a névsor változásakor (bővülés, csökkenés), a makróban kell operálnod utólag, és a távol lévő munkatársadnak is.
Jobban jártok, ha az Excel nyújtotta lehetőséget kihasználva beviszitek a különböző nézeteket.
-
Delila_1
veterán
válasz
motinka #7595 üzenetére
Elrejted a NEM Csaba adatait tartalmazó oszlopokat. Nézet/Egyéni nézetek. Hozzáadás, a névhez beírod: Csaba, OK.
Felfeded az oszlopokat, és ismét elrejted azokat, amelyek nem Jánoshoz tartoznak. Ennek az egyéni nézetnek a János nevet adod, és így tovább.
Mikor minden nézetet felvittél, a Testreszabás menüben a Parancsok fülre állsz. A Kategóriákból kiválasztod a Nézetet, jobb oldalon kikeresed az Egyéni nézetek legördülőt, és felhúzod az ikonjaid közé az Eszköztárra. Ebből választhatod ki ezután a neveket, és mindig csak a megfelelő oszlopok látszanak majd.
Új hozzászólás Aktív témák
Hirdetés
- Windows, Office licencek kedvező áron, egyenesen a Microsoft-tól - Automata kézbesítés utalással is!
- Antivírus szoftverek, VPN
- ROBUX ÁRON ALUL - VÁSÁROLJ ROBLOX ROBUXOT MÉG MA, ELKÉPESZTŐ KEDVEZMÉNNYEL (Bármilyen platformra)
- Eredeti Microsoft termékek - MEGA Akciók! Windows, Office Pro Plus, Project Pro, Visio Pro stb.
- Játékkulcsok olcsón: Steam, Uplay, GoG, Origin, Xbox, PS stb.
- Csere-Beszámítás!AMD Asztali számítógép PC Játékra! R5 5600/ RX 6700XT 12GB / 16GB DDR4 / 500GB SSD
- AKCIÓ! Gigabyte B450M R7 2700X 16GB DDR4 512GB SSD RX VEGA64 8GB CM 690 III FSP 600W
- AKCIÓ! Gigabyte H510M i5 10400F 16GB DDR4 512GB SSD GTX 1080Ti 11GB Rampage SHIVA Zalman 600W
- Bomba ár! Dell Latitude E5550 - i3-5GEN I 8GB I 128GB SSD I 15,6" HD I W10 I HDMI I Cam I Gari!
- Telefon felvásárlás!! iPhone 14/iPhone 14 Plus/iPhone 14 Pro/iPhone 14 Pro Max
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged