- Külföldi SIM-ek itthon
- Samsung Galaxy Watch7 - kötelező kör
- Bemutatkozott a Poco X7 és X7 Pro
- Samsung Galaxy A56 - megbízható középszerűség
- Apple iPhone 16 Pro - rutinvizsga
- Megindult világhódító útjára az új Samsung fülhallgató
- Milyen GPS-t vegyek?
- iPhone topik
- Honor 400 Pro - gép a képben
- Google Pixel topik
-
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
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)>1
az é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
Hirdetés
- Végleges a HDMI 2.2-es verziója
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Micro Four Thirds
- Call of Duty: Black Ops 7
- Külföldi SIM-ek itthon
- Diablo IV
- One otthoni szolgáltatások (TV, internet, telefon)
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- Milyen monitort vegyek?
- exHWSW - Értünk mindenhez IS
- További aktív témák...
- Bitdefender Total Security 3év/3eszköz! - Tökéletes védelem, Most kedvező áron!
- Assassin's Creed Shadows Collector's Edition PC
- Bontatlan - BATTLEFIELD 1 Collectors Edition - Játékszoftver nélkül
- ROBUX ÁRON ALUL - VÁSÁROLJ ROBLOX ROBUXOT MÉG MA, ELKÉPESZTŐ KEDVEZMÉNNYEL (Bármilyen platformra)
- Gyermek PC játékok
- BESZÁMÍTÁS! Samsung Odyssey G5 32 144Hz WQHD 1ms monitor garanciával hibátlan működéssel
- DELL PowerEdge R740 rack szerver - 2xGold 6130 (16c/32t, 2.1/3.7GHz), 64GB RAM, 10Gbit HBA330, áfás
- Honor Pad X8 64GB, Wi-Fi, 1 Év Garanciával
- BESZÁMÍTÁS! Apple Mac mini 2024 M4 16GB 256GB SSD számítógép garanciával, hibátlan működéssel
- iKing.Hu - Xiaomi 14 Ultra - Ultra White - Használt, karcmentes
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged