Hirdetés
- Luck Dragon: Asszociációs játék. :)
- sziku69: Fűzzük össze a szavakat :)
- sziku69: Szólánc.
- Brogyi: CTEK akkumulátor töltő és másolatai
- CaNNa3IS: Kis előkarácsonyi muzsika csak nektek
- gban: Ingyen kellene, de tegnapra
- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
- GoodSpeed: Ennél jobb Windows 7 Aero Skin nem igen van Windows 11-re (WindowBlinds 11)
- GoodSpeed: Márkaváltás sok-sok év után
- bambano: Bambanő háza tája
-
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
-
Delila_1
veterán
válasz
Zola007
#37030
üzenetére
Nevezd el a fényképezőgéppel létrehozott képet Kép-nek.
A laphoz kell rendelned a makrót (lásd a Téma összefoglalót).
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ActiveSheet.Shapes("Kép").Left = ActiveCell.Left + ActiveCell.Width + 20
ActiveSheet.Shapes("Kép").Top = ActiveCell.Top + 20
End SubA plusz értékeket módosíthatod ízlésed szerint, akár negatív értékre is.
Makróbarátként kell mentened a füzetedet.
-
Delila_1
veterán
válasz
#05304832
#37008
üzenetére
A Ctrl+0 nem képletet másol, hanem beteszi az aktív cellába a mai dátumot. Beviszed a dátumot az első oszlopba, mire a többi oszlopban lévő képletek megjelennek ebben az új sorban.
A dátumot tartalmazó oszlop is szerepeljen a kimutatás(ok)ban, ha időintervallumra akarsz szűrni.
-
Delila_1
veterán
válasz
#05304832
#37000
üzenetére
A frissítést "gyalog" kell elvégezni, vagy egy gombbal (a hozzárendelt makróval) tudod egyszerre frissíteni a 3 kimutatást.
Sub Frissites()
ActiveSheet.PivotTables("Kimutatás1").PivotCache.Refresh
ActiveSheet.PivotTables("Kimutatás2").PivotCache.Refresh
ActiveSheet.PivotTables("Kimutatás3").PivotCache.Refresh
End SubAz A2 képlete legyen
=Ha(H2>=0;"Bevétel";"Kiadás")A képletet tartalmazó oszlopot nem érdemes az A-ba tenni, mert új sornál át kell ugranod a bevitelnél. Tedd például a dátumot az első oszlopba. Mikor a Ctrl+0-val beviszed a dátumot, automatikusan másolódik a Kiadás / Bevétel képlete.
-
Delila_1
veterán
válasz
#05304832
#36995
üzenetére
A mai dátum bevitele Ctrl+0.
A helyedben a Jelentésszűrőbe tenném a 3 kategóriát, az Oszlopcímkékhez a kiadás-bevételt, a Sorcímkékhez a ügyfelet, a megnevezést és a dátumot, végül az Értékekhez az összeget.
Kiadás esetén negatív legyen a bevitt összeg, bevételnél pozitív, másképp hamis eredményt kapsz.
-
Delila_1
veterán
válasz
p5quser
#36979
üzenetére
Lehet, hogy látszatra egyforma a két érték, de a keresett érték számként-, a 11. oszlopban pedig szövegként van megadva.
Ha mindegyik szöveg, gyakori hiba, hogy az egyik tartalmaz (többnyire a végén) egy szóközt. A TRIM függvénnyel levághatod a szöveg elején, és végén lévő szóközöket egy új oszlopban a keresés előtt, majd értékként beilleszted az eredeti helyére.
-
Delila_1
veterán
válasz
RAiN91
#36971
üzenetére
Mivel sok statisztikai adatról van szó, el tudom képzelni, hogy a felső sorokban (amik már nem változnak) a képletek helyére beillesztheted a az értéküket.
Például a HOL.VAN függvény eredménye az említett példában 3, és ez év végén is annyi lesz. Kijelölöd ezeknek a képleteknek a tartományát, Ctrl+c-vel másolod. Marad a kijelölés, ahogy volt. Jobb klikk, Irányított beillesztés, Értéket.
Csak néhány utolsó sorban hagyd meg a képleteket, a többit írd felül az értékükkel. Jelentősen nő a sebesség, és csökken a fájl mérete. Az értékbeillesztést időről időre végrehajthatod az újabb képleteknél.
-
Delila_1
veterán
válasz
RAiN91
#36969
üzenetére
"Néhány függvény az utolsó celláig le van húzva, 1048576 sorig"
Ilyent még az öregapám sem hallott! Mi az
-nek másolod végig? Mikor lesz 10^6 sorod?! 
Készíts az adataid felső 2 sorából táblázatot (Beszúrás menü), majd a jobb alsó sarokban megjelenő kis kék jelet húzd le addig, ameddig kitöltött sorod van. Az alatta lévő TELJES sorokat töröld.
Új adatsor bevitelekor automatikusan nő a táblázatod mérete, és az új sor örökli a fölötte lévő képletet (cellaformázást, érvényesítést).
A milliós nagyságrendű képlet kiszámításához idő kell. A képletek törlésével feltűnően felgyorsul a számolás.
-
Delila_1
veterán
válasz
p5quser
#36959
üzenetére
A laphoz rendelt gomb csak a saját lapján tud dolgozni. Helyette tegyél a lapra (mondjuk az elsőre) egy alakzatot, pl. a lekerekített téglalapot.
Modulba másold be a makrót:
Sub Szures()
Dim lap As Integer
Application.ScreenUpdating = False
For lap = 2 To Sheets.Count
Sheets(lap).Select
ActiveSheet.Range("$A$1:$N$330").AutoFilter Field:=11, Criteria1:=">1"
ActiveSheet.AutoFilter.Range.Select
Selection.Interior.Color = 5296274
' ActiveSheet.Range("$A$1:$N$330").AutoFilter Field:=11 'összes sor mutatása
Next
' Sheets(1).Select 'első lapra állás
Application.ScreenUpdating = True
End SubAz alakzathoz rendeld hozzá a Szures makrót. Ez a másodiktól az utolsó lapig halad, és mindenhol végrehajtja a szűrést, színezést.
Nézd meg, kell-e a két sor a makróban, amikhez megjegyzést fűztem.
-
Delila_1
veterán
-
Delila_1
veterán
válasz
róland
#36898
üzenetére
Private Sub Worksheet_Open()
Dim oCtrl As Office.CommandBarControl
'CTRL+C, CTRL+V és CTRL+X letiltása
Application.OnKey "^c", ""
Application.OnKey "^x", ""
Application.OnKey "^v", ""
'Cut menü letiltása
For Each oCtrl In Application.CommandBars.FindControls(ID:=21)
oCtrl.Enabled = False
Next oCtrl
'Copy menü letiltása
For Each oCtrl In Application.CommandBars.FindControls(ID:=19)
oCtrl.Enabled = False
Next oCtrl
'Vonszolás letiltása
Application.CellDragAndDrop = False
End SubA BeforeClose-ban vissza kell állítani!
-
Delila_1
veterán
válasz
North15
#36880
üzenetére
Sajnos ez az Excel hibája. Hiába törlöd a korábbi adatokat, nem tudja feledni az előzőleg kitöltött területet. Emiatt nem is szoktam alkalmazni a Cells.SpecialCells(xlCellTypeLastCell).Row -t. Az esetedben egy rövid kis makróval megoldható az alsó sor kikeresése.
Sub Also_sor()
Dim oszlop As Integer, usor As Long
For oszlop = 1 To 8
If Cells(Rows.Count, oszlop).End(xlUp).Row > usor Then
usor = Cells(Rows.Count, oszlop).End(xlUp).Row
End If
Next
MsgBox usor
End Sub -
Delila_1
veterán
válasz
RAiN91
#36851
üzenetére
Szia!
Másold be a makrót egy modulba (lásd Téma összefoglaló), és indítsd el.
Sub Sortorles()
Dim sor As Long, usor As Long, WF As WorksheetFunction
usor = Cells(Rows.Count, 1).End(xlUp).Row
Set WF = Application.WorksheetFunction
For sor = usor To 4 Step -1
If WF.CountA(Rows(sor)) = 0 And WF.CountA(Rows(sor - 1)) = 0 And _
WF.CountA(Rows(sor - 2)) = 0 And WF.CountA(Rows(sor - 3)) = 0 Then
Rows(sor).Delete Shift:=xlUp
End If
Next
End Sub -
Delila_1
veterán
válasz
Csatravi
#36840
üzenetére
Nem kell érvényesítés a B2-be, a C2-ben úgyis megjelenik a figyelmeztetés. Érvényesítés esetén nem jutsz el a C2 kiírásáig.
A C2 cella képlete:
=HA(ÉS(HOSSZ(B2)=4;SZÁMÉRTÉK(JOBB(B2;3));VAGY(ÉS(KÓD(BAL(B2;1))>96;KÓD(BAL(B2;1))<123);ÉS(KÓD(BAL(B2;1))>64;KÓD(BAL(B2;1))<91)));"";"hibás adat")A B4 celláé pedig
=HAHIBA(FKERES(B2;A:B;2;0);"nincs találat") -
Delila_1
veterán
válasz
Csatravi
#36810
üzenetére
Egy másik megközelítés szerint egy laphoz rendelt makró figyeli a B2 cellába bevitt adatot.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim sor As Variant
If Target.Address = "$B$2" And Target <> "" Then
Application.EnableEvents = False
Range("C2,B4") = ""
If Len(Target) <> 4 Then
Range("C2") = "Hibás érték"
Application.Wait Now + TimeValue("0:00:02")
Range("B2") = ""
Range("B2").Select
Application.EnableEvents = True
Exit Sub
End If
If IsNumeric(Left(Target, 1)) Then
Range("C2") = "Hibás érték"
Application.Wait Now + TimeValue("0:00:02")
Range("B2") = ""
Range("B2").Select
Application.EnableEvents = True
Exit Sub
End If
If Not IsNumeric(Right(Target, 3)) Then
Range("C2") = "Hibás érték"
Application.Wait Now + TimeValue("0:00:02")
Range("B2") = ""
Range("B2").Select
Application.EnableEvents = True
Exit Sub
End If
sor = Application.Match(Target, Columns(1), 0)
If IsError(sor) Then
Range("B4") = "Hibás adat"
Else
Range("B4") = Cells(sor, "B")
End If
Range("B2").Select
Application.EnableEvents = True
End If
End Sub -
Delila_1
veterán
válasz
babuckoo
#36799
üzenetére
Tedd a CombBoxot az első sorba. Az A2 cellán állva tegyél be ablaktábla rögzítést (Nézet menü), hogy ez a sor mindig látható legyen.
Jobb klikk a ComboBoxon, Kód megjelenítése. Bejutottál a VB szerkesztőbe, és a makród első és utolsó sora megvan. Ezeket egészítsd ki:
Private Sub ComboBox1_Change()
If ActiveCell.Row > 1 Then '*************
Cells(ActiveCell.Row, 1) = ActiveCell.Row - 1 '*************
Cells(ActiveCell.Row, 2) = ComboBox1
End If
End SubBeállsz az első üres, kitöltendő sorodba, és kiválasztod a gépet. Ennek a sornak az A oszlopába beíródik a sorszám, a B-be pedig a kiválasztott gép neve. Ha a címsor 1-nél több sorból áll, 1 helyett annyit vonj le az ActiveCell.Row-ból. A másik csillagozott sorban is írd át az 1-et.
A füzetet makróbarátként kell mentened.
-
Delila_1
veterán
válasz
MikeAinsel
#36784
üzenetére
Szívesen.

