- Okosóra és okoskiegészítő topik
- Vivo X200 Pro - a kétszázát!
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Mobil flották
- Milyen GPS-t vegyek?
- Megjelent a Poco F7, eurós ára is van már
- CMF Buds Pro 2 - feltekerheted a hangerőt
- Apple iPhone 16 Pro - rutinvizsga
- Apple iPhone 15 Pro Max - Attack on Titan
- Huawei Watch Fit 3 - zöldalma
-
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
-
Delila_1
veterán
válasz
littleNorbi #51184 üzenetére
-
Delila_1
veterán
válasz
littleNorbi #51182 üzenetére
A két, *-gal jelölt sornál az 1-et írd át. A makró itt az első, A oszlopban keresi a megadott keresendő szót, ami fölé oldaltörést kell bevinni. Az 1 helyett azt az oszlopszámot add meg, ahol a keresendő szó szerepel.
Az utolsó sor kikeresésénél most az A oszlop utolsó kitöltött cellájának a sorszáma szerepel.Sub Oldaltores()
Dim sor As Long, usor As Long, szoveg As String
usor = Cells(Rows.Count, 1).End(xlUp).Row
szoveg = Application.InputBox("Melyik sorok fölött legyen oldaltörés?", Type:=2)
For sor = usor To 1 Step -1
If Cells(sor, 1) = szoveg Then '*
Cells(sor, 1).Select '*
ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=ActiveCell
End If
Next
End Sub
-
Delila_1
veterán
Nevet adsz a tartománynak, ami az A1=ben megjelenítendő neveket tartalmazza. Legyen ez a név most Nevek.
Az A1-be érvényesítést teszel (Adatok | Érvényesítés, majd lista, a Forrás mezőben állva F3-ra megjelennek a névvel ellátott tartományok, jelenleg a Nevek.Felveszed a Józsinál megjelenítendő adatokat egymás alá, a tartomány neve legyen Józsi.
Így jársz el a Bélához tartozó adatokkal is.Most a B1-be adsz egy érvényesítést. A forráshoz beírod: =indirekt(A1)
Ezzel kész is vagy, próbáld ki! -
-
Delila_1
veterán
válasz
lacipapi #51147 üzenetére
A lapodhoz kell rendelned a makrót, lásd a Téma összefoglaló leírásában.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 3 Then
Application.EnableEvents = False
Cells(Target.Row, 1) = Format(Now, "yyyy.mm.dd hh:mm:ss")
Application.EnableEvents = True
End If
End Sub
Ez a C oszlopba [Target.Column = 3] bevitt érték esetén az azonos sor A oszlopába [Cells(Target.Row,1)] írja be a pillanatnyi időt.
-
Delila_1
veterán
válasz
Cyborg #51136 üzenetére
Ha 1 évnél kisebb a dátum, akkor nem látszik beírás (az én példámban a Régen lejárt szöveg kerül a képletbe.
Ha a képlet melletti egyik oszlopban van végig adat, akkor az első, képletet tartalmazó cellára állsz, és a jobb alsó sarkában lévő kis fekete négyzeten a dupla katt végig viszi a képletet.
Ha nincs adat a szomszéd oszlopban, a kis négyzetet megfogod, és lehúzod a másoláshoz. -
-
Delila_1
veterán
válasz
föccer #51071 üzenetére
Jó ötlet.
Esetleg a kötelező 3 lap nyomtatása után egy for-next ciklust indíthatnál.Db = Sheets("Kezelő").Range("D23")
For lap = 5 To 24
If Mid(Sheets(lap).Name, 4, 2) * 1 <= Db Then
'nyomtatás
Else
'exit for
End If
Next
Biztosan van ennél egyszerűbb VBA-s megoldás az együttes lapok kijelölésére.
-
Delila_1
veterán
válasz
föccer #51068 üzenetére
Kicsit tovább vittem az előzőt, de megállt a tudományom. Addig jutottam, hogy összeáll az együttesen kijelölendő lapok listája. Hátha valaki tovább jut, esetleg egészen más úton.
Sub arr()
Dim lapszam As Integer, lap As Integer, lapok As String, tomb(29)
For lap = 2 To 4
tomb(lap - 2) = Sheets(lap).Name
Next
lapszam = Sheets("Kezelő").Range("D23")
For lap = 5 To lapszam + 4
If Mid(Sheets(lap).Name, 4, 2) * 1 <= lapszam Then
tomb(lap - 2) = Sheets(lap).Name
End If
Next
For lap = 0 To 29
If tomb(lap) = "" Then Exit For
lapok = lapok & """" & tomb(lap) & """"
lapok = lapok & ","
Next
lapok = Left(lapok, Len(lapok) - 1)
lapok = """" & lapok
lapok = Right(lapok, Len(lapok) - 1)
Debug.Print lapok
End Sub
-
Delila_1
veterán
válasz
föccer #51068 üzenetére
Eddig jutottam el:Sub arr()
Dim lapszam As Integer, lap As Integer
Dim tomb(29)
For lap = 2 To 4
tomb(lap - 2) = Sheets(lap).Name
Next
lapszam = Sheets("Kezelő").Range("D23")
For lap = 5 To lapszam + 4
If Mid(Sheets(lap).Name, 4, 2) * 1 <= lapszam Then
tomb(lap - 2) = Sheets(lap).Name
End If
Next
End Sub
Innen valahogy be kell olvasnod az array-ba a tomb neveit, de most el kell rohannom, késésben vagyok.
-
Delila_1
veterán
válasz
TillaT #51000 üzenetére
Egy megoldás:
Private Sub Worksheet_Change(ByVal Target As Range)
If Len(Target.Value) = 3 Then
Application.EnableEvents = False
Target = Target & ""
Range(Target.Address).Characters(2, 1).Font.ColorIndex = 3
Application.EnableEvents = True
End If
End Sub
Szám esetén az Excel azonnal dátummá alakítja a beírt értéket, ezért kell szöveggé alakítani.
-
Delila_1
veterán
-
Delila_1
veterán
válasz
Fferi50 #50947 üzenetére
Nem számoltam össze, hányan hány megoldással próbálkoztunk.
Ímé a legújabb, ha már lehet figyeltetni a bevitelt.Private Sub Worksheet_Change(ByVal Target As Range)
If InStr(Target.Value, "X") > 0 Then
Range(Target.Address).NumberFormat = ";;;""X"""
Else
Range(Target.Address).NumberFormat = ";;;"
End If
End Sub -
Delila_1
veterán
Két megoldás:
1.
=SZORZATÖSSZEG((tartomány<>"")/DARABTELI(tartomány;tartomány))
2. {=SZUM(1/DARABTELI(tartomány;tartomány))}A tartomány a teljes, neveket tartalmazó terület.
A második tömbfüggvény, Shift+Control+Enterrel kell bevinni, akkor kapja meg a nyitó és záró kapcsos zárójelet. -
Delila_1
veterán
válasz
joocek #50895 üzenetére
Két lapon legyen a két táblázat. Elég az egyikre beírni a hónapokat és a tételeket, miután bemásoltad a két makrót.
Az egyik lap neve Függőleges. Ehhez ezt a makrót másold be:
Private Sub Worksheet_Change(ByVal Target As Range)
Sheets("Vízszintes").Cells(Target.Column, Target.Row) = Target.Value
End SubA másik lap a Vízszintes, ehhez ez a kód jön:
Private Sub Worksheet_Change(ByVal Target As Range)
Sheets("Függőleges").Cells(Target.Column, Target.Row) = Target.Value
End SubMakróbarátként kell mentened.
A Téma összefoglalóban megtalálod, hogyan kell a laphoz rendelni a makrókat. -
Delila_1
veterán
válasz
botond2225 #50885 üzenetére
-
Delila_1
veterán
válasz
botond2225 #50882 üzenetére
-
Delila_1
veterán
válasz
Lasersailing #50880 üzenetére
Szívesen.
-
Delila_1
veterán
válasz
Lasersailing #50878 üzenetére
Beszúrás, kiválasztasz egy alakzatot. Alakzat formázása, kitöltés, kép, ahol választhatsz, hogy 3 közül melyik helyről szeretnél képet csatolni.
Az alakzat formázásánál több dolgot is beállíthatsz. -
Delila_1
veterán
válasz
szürke #50855 üzenetére
Van rá mód, hogy a rövidítést bevíve azonnal a teljes neveket kapd meg. Ehhez az Automatikus javítás (Beállítások | Nyelvi ellenőrzés) Módosítandó szöveghez írd be a gj-t, a Jó szöveghez pedig a Gipsz Jakabot.
Egy időben sokszor kellett kb. 30 nevet leírnom, ezzel a módszerrel gyorsítottam a munkát.
Máskor a zöld/sárga vezeték ismétlődött egy több oldalas mérési jegyzőkönyvben, erre a zs rövidítést vittem be. Vigyázat! Ezt a jegyzőkönyvet átadtam másnak. Az illető kétségbeesve jött tanácsért, mert mikor be akart vinni egy nevet, Molnár Zsoltot – Molnár Zs formában – , az Excel átírta Molnár zöld/sárga vezeték-re.
Az ő gépén ki kellett törölnöm az általam megadott automatikus javításokat.
-
Delila_1
veterán
válasz
botond2225 #50788 üzenetére
Nézd meg ezt.
-
Delila_1
veterán
válasz
botond2225 #50786 üzenetére
Feltételes formázással is meg lehet oldani, egy halom oszlopot és képletet elhagyva.
-
Delila_1
veterán
válasz
pentium4 #50771 üzenetére
Nem jól használható a táblád mostani elrendezése. Oszloponként azonos jellegű adatokat érdemes bevinni, ne legyen 1 oszlopban váltakozva név, és termék.
A mintán egy beszúrt oszlopban van a név (minden sorban!). A G oszlopba átmásoltam az A neveit, majd az Ismétlődések eltávolítása funkciót alkalmaztam, így csak a táblában szereplő két név maradt.
H1-től L1-ig vannak a kategóriák. H2-be írtam a képletet, amit jobbra-, és lefelé másoltam.=SZUMHATÖBB($D:$D;$A:$A;$G2;$B:$B;H$1&"*")
-
Delila_1
veterán
válasz
botond2225 #50768 üzenetére
Próbáld ezt:
=HA(VAGY($Q77="nincs";ÉS(J77>0;$Q77=1));0;1)
-
Delila_1
veterán
válasz
unravel #50715 üzenetére
Javítom a hibát.
Sub Plusz_Masodperc()
Dim sor As Long, usor As Long
usor = Range("H" & Rows.Count).End(xlUp).Row
For sor = 2 To usor
Cells(sor, "H") = Format(Cells(sor, "H") + (Cells(sor, "K") / 24 / 3600), "dd.mm.yyyy hh:mm:ss")
Next
End SubZárójelbe kell tenni a másodpercek kiszámítását.
-
Delila_1
veterán
válasz
unravel #50715 üzenetére
Ha még nem kaptál volna választ, egy modulba másold az alábbi makrót.
Sub Plusz_Masodperc()
Dim sor As Long, usor As Long
usor = Range("H" & Rows.Count).End(xlUp).Row
For sor = 2 To usor
Cells(sor, "H") = Format(Cells(sor, "H") + Cells(sor, "K") / 24 / 3600, "dd.mm.yyyy hh:mm:ss")
Next
End Sub -
Delila_1
veterán
Makróval lehet csak megoldani, hogy az eddigi lista végére beírja az új értéket.
A beviteli cella C3, az eddigi sorozatszámok az F oszlopban vannak.
A makrót a laphoz kell rendelned (lásd a Téma összefoglalót).Private Sub Worksheet_Change(ByVal Target As Range)
Dim ide As Long
If Target.Address = "$C$3" Then
Application.EnableEvents = False
If Application.WorksheetFunction.CountIf(Range("F:F"), Target.Value) = 1 Then
Cells(3, 4) = "NOK": Cells(3, 4).Interior.Color = RGB(255, 0, 0)
Else
Cells(3, 4) = "OK": Cells(3, 4).Interior.Color = RGB(0, 176, 80)
ide = Range("F" & Rows.Count).End(xlUp).Row + 1
Cells(ide, 6) = Target: Cells(ide, 7) = Format(Now, "yyyy.mm.dd")
End If
Application.EnableEvents = True
End If
End Sub
Új hozzászólás Aktív témák
Hirdetés
- Csere-Beszámítás! RTX Számítógép játékra! I7 6700 / RTX 2060 6GB / 32GB DDR4 / 250SSD+500HDD
- Microsoft Surface Laptop 3 - 15 col - Fekete
- RÉSZLETRE , Bankmentes , kamatmentes Asus Rog Zephyrus G16
- DOKKOLÓ BAZÁR! Lenovo, HP, DELL és egyéb más dokkolók (TELJES SZETTEK)
- Samsung Galaxy A22 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged