Hirdetés
- bb0t: Ikea PAX gardrób és a pokol logisztikája
- GoodSpeed: A RAM-válság és annak lehetséges hatásai
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- Gurulunk, WAZE?!
- potyautas: A Magyar Néphadsereg emlékére
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- sziku69: Szólánc.
- bambano: Bambanő háza tája
- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
-
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
Fire/SOUL/CD
#52978
üzenetére
Valószínű, hogy telephelyenként több termék is van. Ezért fűztem össze a telephelyet és a terméket.
Igazad van, az E2 képlete legyen=HAHIBA(HOL.VAN(D2;$N$1:$N$13;0);""),
az F2 pedig=HAHIBA(HA(C2=MEDIÁN(C2;INDIREKT("K"&E2);INDIREKT("L"&E2));INDIREKT("M"&E2);"");""). -
Delila_1
veterán
válasz
PapírVilla
#52953
üzenetére
Ctrl+End-del megkapod az alsó sort, ahonnan felfelé töröhetsz. Ez úgy jöhetett létre, hogy valaki írt ebbe a sorba, majd kitörölte.
-
Delila_1
veterán
válasz
PapírVilla
#52951
üzenetére
Ha nem az eredeti sorok végére, hanem közé tette be, szűrj az üres sorokra, és törölj.
-
Delila_1
veterán
válasz
Dr. Mózes
#52949
üzenetére
Makróval lehet megoldani. A makrót a lapodhoz rendeld (lásd a Téma összefoglalóban).
Úgy írtam meg, hogy a mértékegységek a 2. oszlopban vannak, a mennyiségeket a harmadikba írod. AzIf Target.Column = 3 Thensorban kell átírnod a 3-at annak az oszlopnak a számára, ahova az értékeket írod.Private Sub Worksheet_Change(ByVal Target As Range)Dim szoveg As StringIf Target.Column = 3 Thenszoveg = "#,##0" & " """ & Cells(Target.Row, Target.Column - 1).Value & """"Cells(Target.Row, Target.Column).NumberFormat = szovegEnd IfEnd Sub -
Delila_1
veterán
válasz
gycs02
#52880
üzenetére
Nem tartom jó tippnek az elso értékét fixen megadni (elso=13), ugyanis közel sem biztos, hogy a 13. sor értéke megjelenik a szűrt állományban.
Ha a szűrt állomány első sorát keresed meg
(elso = Range("cj13:cj1000").SpecialCells(xlCellTypeVisible).Row), akkor nem kell ciklussal végigpásztázni az adatokat. A ciklus lassítja a futást. -
Delila_1
veterán
válasz
gycs02
#52875
üzenetére
Sub Lathatoba_x()Dim elso As Integer, utolso As Integerelso = Range("A13:A1000").SpecialCells(xlCellTypeVisible).Rowutolso = Range("A" & Rows.Count).End(xlUp).RowIf elso = utolso ThenRange("A" & elso) = "x"ElseRange("A" & elso & ":A" & utolso).SpecialCells(xlCellTypeVisible) = "x"End IfEnd SubSub masol()Dim elso As Integer, utolso As Integerelso = Range("A13:A1000").SpecialCells(xlCellTypeVisible).Rowutolso = Range("A" & Rows.Count).End(xlUp).RowIf elso = utolso ThenRange("A" & elso).Copy Sheets("Munka2").Range("A1")ElseRange("A13:A1000").SpecialCells(xlCellTypeVisible).Copy Sheets("Munka2").Range("A1")End IfEnd Sub -
Delila_1
veterán
válasz
gycs02
#52871
üzenetére
Szia!
Az „x” beírásához.
Az A oszlopba A2:A1000-ig írtam adatokat, majd szűrtem. A szűrt sorok mellé a B oszlopba íratok X-et.Sub Lathatoba_x()Dim elso As Integer, utolso As Integerelso = Range("A2:A1000").SpecialCells(xlCellTypeVisible).Rowutolso = Range("A" & Rows.Count).End(xlUp).RowRange("B" & elso & ":B" & utolso).SpecialCells(xlCellTypeVisible) = "x"End SubEz meg a szűrt tartomány másolása:
Sub masol()Dim elso As Integer, utolso As Integerelso = Range("A2:A1000").SpecialCells(xlCellTypeVisible).Rowutolso = Range("A" & Rows.Count).End(xlUp).RowRange("A2:A1000").SpecialCells(xlCellTypeVisible).Copy Sheets("Munka2").Range("A1")End Sub -
Delila_1
veterán
válasz
Man0gatya
#52814
üzenetére
Vegyük, hogy a lapjaid Munka1 és Munka2 névre hallgatnak, és mindegyiken az A oszlopban vannak az összehasonlítandó értékek.
A Munka1 A oszlopára a feltételes formázás képlete=DARABHA(Munka2!A:A;A1)=0,
a Munka2 lapon pedig=DARABHA(Munka1!A:A;A1)=0
Régebbi verziónál a DARABHA helyett DARABTELI a függvény neve. -
Delila_1
veterán
-
Delila_1
veterán
válasz
lanszelot
#52736
üzenetére
Ennyi az egész. Bekéred a szorzandó területet, amit vagy bepötyögsz, vagy egérrel kijelölöd, a többit elvégzi a makró. Hozzárendelheted egy gombhoz, ahogy már föccer is írta.
Ha állandó a terület, az inputbox helyett megadhatod direktben:Set Terulet = Range("A1:Z1")Sub Szozas()Dim Terulet As Range, CV As ObjectSet Terulet = Application.InputBox(prompt:="Kérem a szorzandó tartományt", Type:=8)For Each CV In TeruletCV.Value = CV.Value * Cells(1, 1)NextEnd Sub -
Delila_1
veterán
válasz
karlkani
#52701
üzenetére
Szia,
Indítás előtt kijelölheted a cellákat.Range("A2, B2:D8").Select, de lehet "gyalogosan" is.Sub Megjegyzes()Dim CV As ObjectFor Each CV In SelectionIf Not CV.Comment Is Nothing Then CV.Comment.DeleteCV.AddCommentCV.Comment.Text "megjegyzes"CV.Comment.Shape.TextFrame.Characters.Font.Bold = TrueCV.Comment.Shape.TextFrame.AutoSize = TrueNextEnd Sub -
Delila_1
veterán
-
Delila_1
veterán
válasz
JozsBiker
#52675
üzenetére
Ne a Szövegből oszlopok funkciót használd, hanem két képletet.
Vegyük, hogy a szöveged az A1 cellában van. A B1 képlete legyen =BAL(A1;5) – ha nem akarod a kettőspontot is ábrázolni, akkor =BAL(A1;4).
A C1 képlete =KÖZÉP(A1;6;25)&""
A üres string (dupla idézőjel) hozzáfűzése a számot szöveggé alakítja, ez a "trükk".
Ezután másolod a B és C oszlopokat (Ctrl+C), majd irányítottan, értékként beilleszted az A oszlopra. A C oszlopot, amiben ott maradtak a képletek, törölheted. -
Delila_1
veterán
válasz
föccer
#52657
üzenetére
Ezt találtam, de nem próbáltam:
Makróval törölt adatok visszaállítása
1. elmented a munkalap másolatát:
Dim sh As Worksheet, msh As Worksheet
Set sh = ActiveSheet
sh.Copy after:=Sheets(sh.Index)
Set msh=ActiveSheet
msh.Name="Mentett"
sh.Activate
ha nincs már szükség a mentett munkalapra, akkor
msh.Delete vagy Sheets("Mentett").Delete
2. ha vissza szeretnéd hozni:
Dim msh As Worksheet, sh As Worksheet
Set msh = Sheets("Mentett")
Set sh = ActiveSheet
msh.UsedRange.Copy sh.Range(msh.UsedRange.Cells(1).Address)
-
-
Delila_1
veterán
Rögzítettem egy makrót, ahol a Táblázat1 B oszlopában vannak a törlendő cellák (Field:=2, Adat címmel).
Szűri a 2 értékre, törli azokat, majd megszünteti a szűrést. Ilyen egyszerű.Sub Makró1()ActiveSheet.ListObjects("Táblázat1").Range.AutoFilter Field:=2, Criteria1:= _"=0", Operator:=xlOr, Criteria2:="=#HIÁNYZÓ"Range("Táblázat1[Adat]").ClearContentsActiveSheet.ListObjects("Táblázat1").Range.AutoFilter Field:=2Range("Táblázat1[#Headers]").SelectEnd Sub -
Delila_1
veterán
válasz
Lasersailing
#52602
üzenetére
Dátumként deklaráltad a datum-ot, majd szöveges értéket adtál neki.
-
Delila_1
veterán
válasz
Lasersailing
#52600
üzenetére
Szerencsére még nem töröltem ki a makrót.
Átalakítva:Sub Inditas()Dim sm As Integer, szoveg As StringFor sm = 1 To 4szoveg = Right(Cells(sm, 1), 4) & "." & Mid(Cells(sm, 1), 4, 2) & "." & Left(Cells(sm, 1), 2)Kiszallitasform.datumok.AddItem szovegNextKiszallitasform.ShowEnd Sub -
Delila_1
veterán
válasz
Lasersailing
#52598
üzenetére
Szia,
A feltöltés előtt átalakítom magyar dátumra az A1:A4 adatait.
Sub Inditas()Dim sm As IntegerFor sm = 1 To 4Cells(sm, 1) = Right(Cells(sm, 1), 4) & "." & Mid(Cells(sm, 1), 4, 2) & "." & Left(Cells(sm, 1), 2)Kiszallitasform.datumok.AddItem Sheets("sob").Cells(sm, 1)NextKiszallitasform.ShowEnd Sub -
Delila_1
veterán
válasz
arsenal1980
#52522
üzenetére
Sikerült összehozni, de eléggé összetett. Ha privátban megadod a címed, elküldöm a fájlt.
-
Delila_1
veterán
válasz
C$igu$sz
#52528
üzenetére
Rosszul írtam, a DARABHA függvény jó a napok megszámlálására. Egy új oszlopba:
=DARABHA(B$2:$B$15;B2)
A 15 helyett az utolsó sorod számát írd.Azt is megteheted, hogy a B oszlopot átmásolod egy új helyre, majd ezt kijelölve Adatok | Ismétlődések eltávolítása menüpontot hajtot végre. Ekkor minden dátumodból 1 darab jelenik meg, ennek a darabszámát keresheted meg a B oszlopban.
Én a J oszlopba másoltam, J2-től lefelé, a K2 képlete képlete=DARABHA(B:B;J2) -
Delila_1
veterán
válasz
karlkani
#52518
üzenetére
A formázandó tartomány $B$3:$G$379 (ápr.4-dec.31).
A próbához a MA() függvény helyére $J$1-et írtam a képletbe, így más dátummal is kipróbálhattam. Az időpontnál az ÓRA(MOST())>15 helyett ÓRA(MOST())>8 -t írtam.
A képlet=VAGY(ÉS($C3>=$J$1;HÉT.NAPJA($C3;2)<5;ÓRA(MOST())>8;DARABHA(Ünnep;$C3)=0);ÉS($C3>=$J$1;DARABHA(Munkanap;$C3)>0))
Az első kiszínesített sort kell figyelned, mert a többi, későbbi dátumost is kiszínezi, amelyik megfelel a feltételeknek.
Szín szerinti szűrés! -
Delila_1
veterán
-
Delila_1
veterán
Na és ez?
Az A1-ben szerepelhetne érvényesítésként a 15 pénznem.
Akkor át lehetne írni a makrót (csak a címét), hogy ne a lapaktiválására induljon, hanem az A1 módosítására.
A kezdősor Private Sub Worksheet_Change(ByVal Target As Range), és a feltétel
If target.address="$A$1" -
Delila_1
veterán
Na még egy próba.
Mikor a lapra lépsz, akkor indul. A makró a B oszlopot formázza, B2-től az utolsó adatig.
A laphoz kell rendelni.
Megjegyzem, továbbra is a címsorba írnám, nem a teljes oszlopba.Private Sub Worksheet_Activate()Dim ter As RangeSet ter = Range("B2:B" & Range("B2").End(xlDown).Row)ter.NumberFormat = "#,##0 [$" & Range("A1").Text & "]"End Sub -
Delila_1
veterán
-
Delila_1
veterán
válasz
föccer
#52428
üzenetére
Az A oszlopban vannak értékek, a B oszlopot formáztam, 2019-es verzió.
Talán túl friss az Exceled.
Sub Makró1()Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=$A1<20"Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriorityWith Selection.FormatConditions(1).Interior.PatternColorIndex = xlAutomatic.Color = 49407.TintAndShade = 0End WithSelection.FormatConditions(1).StopIfTrue = FalseEnd Sub -
Delila_1
veterán
válasz
benjoe1
#52406
üzenetére
Egy rövid makróval meg lehet oldani. Makróbarátként kell mentened a füzetet.
Az A10 helyett más cellába is adhatod az eredményt.Sub Kigyujtes()Dim sor As Integer, szoveg As Stringsor = 2Do While Cells(sor, 2) > ""If Cells(sor, 3) <> "" Then szoveg = szoveg & Cells(sor, 2) & ","sor = sor + 1LoopRange("A10") = Left(szoveg, Len(szoveg) - 1)End Sub -
Delila_1
veterán
válasz
andreas49
#52400
üzenetére
Az eredeti füzetedben. Az első Evszam az A1 (vagy címsor esetén A2).
Kijelölöd a Match függvénnyel másolandó sorokat, Ctrl+C, átlépsz a megnyitott másik füzetbe, ott is az Evszam lapra, A1-be, és beilleszted.
Nyomás vissza az eredeti füzetbe, kikeresed a következő évszám sorát (match;1)+1, az értéket beteszed az Evszam változóba. Innen ez lesz a másolandó tartomány kezdő sora, az utolsót kikeresed az új évszámot megadva match,1-gyel. -
Delila_1
veterán
válasz
andreas49
#52394
üzenetére
Megnyitod az első nagy fájlt. Felveszel egy változót a füzet nevével.
Rendezed a tartományt az évszám szerint. Evszam változót veszel fel. Az első évszám az oszlopban.
Kijelölöd a másolandó tartományt –első sor=Match(Evszam, columns(1),0) , utolsó sor= Match(Evszam, columns(1),1).
Innen lesz az ismétlés
Megnyitod a füzetet, ahova másolni akarod külön lapokra az évszám szerinti adatokat. Ellenőrzöd, hogy van-e már Evszam nevű lap.
Dim WS As Workbook, Evszam As String
Evszam = "2024" ’az oszlopban lévő első évszám
On Error Resume Next
Set WS = Sheets(Evszam)
If Err.Number = 9 Then
Sheets.Add.Name = Evszam
Else
Sheets(Evszam).Select
End If
On Error GoTo 0
Kikeresed az első üres sort, beilleszted a tartományt.
Eddig
Vissza az első nagy fájlba, megadod a következő évszámot – ennek asora=range(„A” & Match(Evszam, columns(1),1)+1. Ezt az értéket adod meg új évszámként.Vajh' mennyire követhető ez?
-
Delila_1
veterán
Kijelölöd a tartományt. A példámban ez a tartomány az
A1:A1000.
Feltételes formázás, Új szabály, A formázandó cellák kijelölése képlettel (kicsit lüke meghatározás, kijelölés helyett meghatározást írtam volna). A képletet Az értékek formázása, ha ez a képlet igaz rovatba írd be, majd add meg a formátumot, például egy feltűnő kitöltést. -
Delila_1
veterán
válasz
the radish
#52372
üzenetére
Range("A1:A30000") = Left(Range("A1"), 5) -
Delila_1
veterán
Lépj az FX2 cellába (feltételezem, hogy az első címsor, a 2. sorban kezdődnek az adatok). Az FX2-be jön a képlet:
=HOSSZ(FW2).
Ezt a képletet lemásolod végig az FX oszlopba. Legegyszerűbben úgy, hogy az FX2 cellán állva a cella jobb alsó sarkában megjelenő kis négyzetre mutatsz – ekkor a kurzor kereszt alakú lesz –, duplaklikkre már végig is másoltad az összes sorodra a függvényt, ameddig van adatod az FW oszlopban. -
Delila_1
veterán
válasz
Morphy
#52270
üzenetére
Próbáld így:
Private Sub Worksheet_Change(ByVal Target As Range)If Target.Address = "$G$1" Then kereses Target.ValueEnd SubSub kereses(keres)If keres = "" ThenActiveSheet.ListObjects("adatbazis").Range.AutoFilter Field:=41ElseActiveSheet.ListObjects("adatbazis").Range.AutoFilter Field:=41, Criteria1:=keresEnd IfEnd Sub -
Delila_1
veterán
Sub Torles()Dim ter As Range, vSet ter = Application.InputBox(prompt:="Add meg a területet", Type:=8)v = MsgBox("Bizti?", vbYesNo, "Kérdés")If v <> 7 Then Range(ter.Address).ClearContentsEnd Sub
Közben már megírtam a makrót.Sub Torles_1()Dim ter As Range, vSet ter = Range("B10:D12")v = MsgBox("Bizti?", vbYesNo, "Kérdés")If v <> 7 Then Range(ter.Address).ClearContentsEnd SubA Set sorban a saját törlendő területet add meg!
-
-
Delila_1
veterán
Módosítottam a makrón. Mint írtam, nem szükséges a D oszlop, ami a két dátum között eltelt napokat számolja.
Sub Masolas()Dim sor As Integer, ide As IntegerSheets("Munka2").Columns("A:D").ClearContentsRange("A1:C1").Copy Sheets("Munka2").Cells(1) 'címsor másolásaSheets("Munka1").Selectide = 2: sor = 2Do While Cells(sor, 1) > ""If Cells(sor, 3) - Cells(sor, 2) >= 360 ThenRows(sor).Copy Sheets("Munka2").Range("A" & ide)Rows(sor).EntireRow.Deleteide = ide + 1: sor = sor - 1End Ifsor = sor + 1LoopEnd SubA Munka1 lapon az első sort magasabbra vettem, hogy rendesen elférjen a frissítő gomb. Ez egy alakzat (lekerekített sarkú téglalap, de lehet bármi más is), ehhez rendeltem a Masolas makrót.
Eredeti Munka1 lap:
A makró indítása után:
-
Delila_1
veterán
Egy másik módszer (nem kell hozzá segédoszlop).
Sub Masolas()Dim sor As Integer, usor As Integer, ide As IntegerSheets("Munka1").SelectRows(1).Copy Sheets("Munka2").Cells(1) 'címsor másolásausor = Range("A" & Rows.Count).End(xlUp).Rowide = 2For sor = 2 To usorIf Cells(sor, 3) - Cells(sor, 2) >= 360 ThenRows(sor).Copy Sheets("Munka2").Range("A" & ide)ide = ide + 1Rows(sor).EntireRow.DeleteEnd IfNextEnd Sub
Új hozzászólás Aktív témák
- Milyen CPU léghűtést vegyek?
- NVIDIA GeForce RTX 3060 Ti / 3070 / 3070 Ti (GA104)
- Elektromos autók - motorok
- Azonnali informatikai kérdések órája
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- bb0t: Ikea PAX gardrób és a pokol logisztikája
- Mégis összejöhet az Apple és az Intel összeborulása?
- Milyen billentyűzetet vegyek?
- Milyen okostelefont vegyek?
- Spórolós topik
- További aktív témák...
- Bontatlan iPhone 17 Pro (256 GB) (rendelhető)
- HIBÁTLAN iPhone 13 mini 128GB Pink -1 ÉV GARANCIA -Kártyafüggetlen, MS3844, 100% Akkumulátor
- LG 32UN880K - 32" IPS ERGO / 4K UHD / 60Hz 5ms / DisplayHDR 400 / USB Type-C / AMD FreeSync
- Xiaomi Mi 10T Pro 256GB, Kártyafüggetlen, 1 Év Garanciával
- BESZÁMÍTÁS! ASUS H510M i5 10400F 16GB DDR4 512GB SSD RTX 2080 Super 8GB Zalman T4 PLUS FSP 700W
Állásajánlatok
Cég: BroadBit Hungary Kft.
Város: Budakeszi
Cég: ATW Internet Kft.
Város: Budapest


