- A sógorokhoz érkezik a kompakt Vivo X200 FE
- iPhone topik
- 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?
- Honor 400 Pro - gép a képben
-
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
Fire/SOUL/CD #52981 üzenetére
Na ezeknek a kérdéseknek a megválaszolásához szükségeltetik a kérdező által feldobott tábla. Van elképzelésem a két tábla adatairól, de az eredeti kellene. Addig csak hiába dolgozunk a feladaton.
-
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 Then
sorban 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 String
If Target.Column = 3 Then
szoveg = "#,##0" & " """ & Cells(Target.Row, Target.Column - 1).Value & """"
Cells(Target.Row, Target.Column).NumberFormat = szoveg
End If
End 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 Integer
elso = Range("A13:A1000").SpecialCells(xlCellTypeVisible).Row
utolso = Range("A" & Rows.Count).End(xlUp).Row
If elso = utolso Then
Range("A" & elso) = "x"
Else
Range("A" & elso & ":A" & utolso).SpecialCells(xlCellTypeVisible) = "x"
End If
End Sub
Sub masol()
Dim elso As Integer, utolso As Integer
elso = Range("A13:A1000").SpecialCells(xlCellTypeVisible).Row
utolso = Range("A" & Rows.Count).End(xlUp).Row
If elso = utolso Then
Range("A" & elso).Copy Sheets("Munka2").Range("A1")
Else
Range("A13:A1000").SpecialCells(xlCellTypeVisible).Copy Sheets("Munka2").Range("A1")
End If
End 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 Integer
elso = Range("A2:A1000").SpecialCells(xlCellTypeVisible).Row
utolso = Range("A" & Rows.Count).End(xlUp).Row
Range("B" & elso & ":B" & utolso).SpecialCells(xlCellTypeVisible) = "x"
End Sub
Ez meg a szűrt tartomány másolása:
Sub masol()
Dim elso As Integer, utolso As Integer
elso = Range("A2:A1000").SpecialCells(xlCellTypeVisible).Row
utolso = Range("A" & Rows.Count).End(xlUp).Row
Range("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 Object
Set Terulet = Application.InputBox(prompt:="Kérem a szorzandó tartományt", Type:=8)
For Each CV In Terulet
CV.Value = CV.Value * Cells(1, 1)
Next
End 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 Object
For Each CV In Selection
If Not CV.Comment Is Nothing Then CV.Comment.Delete
CV.AddComment
CV.Comment.Text "megjegyzes"
CV.Comment.Shape.TextFrame.Characters.Font.Bold = True
CV.Comment.Shape.TextFrame.AutoSize = True
Next
End 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]").ClearContents
ActiveSheet.ListObjects("Táblázat1").Range.AutoFilter Field:=2
Range("Táblázat1[#Headers]").Select
End 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 String
For sm = 1 To 4
szoveg = Right(Cells(sm, 1), 4) & "." & Mid(Cells(sm, 1), 4, 2) & "." & Left(Cells(sm, 1), 2)
Kiszallitasform.datumok.AddItem szoveg
Next
Kiszallitasform.Show
End 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 Integer
For sm = 1 To 4
Cells(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)
Next
Kiszallitasform.Show
End Su
b -
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 Range
Set 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).SetFirstPriority
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 49407
.TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False
End 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 String
sor = 2
Do While Cells(sor, 2) > ""
If Cells(sor, 3) <> "" Then szoveg = szoveg & Cells(sor, 2) & ","
sor = sor + 1
Loop
Range("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.Value
End Sub
Sub kereses(keres)
If keres = "" Then
ActiveSheet.ListObjects("adatbazis").Range.AutoFilter Field:=41
Else
ActiveSheet.ListObjects("adatbazis").Range.AutoFilter Field:=41, Criteria1:=keres
End If
End Sub
-
Delila_1
veterán
Sub Torles()
Dim ter As Range, v
Set 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).ClearContents
End Sub
Közben már megírtam a makrót.Sub Torles_1()
Dim ter As Range, v
Set ter = Range("B10:D12")
v = MsgBox("Bizti?", vbYesNo, "Kérdés")
If v <> 7 Then Range(ter.Address).ClearContents
End Sub
A 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 Integer
Sheets("Munka2").Columns("A:D").ClearContents
Range("A1:C1").Copy Sheets("Munka2").Cells(1) 'címsor másolása
Sheets("Munka1").Select
ide = 2: sor = 2
Do While Cells(sor, 1) > ""
If Cells(sor, 3) - Cells(sor, 2) >= 360 Then
Rows(sor).Copy Sheets("Munka2").Range("A" & ide)
Rows(sor).EntireRow.Delete
ide = ide + 1: sor = sor - 1
End If
sor = sor + 1
Loop
End Sub
A 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 Integer
Sheets("Munka1").Select
Rows(1).Copy Sheets("Munka2").Cells(1) 'címsor másolása
usor = Range("A" & Rows.Count).End(xlUp).Row
ide = 2
For sor = 2 To usor
If Cells(sor, 3) - Cells(sor, 2) >= 360 Then
Rows(sor).Copy Sheets("Munka2").Range("A" & ide)
ide = ide + 1
Rows(sor).EntireRow.Delete
End If
Next
End Sub
Új hozzászólás Aktív témák
Hirdetés
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! Automatikus 0-24
- Microsoft licencek KIVÉTELES ÁRON AZONNAL - UTALÁSSAL IS AUTOMATIKUS KÉZBESÍTÉS - Windows és Office
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! Automatikus 0-24
- Adobe Előfizetések - Adobe Creative Cloud All Apps - 12 Hónap - NYÁRI AKCIÓ!
- Számlás!Steam,EA,Epic és egyébb játékok Pc-re vagy XBox!
- Honor Magic6 Lite 256GB, Kártyafüggetlen, 1 Év Garanciával
- BESZÁMÍTÁS! 32GB (2x16) G.Skill Trident Z RGB 6600MHz DDR5 memória garanciával hibátlan működéssel
- Eredeti DELL 240W töltők (LA240PM160)
- IKEA (HAVREHOJ) tablet vagy laptop tartó
- AKCIÓ! MSI Z790 i5 14600KF 64GB DDR5 512GB SSD RTX 3070 8GB Rampage SHIVA Enermax 750W
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: CAMERA-PRO Hungary Kft
Város: Budapest