-
Delila_1
veterán
válasz
MikeAinsel
#36778
üzenetére
Változó lapnevek esetén alkalmaznod kell az INDIRECT függvényt is a képletedben.
countif(index(indirect("'" & A1 & "'!$B$3:$B$500",...ahol az A1 tartalmazza a lapnevet. Az indirect után " ' " van, a felkiáltó jel előtt " '
-
Delila_1
veterán
válasz
MikeAinsel
#36768
üzenetére
Ha beírtad a tömbfüggvényt, ugyanúgy húzva másolhatod, mint bármelyik más függvényt.
-
Delila_1
veterán
A Veletlen és az Inditas makrót 1 modulba tedd. A
Private Sub Workbook_Open()-t a ThisWorkbook laphoz rendeld úgy, hogy bal oldalon duplaklikkel kiválasztod a ThisWorkbook lapot, majd a jobb oldalon megjelent üres felületre másold be. Ez utóbbit nem kell gombhoz rendelned, automatikusan indul a fájl megnyitásakor. Ez csak törli a Munka1 lap AA1 cellájának a tartalmát, hogy első indításkor ne legyen késleltetés.1 gombhoz csak 1 makrót lehet rendelni. A mostani feladatban a Veletlen hívja az Inditas makrót.
-
Delila_1
veterán
válasz
kasza blanka
#36752
üzenetére
Be kell még iktatnod a képletbe az INDIREKT függvényt. A súgó megmondja a használatát.
Ha nem megy, írd meg, lesz itt valaki, aki segít.
Érdemes előbb a súgót megnézned, hogy megértsd, miről van szó. -
Delila_1
veterán
A gombhoz a Veletlen makrót rendeld, ez hívja meg a Inditas-t.
Sub Veletlen()
Dim kezd As Long, sor As Long
If Range("AA1") = "" Then
Inditas
Else
MsgBox "Nyugi! 5 mp után újra indul" & vbLf & _
"ha ezt leokéztad", vbInformation
Application.Wait Now + TimeValue("0:00:05")
Inditas
End If
Range("AA1") = "Indítva"
End SubSub Inditas()
Dim kezd As Long, sor As Long
kezd = Range("E" & Rows.Count).End(xlUp).Row + 1
If kezd = 2 Then kezd = 1
For sor = kezd To kezd + 4
Cells(sor, "E") = Int(Rnd() * 153) + 1
Next
End SubÉrdemes a ThisWorkbook laphoz rendelni egy makrót, ami a füzet behívásakor kiüríti az AA1 cellát.
Private Sub Workbook_Open()
Sheets("Munka1").Range("AA1") = ""
End Sub -
-
Delila_1
veterán
Végre megértettem, mi a gondod. Te 1 termékhez az összes paramétert 1 mezőben akarod tárolni az Excelben, és ez a hiba.
Szedd szét a kép szerint.Az Excelben adsz egy-egy szöveget a címsorban. Ezek lehetnek rövidek. A "rendes" címet a Wordben add meg (foly.szemb.ell az Excelben, folyással szembeni ellenállás: a Wordben).
Látod, betettem egy új oszlopot JEL címmel. Ide írsz *-ot azokhoz a tételekhez (vagy csak egyhez), ami(ke)t a Word körlevélben akarsz megjeleníteni. A kritérium ebben az esetben, hogy a JEL mező értéke *.
-
Delila_1
veterán
válasz
Fferi50
#36701
üzenetére
Egyszerűbb a Csere funkciót (Ctrl+h) alkalmazni, az minden oszlopban cserél, nem kell oszloponként bevinni a HELYETTE függvényt.
Az adatokhoz felvennék egy új oszlopot, ahol pl. egy *-ot tennék azokba a rekordokba, amelyeket a körlevélbe aktuálisan be akarok tenni. Ez lenne a feltétel a rekordok kiválasztásához az összefésülésnél.
-
Delila_1
veterán
válasz
toth_janika
#36683
üzenetére
A feltételes formázás képlete
=DARABTELI(A$1:A$1000;A1)>1az érvényesség pedig
=$A$1:$A$1000 -
Delila_1
veterán
válasz
p5quser
#36657
üzenetére
Meg kell keresni a Szlazo lap A oszlopában az első üres sort, és ezt kell megadni a beillesztés helyeként.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim Ide As Long
If Not Intersect(Target, Range("A1:A2637")) Is Nothing Then
Ide = Sheets("Szlazo").Range("A" & Rows.Count).End(xlUp).Row + 1
Cancel = True
Target.Copy Destination:=Sheets("Szlazo").Range("A" & Ide)
Sheets("Szlazo").Select
ActiveCell.Offset(0, 2).Select
End If
End Sub -
Delila_1
veterán
válasz
toth_janika
#36649
üzenetére
Egy üres füzetbe bemásolod az 5 fájl adatai EGY lapra, egymás alá. 1-1 másolás után egy új oszlopba beírod, melyik füzetből valók az adatok.
Kimutatást készítesz a táblázatodból, amiben szerepel az azonosítót-, és a füzet nevét tartalmazó oszlop is.
Makróval lehet automatizálni a folyamatot, de ahhoz több ismeretre van szükség.
-
Delila_1
veterán
2016-os verziónál van egy ilyen lehetőség:
Beírod a kérdéses oszlop melletti első cellába a szöveget a SZÁM NÉLKÜL, majd ezen a cellán állva
Kezdőlap | Szerkesztés csoport | Kitöltés | VillámkitöltésNézd meg ezt a nagyszerű videót, amit Kovalcsik Géza állított össze a villámkitöltéssel kapcsolatban.
-
Delila_1
veterán
válasz
hallgat
#36579
üzenetére
Az Immediate ablakba (Ctrl+g-re bújik elő a VB szerkesztőben) írd be:
?activecell.interior.colorindex
Nekem van egy kis makróm a personalban (lásd a téma összefoglalót), amihez a gyorselérési eszköztárra kitettem egy ikont. Ez egy üzenetben megadja a háttér és a font színkódját, RGB-ben is.
Sub Szin_lekerdezes()
Dim Rh As Integer, Gh As Integer, Bh As Integer
Dim Rk As Integer, Gk As Integer, Bk As Integer
Dim hatter, karakter
hatter = Selection.Interior.Color
karakter = Selection.Font.Color
Rh = hatter Mod 256
Gh = (Int(hatter / 256)) Mod 256
Bh = Int(hatter / 256 ^ 2)
Rk = karakter Mod 256
Gk = (Int(karakter / 256)) Mod 256
Bk = Int(karakter / 256 ^ 2)
MsgBox "Háttér RGB: " & Rh & ", " & Gh & ", " & Bh & vbLf & _
"Karakter RGB: " & Rk & ", " & Gk & ", " & Bk & vbLf & vbLf & _
"Háttér színkód: " & Selection.Interior.ColorIndex & vbLf & _
"Karakter színkód: " & Selection.Font.ColorIndex
End Sub -
Delila_1
veterán
válasz
hallgat
#36572
üzenetére
Jelöld ki a tartományt, majd futtasd az alábbi, modulba másolt makrót:
Sub NoPiros()
For Each CV In Selection
If CV.Interior.ColorIndex = 3 Then
Range(CV.Address).Delete shift:=xlToLeft
End If
Next
End SubAhol egymás mellett több piros hátterű cella is van, a második megmarad, újbóli futtatás rendbe teszi.
-
Delila_1
veterán
válasz
Ghoosty
#36545
üzenetére
NE képlettel, hanem makróval fűzd össze a cellákat, akkor már lehet formázni cellán belül is a karaktereket. A fájlnak is jót tesz, ha a sok képlet helyett értékek szerepelnek.
Sub Felkover()
Range("C1") = Range("A1") & " " & Range("B1")
Range("C1").Characters(Len(Range("A1")) + 2, Len(Range("B1"))).Font.Bold = True
End SubA 2. sor végzi a formázást. Az első paraméter – Len(Range("A1")) + 2 – adja meg, hányadik karaktertől legyen a C1 tartalma fékövér, a második – Len(Range("B1")) – pedig azt, hogy milyen hosszan.
Ciklusban is elvégezheted az összefűzést, és a formázást.
Új hozzászólás Aktív témák
- Antivírus szoftverek, VPN
- Eladó Steam kulcsok kedvező áron!
- Windows 10/11 Home/Pro , Office 2024 kulcsok
- Windows, Office licencek kedvező áron, egyenesen a Microsoft-tól - Automata kézbesítés utalással is!
- ::::: HATALMAS LEÁRAZÁSOK! I JOGTISZTA MICROSOFT TERMÉKEK I 27%-OS ÁFÁS SZÁMLA I 10 ÉV GARANCIA ::::
- BESZÁMÍTÁS! MSI B450M R5 5600X 32GB DDR4 512GB SSD RX 6800 16GB Zalman Z1 PLUS Cooler Master 750W
- Pixel 7 pro 128/8
- Bomba ár! Acer Switch SA5 - i3-6GEN I 4GB I 128SSD I 12" 2K Touch I Cam I W11 I Garancia!
- LG 50QNED85T3A / QNED / 50" - 127 cm / 4K UHD / 120Hz / HDR Dolby Vision / FreeSync Premium / VRR
- Kaspersky, BitDefender, Avast és egyéb vírusírtó licencek a legolcsóbban, egyenesen a gyártóktól!
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: ATW Internet Kft.
Város: Budapest


-nek másolod végig? Mikor lesz 10^6 sorod?! 





