- Telekom mobilszolgáltatások
- Milyen okostelefont vegyek?
- Huawei Watch 4 Pro - kívül-belül domborít
- One mobilszolgáltatások
- Milyen GPS-t vegyek?
- Fotók, videók mobillal
- Apple Watch
- Bemutatkozott a Poco X7 és X7 Pro
- Csak semmi szimmetria: flegma dizájnnal készül a Nothing Phone (3)
- Google Pixel 9a - a lapos munka
-
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
A kiegészítés, ha az összeg A1-ben szerepel:
=jobb("0000000000000"&A1;13)
Angolban:
=right("0000000000000"&A1;13)Ez összefűzi a halom nullát és a számot, majd veszi annak a jobboldali 13 karakterét. Ezután azonban nem lehet vele számolni, mert szövegként értelmezi.
Ha számolni is akarsz vele, a cellaformátumnál, az egyéni kategóriában kell megadnod:
000000000000# (12 db 0, és 1 db #). -
Delila_1
veterán
Sub szaznal_nagyobb()
For sor = 2 To 20 '20 helyett az utolsó sor kell
For oszlop = 2 To 7 '7 helyett az ucsó oszlop sorszáma (A=1, B=2, C=3)
If Cells(sor, oszlop).Value > 100 Then
Range(Cells(sor, 2), Cells(sor, oszlop)).Select
Selection.ClearContents
End If
Next
Next
End Sub -
Delila_1
veterán
Most látom, hogy teljesen félreértettem a feladatot.
Van egy táblázatod, ami A1-től ???-ig tart.
Ebben itt-ott vannak 100-nál nagyobb értékek. Ha ez először C5-ben fordul elő, akkor törölni kell az értékeket B5-től C5-ig (nem A5-től, mert A5-ben a sor neve van).
Így gondolod? -
Delila_1
veterán
=A1*(1+5%)
Ezt másold végig az adataid mellett.
Ha az értékeket fixre akarod venni (ne képlet legyen), akkor a növelt értékeket tartalmazó cellákat kijelölöd, másolod, és Szerkesztés/Irányított beillesztés/Értéket beilleszt – másik helyre, vagy az eredeti összegek helyére. -
Delila_1
veterán
A soradik (aktuális sor) 7. (G) oszlopában levő értéket, annak is a jobboldali 2 karakterét.
Ezt teszi be a nev változóba.
Azután az esetleges mínusz jel miatt tovább vizsgálja. Ha a két karakterből álló nev baloldali 1 karaktere – left(nev,1) – kettőspont, akkor a nev jobboldali 1 karakterét veszi alapul, egyébként pedig a teljes nev változót (pl. -1). -
Delila_1
veterán
Ha már Amanozas így megbízik bennem, itt a makró. (Igazad van Amazonas, körkörös hivatkozás lenne).
Sub mem()
Range("G1").Select
Selection.End(xlDown).Select
usor = Selection.Row
For sor = 1 To usor
nev = Right(Cells(sor, 7).Value, 2)
If Left(nev, 1) = ":" Then nev = Right(nev, 1)
Cells(sor, 7) = nev
Next
End Sub -
Delila_1
veterán
Másik módja az utolsó sor, ill. utolsó oszlop megkeresésének, arra az esetre, ha a lapon több, egymástól üres sorokkal, oszlopokkal elválasztott adataink vannak:
Kiválasztjuk egy olyan oszloponak az első celláját, amelyikben biztosan folyamatosan vannak az adatok, pl. A1.
Range("A1").Select
Selection.End(xlDown).Select ' ez azonos azzal, mint amikor Ctrl+le-nyilat nyomunk
usor = Selection.Row
Range("A1").Select
Selection.End(xlToRight).Select ' Ctrl+jobbra-nyílnak felel meg
uoszlop = Selection.ColumnHa biztos, hogy az alsó sorban minden oszlopban van adat, a második Range-re nincs szükség.
-
Delila_1
veterán
Igen, és az utolsó sor értékét a fölötte lévő sor adja.
Vigyázni kell arra, hogy ha voltak az aktív táblázat területén kívül eső cellákban valamikor értékek (most már törölve vannak - szépen magyarul), vagy most is vannak benne kósza adatok, akkor azokkal a címekkel számol a makró, és hamis értéket ad.
A makróba érdemes egy stoppot tenni a két érték bekérése után, és ellenőrizni. Ha többet mutat az usor és az uoszlop nevű változó a kelleténél, a felesleges sorokat és oszlopokat törölni kell. Nem a benne lévő adatot, hanem a teljes sort ill. oszlopot. -
Delila_1
veterán
Másold be az alábbi makrót:
Sub Atlag()
Sheets("Munka1").Select
usor = ActiveSheet.UsedRange.Rows.Count
uoszlop = ActiveSheet.UsedRange.Columns.Count
Sheets("Munka2").Select
For sor = 2 To usor
Cells(sor, 1).Select
ActiveCell.FormulaR1C1 = "=AVERAGE(Munka1!RC[" & uoszlop - 3 & _
"]:RC[" & uoszlop - 1 & "])"
Next
End SubA Munka1 lap 3 utolsó oszlopát átlagolja a Munka2 A oszlopába.
Ha B oszlopba kell az átlag, a Cells(sor,1)-et írd át Cells(sor,2)-re, és az ActiveCell.FormulaR1C1 kezdetű sorban az uoszlop-3 és uoszlop-1 értékeket is növeld eggyel (uoszlop-3 és uoszlop-2). -
Delila_1
veterán
A With sorban megadunk egy objektumot, amire a változtatások vonatkoznak. Jelen esetben a kijelölt terület (selection) hátterét (interior). A további sorok ponttal kezdődnek, amit úgy kell értelmezni, mintha a With sorban írtakat folytatnánk (With nélkül):
selection.interior.colorindex=15
selection.interior.pattern=xlsolid 'nincs mintázat
selection.interior.patterncolorindex=xlautomatic 'a mintázat színeA két utóbbi kitörölhető, mivel alapbeállítás, és akkor már nincs szükség a With, End With-ra sem.
Ezt a makrót most rögzítettem, a karakter típusát változtattam meg. '******-gal jelöltem, ami nem szükséges, törölhető.
With Selection.Font
.Name = "Tahoma"
.Size = 10 '******
.Strikethrough = False '******
.Superscript = False '******
.Subscript = False '******
.OutlineFont = False '******
.Shadow = False '******
.Underline = xlUnderlineStyleNone '******
.ColorIndex = xlAutomatic '******
End WithVégül ennyi marad: Selection.Font.Name = "Tahoma"
-
Delila_1
veterán
cells(x,25).select
selection.font.colorindex=színkód 'karater színe
selection.interior.colorindex=színkód 'háttér színeRögzítesz egy makrót, ahol megváltoztatod a karakter-, ill. a háttér színét. Onnan kimazsolázod azt, amire kiváncsi vagy.
Próba:For sor = 1 To 255
Cells(sor, 1).Select
Selection.Value = "Színkód=" & sor - 1
Selection.Font.ColorIndex = sor - 1
Cells(sor, 2).Select
Selection.Interior.ColorIndex = sor - 1
Next -
Delila_1
veterán
válasz
takyka77 #2997 üzenetére
Másold be az alábbi makrót. Minden nyitáskor az aktuális lapon zárolja az egy hetesnél régebbi sorokat, A-tól AD oszlopig. Ha több lapod van,a lapnév helyére írd be a védendő lapod nevét, ha csak egy, azt a sort töröld ki.
Sub auto_open()
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Sheets("Lapnév").Select
For sor = 1 To ActiveSheet.UsedRange.Rows.Count
If Cells(sor, 1) < Date - 6 Then
Range(Cells(sor, 1), Cells(sor, 30)).Select
Selection.Locked = True
End If
Next
ActiveSheet.Unprotect
End Sub -
Delila_1
veterán
válasz
Amazonas #2989 üzenetére
Inputboxban kérdezem le a másolandó lap nevét, mert az havonta változni fog.
Sub masol()
lapnev = InputBox("Melyik a lezárt hónap?", "Adatátvitel az új hónap lapjára", Default)
Sheets(lapnev).Select
sor = 2: sor_uj = 2
Do While Cells(sor, 1) <> ""
If Cells(sor, 24) = "" Then
Range(Cells(sor, 1), Cells(sor, 23)).Select
Selection.Copy
ActiveSheet.Next.Select
Cells(sor_uj, 1).Select
ActiveSheet.Paste
sor_uj = sor_uj + 1
ActiveSheet.Previous.Select
End If
sor = sor + 1
Loop
End Sub -
Delila_1
veterán
válasz
Amazonas #2982 üzenetére
Itt egy kis makró, ami a 0-val kezdődő sorokat kitörli. Ha megadod a két lapod nevét, és azt, hogy a januári lapon melyik oszlopban van az állapotot jelző adat, megírom az automatikus másolást.
Sub torles()
sor = 1
Do While Cells(sor, 1) <> ""
Cells(sor, 1).Select
If Cells(sor, 1) = 0 Then
Selection.EntireRow.Delete
Else
sor = sor + 1
End If
Loop
End Sub -
Delila_1
veterán
=INDIREKT(E2&"!"&G2&H2)+INDIREKT(F2&"!"&G2&H2)
ahol E2-ben van az első lapod neve (pl. '1)
F2-ben a második lap neve (pl. '2)
G2-ben az oszlop (pl. B)
H2-ben a sor (pl. 3)Az oszlop nevét idézőjelek között fixen is megadhatod, a sorét pedig anélkül, fixen.
=INDIREKT(E2&"!"&"B"&3)+INDIREKT(F2&"!"&"B"&3)
-
Delila_1
veterán
Itt megtalálod a personal.xls létrehozásának a menetét az 527-es hozzászólásnál.
Eszközök->Tools
Margókkal a fekvő lap:Sub Fekvo_lap()
With ActiveSheet.PageSetup
.LeftMargin = Application.InchesToPoints(0.196850393700787)
.RightMargin = Application.InchesToPoints(0.196850393700787)
.TopMargin = Application.InchesToPoints(0.196850393700787)
.BottomMargin = Application.InchesToPoints(0.196850393700787)
.HeaderMargin = Application.InchesToPoints(0.511811023622047)
.FooterMargin = Application.InchesToPoints(0.393700787401575)
.CenterHorizontally = True
.Orientation = xlLandscape
End With
End SubAmi makrót a personalba teszel, az minden füzetnél elérhető lesz.
A fejléc és lábléc magasságát a HeaderMarginnál és a FooterMarginnál állíthatod. -
Delila_1
veterán
Még azt tehetnéd meg, hogy a personal.xls-be beviszed az alábbi makrót, és kiteszel hozzá egy ikont az eszköztárra. A fekvő lap beállításán kívül a táblázatodat vízszintesen a margók között középre is helyezi. Ha az nem kell, az alsó makrót használd.
Sub Fekvo_lap()
With ActiveSheet.PageSetup
.CenterHorizontally = True
.Orientation = xlLandscape
End With
End SubSub Fekvo_lap()
ActiveSheet.PageSetup.Orientation = xlLandscape
End Sub -
Delila_1
veterán
Én az eszköztárra tettem egy ikont, ami a kérdéses színeket megadja.
Sub Szín_lekérdezés()
If Selection.Font.ColorIndex = -4105 Then
MsgBox "A karakter színkódja: " & Selection.Font.ColorIndex & " (automatikus)"
Else
MsgBox "A karakter színkódja: " & Selection.Font.ColorIndex & " "
End If
If Selection.Interior.ColorIndex = -4142 Then
MsgBox "A cella hátterének színkódja: " & Selection.Interior.ColorIndex & " (átlátszó)"
Else
MsgBox "A cella hátterének színkódja: " & Selection.Interior.ColorIndex & " "
End If
End SubA subrutint a personal.xls-be tettem.
A két feltételt nem is kell belevenni, azok csak arra jók, hogy a -4105 és -4142-es színkódot könnyebben lehessen értelmezni.
Neked kétfelé kell vágnod a userformon ezt a rutint. -
Delila_1
veterán
válasz
VANESSZA1 #2928 üzenetére
C2-be (ez adja a munkahelyen eltöltött időt):
=B2-A2D2-be rafináltabb képlet kell (vagy a 8 óránál kevesebb időt, vagy 8-tól 8:30-ig 8 órát ad, vagy 8:30 fölött a teljes bent töltött időt adja):
=HA(VAGY(ÉS(C2>IDŐ(8;0;0);C2<IDŐ(8;31;0));C2>=IDŐ(8;30;0));IDŐ(8;0;0);C2)E2-be (a túlórát mutatja 8:30 fölött):
=HA(B2-A2>IDŐ(8;30;0);B2-A2-IDŐ(8;0;0);"")Ne feledkezz meg az ebédidőről, ha azt le kell vonni.
-
Delila_1
veterán
válasz
VANESSZA1 #2928 üzenetére
gsc válaszát kicsit tovább fejlesztve:
"A" oszlopban a belépés, "B"-ben a kilépés.C2-be: =ha(b2-a2>idő(8;30;0);idő(8;0;0);b2-a2)
D2-be: =ha(b2-a2>idő(8;30;0);b2-a2-idő(8;0;0);"")Mindegyik oszlop cellaformátuma idő, 37:30:55
Valószínű, hogy az ebédidőt is le kell vonni a teljes időből.
-
Delila_1
veterán
Másik megoldás a másoláson kívül, hogy hivatkozol a többi lap celláira.
Az első lap első üres oszlopába: =Sheet2!A1
Ezt vízszintesen, és függőlegesen is másolod addig, amíg az adatok kívánják.
Következő üres oszlopba =Sheet3!A1
és így tovább. A feleslegessé vált lapok törlése előtt az újonnan behozott adatokat másold, és ugyanoda irányítottan, értékként illeszd be (Insert menü).Lehet, hogy gyorsabb a Ctrl+C. Még hasznosabb is, mert ha a lapokon képletek, függvények szerepeltek, akkor azok a fenti módszerrel elvesznek.
-
Delila_1
veterán
válasz
DoubleLayer #2892 üzenetére
Nem kellet volna egy óra. Az
=jobb(d12;hossz(d12)-5)megadta volna az irányítószám utáni részt.
Másik módszer:
=ha(közép(d2;6;8)="Budapest";valami;ellenkezője) -
Delila_1
veterán
válasz
DoubleLayer #2889 üzenetére
Szétcincálás nélkül:
=HA(HIBÁS(SZÖVEG.TALÁL("Budapest";D12;1));"nem Budapest";"Budapest")
-
-
Delila_1
veterán
válasz
qpakcovboy #2872 üzenetére
Régebben is segítettem neked, amire nem válaszoltál, ezt az utóbbi kérdést személyesen nekem tetted fel.
Elkészítettem amit kértél, elég sokat dolgoztam rajta.
Legkevesebb lenne, hogy közöld, nem felel meg a munkám az igényeidnek, vagy esetleg elrebegnél egy halk "köszönöm"-öt. -
Delila_1
veterán
válasz
qpakcovboy #2876 üzenetére
OK
-
Delila_1
veterán
válasz
qpakcovboy #2874 üzenetére
Skype-om van.
-
Delila_1
veterán
válasz
qpakcovboy #2872 üzenetére
Küldd már el a fájlt e-mail-ben, mert nem nagyon értem.
-
Delila_1
veterán
Mondták, igaz, akkor istennőt mondtak. Köszönöm. Itt a javított kiadás hibakezeléssel.
Sub Adatok()
utvonal = "E:\Eadat\"
sor = 2
Do While Cells(sor, 1) <> ""
fnev = Cells(sor, 1) & ".xls"
funev = utvonal & Cells(sor, 1)
On Error GoTo hiba
Workbooks.Open Filename:=funev
If tal = 0 Then
ActiveWindow.ActivatePrevious
Cells(sor, 2).Select
ActiveCell.Formula = "=INDIRECT(""[" & fnev & "]Munka1!B3"")"
Cells(sor, 3).Select
ActiveCell.Formula = "=INDIRECT(""[" & fnev & "]Munka1!C6"")"
Cells(sor, 4).Select
ActiveCell.Formula = "=SUM(INDIRECT(""[" & fnev & "]Munka1!E1:E7""))"
Range(Cells(sor, 2), Cells(sor, 4)).Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
ActiveWindow.ActivateNext
ActiveWindow.Close
Else
Cells(sor, 2) = "Nem létező file"
End If
tal = 0
sor = sor + 1
Loop
Exit Sub
hiba:
Err = 0
tal = 1
Resume Next
End Sub -
Delila_1
veterán
-
Delila_1
veterán
Szia!
Ezt a makrót vidd be a teszt.xls-edbe:Sub Adatok()
utvonal = "E:\Eadat\"
sor = 2
Do While Cells(sor, 1) <> ""
fnev = Cells(sor, 1) & ".xls"
funev = utvonal & Cells(sor, 1)
Workbooks.Open Filename:=funev
ActiveWindow.ActivatePrevious
Cells(sor, 2).Select
ActiveCell.Formula = "=INDIRECT(""[" & fnev & "]Munka1!B3"")"
Cells(sor, 3).Select
ActiveCell.Formula = "=INDIRECT(""[" & fnev & "]Munka1!C6"")"
Cells(sor, 4).Select
ActiveCell.Formula = "=SUM(INDIRECT(""[" & fnev & "]Munka1!E1:E7""))"
Range(Cells(sor, 2), Cells(sor, 4)).Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
ActiveWindow.ActivateNext
ActiveWindow.Close
sor = sor + 1
Loop
End SubA 2. sorban az útvonalat írd át a saját útvonaladra, és ha a füzeteknek nem a Munka1 lapjáról kell beolvasni az adatokat, írd át mind a 3 helyen azt is az ActiveCell.Formula kezdetű sorokban. Jó munkát.
-
-
Delila_1
veterán
válasz
student #2845 üzenetére
A súgóban keress rá az abszolút hivatkozásra.
"Az Excelben elvégzendő feladattól függően használhatunk relatív cellahivatkozást, amely a képlet helyzetéhez viszonyított cellahivatkozás, valamint abszolút hivatkozást, amely mindig adott helyen lévő cellákra történik. Ha egy betűt és/vagy számot dollárjel előz meg (például $A$1), az oszlop- és/vagy a cellahivatkozás abszolút. A relatív hivatkozás – ellentétben az abszolút hivatkozással – másoláskor automatikusan módosul."
-
Delila_1
veterán
-
Delila_1
veterán
válasz
Retekegér #2833 üzenetére
Az FKERES függvény 1. paraméterébe a keresett értéket írjuk be. Ez nálad a 2007 lapon az A2.
2. paraméter: a tábla, amiben a keresést végrehajtjuk. Itt a 2008 lapon
$A$2:$B$50.
3. paraméter: a tábla hányadik oszlopában keresse az egyezőséget. Az elsőben.
4. pm: a keresés módját határozza meg. a HAMIS azt jelenti, hogy a pontosan egyező értéket keresse. A súgóban megtalálod a többi leírását.A képlet, melyet a 2007 lap C oszlopába írtunk, így szól:
=HA(HIBÁS(FKERES(A2;'2008'!A2:$B$50;1;HAMIS));"";FKERES(A2;'2008'!A2:$B$50;2;HAMIS))
A Ha függvény első pm-e a kritérium. Jelen esetben, ha HIBÁS az FKERES (nincs olyan érték a 2008-as lapon, mint az A2), akkor a 2. pm szerint üres stringet ("") ír a cellába.
A 3. pm azt írja, mit tegyen, ha nem igaz az első feltétel. Ebben az esetben nem igaz, hogy nem talált, vagyis talált megfelelő értéket. Ekkor beírja 2008-as lap táblázatának 2. oszlopában talált értéket.Biztosan le lehet írni érthetőbben is, tőlem ennyi telik. Írd be, másold végig, és meglátod, működni fog. A $50 helyett adj legalább akkora számot, ahány sorod van a 2008 lapon.
-
Delila_1
veterán
válasz
Retekegér #2830 üzenetére
Az alábbi makró feltételezi, hogy a két lapod neve 2007, ill. 2008, valamint, hogy a termék neve mindkét lapon A2-ben, az ár B2-ben kezdődik.
Sub keres()
Sheets("2008").Select: Cells(1, 1).Select
Selection.End(xlDown).Select
sor_8a = Selection.Row
Sheets("2007").Select: Cells(1, 1).Select
Selection.End(xlDown).Select
sor_7a = Selection.Row
For sor_7 = 2 To sor_7a
termék = Cells(sor_7, 1)
For sor_8 = 2 To sor_8a
If Sheets("2008").Cells(sor_8, 1) = termék Then
Cells(sor_7, 3) = Sheets("2008").Cells(sor_8, 2)
End If
Next
Next
End SubMásold be, és futtasd.
-
Delila_1
veterán
válasz
toth_janika #2807 üzenetére
Szívesen.
-
Delila_1
veterán
válasz
toth_janika #2804 üzenetére
Az Y tengelynél a maximum 168, a lépték 16,8.
Új hozzászólás Aktív témák
Hirdetés
- Autós topik
- exHWSW - Értünk mindenhez IS
- Építő/felújító topik
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Luck Dragon: Asszociációs játék. :)
- Telekom mobilszolgáltatások
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- Philips LCD és LED TV-k
- alza vélemények - tapasztalatok
- Vezeték nélküli fejhallgatók
- További aktív témák...
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! Automatikus 0-24
- Antivírus szoftverek, VPN
- Eredeti Microsoft termékek - MEGA Akciók! Windows, Office Pro Plus, Project Pro, Visio Pro stb.
- Windows, Office licencek kedvező áron, egyenesen a Microsoft-tól - Automata kézbesítés utalással is!
- Számlás!Steam,EA,Epic és egyébb játékok Pc-re vagy XBox!
- DELL PowerEdge R630 rack szerver - 2xE5-2650v3 (20 mag / 40 szál, 2.3/3.0GHz), 32GB RAM, 55992Ft+ÁFA
- Honor Magic 7 Pro - Fekete - Új kipróbált készülék! Karcmentes gyárilag független! 512GB Memória!
- Telefon felvásárlás!! iPhone 16/iPhone 16 Plus/iPhone 16 Pro/iPhone 16 Pro Max
- Új Apple iPhone 16 Pro 128GB, Kártyafüggetlen, 3 Év Garanciával
- Apple iPhone 14 Pro Max / 256 GB / 88% akkumulátor / 1év Garanciával / Gyári Független
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged