- Samsung Galaxy Watch4 és Watch4 Classic - próbawearzió
- Hatalmas teleppel futott be a Xiaomi Mix Flip 2
- Xiaomi 15 Ultra akku probléma?
- Milyen GPS-t vegyek?
- iPhone topik
- Samsung Galaxy Watch7 - kötelező kör
- One mobilszolgáltatások
- Redmi Note 13 Pro+ - a fejlődés íve
- Külföldi SIM-ek itthon
- Mobil flották
-
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
ildikol #21513 üzenetére
Az első makrót a laphoz rendeld. Gondolom, akkor kell másolni a sort, ha egyrészt a P oszlopban egy bizonyos érték van, másrészt ha a sor ki van töltve a P-ig. Az eseménykezelő makró ezeket a feltételeket figyeli.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 16 Then 'P oszlopba írtál
Application.EnableEvents = False
Cells(Target.Row, "Q") = Time 'aktuális idő beírása
Application.EnableEvents = True
If Cells(Target.Row, "P") = "Ezt kell másolni" Then 'ezt a szöveget írd át
Masol Target.Row 'Masol makró meghívása, az aktuális sor értékének átadásával
Else
Application.CutCopyMode = False
End If
End If
End SubA második makró, ami a másolást végzi, modulba kerüljön. Azért van szükség 2 makróra, mert a laphoz rendelt csak a saját lapján tud intézkedni, de a változó(ka)t, mint most az aktuális sor számát, át tudja adni a másiknak, ami végrehajtja a másolást.
Nálam a Munka1 lapra írok, a Munka2-re másol a makró. Ezeket írd át a saját lapjaid nevére.Sub Masol(sor)
Dim usor As Long
usor = Application.CountA(Sheets("Munka2").Columns(1)) + 1
Sheets("Munka1").Rows(sor).Copy Sheets("Munka2").Cells(usor, 1)
Application.CutCopyMode = False
End Sub -
Delila_1
veterán
-
Delila_1
veterán
válasz
zsambek #21501 üzenetére
A jelszó első karaktere a jelentkező vezetéknevének első karaktere, második karaktere pedig utónevének első karaktere.
Vegyük, hogy a név az A2 cellában van. A Vkezdő képlete =BAL(A2;1),
az Ukezdőé =KÖZÉP(A2;SZÖVEG.KERES(" ";A2)+1;1)A Hanyadik a HOL.VAN függvénnyel kereshető ki – ne feledkezz meg az esetleges címsorról sem, ha a függvényed az A oszlopban keres, ebben az esetben le kell vonni belőle 1-et.
A többit biztosan kitalálod, azokhoz kellene a txt fájl.
-
Delila_1
veterán
válasz
littleNorbi #21494 üzenetére
Vegyük, hogy a Munka1 lapon van a hosszabb-, és a Munka2-n a rövidebb névsorod, mindegyiken az A oszlopban, és mindkét lapon van címsor.
A Munka1 B2 cellájának képlete =DARABTELI(Munka2!A:A;A2)
Ez nullánál nagyobb értéket ad, ha a név szerepel a Munka2 lapon, és nullát, ha nem.
Autoszűrővel kiszűröd a nullánál nagyobb értéket tartalmazó sorokat, és az összeset törlöd. -
Delila_1
veterán
válasz
macilaci78 #21485 üzenetére
A címsoron állva bekapcsolod az autoszűrőt, pontosan erre találták ki.
Kezdőlap | Szerkesztés | Rendezés és szűrés | Szűrő. -
Delila_1
veterán
válasz
alfa20 #21404 üzenetére
Szívesen.
Még egy apró tanács: a kulcsszavakat - for, next, do, loop, if, then, else, case, exit, open, stb. - érdemes kisbetűkkel írni, a makró szerkesztő átírja nagyra, amit kell. Ha látod, hogy kisbetűs maradt egy kulcsszó, azonnal tudhatod, hogy elütöttél egy billentyűt.
Majdnem minden kulcsszóra igaz, néhányat kisbetűkkel is elfogad.Ilyen például az
ActiveSheet.Protect userinterfaceonly:=TrueA fenti sor makróból engedélyezi a védelemmel ellátott lapon a zárolt cellákba történő írást.
-
Delila_1
veterán
válasz
alfa20 #21402 üzenetére
A Select Case sorban adod meg, hogy mit figyeljen. Mivel előtte már az L1 változóba beadtad a Cells(a,1) értéket, itt a sort így is írhatod:
Select Case L1
A Case sorokban már nem kell megadni az L1-re történő hivatkozást, mert azt már tudja. Elég a
Case >L1 (és itt automatikusan átíródik a sor Case Is >L1 -re)A helyfoglalásnál minden változóhoz meg kell adni a típust, ennek hiányában Variant-nak veszi, és nagyobb helyet foglal le a memóriában.
A With - End With párost akkor szokás alkalmazni, mikor a With sorban meghatározott objektumra több paramétert adunk meg. 1 paraméternél, mint most a szín megadásánál, felesleges.
A Select utasítást is kerüljük, ha lehet, mert lassítja a futást, anélkül is lehet hivatkozni egy cellára, sorra, bármire.
Ezeknek megfelelően átírtam a makrót.
Sub szelekt1()
Dim c As Integer, i As Integer, a As Integer
Dim L1 As Integer, L2 As Integer
c = 4
For i = 1 To 5
Cells(i, 1) = i
Cells(i, 2) = i + c
c = c - 2
Next
For a = 1 To i - 1
L1 = Cells(a, 1)
L2 = Cells(a, 2)
Select Case L1
Case Is > L2
Cells(a, 1).Interior.Color = 65535
Case Is < L2
Cells(a, 1).Interior.Color = 5287936
End Select
Next
End Sub -
Delila_1
veterán
válasz
PindurAnna #21400 üzenetére
Szívesen.
-
Delila_1
veterán
válasz
PindurAnna #21395 üzenetére
Címsort feltételezve a 2. sorban kezdjük a képletet. Ha az AT oszlop üres, akkor az AT2-be, ha nem, az első üres oszlopba írd be:
=HA(VAGY(N2=AA2;N2=AJ2;N2=AS2);1;0)
Ezt lemásolva azokban a sorokban, ahol a 3 jelzett oszlop valamelyike megegyezik a N oszlop értékével, 1 lesz az eredmény, a többiben nulla.
Most már csak szűrnöd kell a képletet tartalmazó oszlopot 1-re, és törölheted a sorokat.
-
Delila_1
veterán
válasz
nebulo0128 #21374 üzenetére
Mikor megnyitottad a több fájlt az új ablak menüben, egyenként lecsukhatod kis méretűre, és ebből az ikon állapotból azt nyitod fel az eredeti méretre, amelyiket éppen használni akarod.
-
Delila_1
veterán
válasz
nebulo0128 #21372 üzenetére
Nézet menü, Új ablak, Elrendezés.
-
Delila_1
veterán
válasz
ritterkrisz #21370 üzenetére
A h2 cella képlete =fkeres(g2;b:d;3;0), ezt kell lemásolnod a h oszlopban.
-
Delila_1
veterán
válasz
macilaci78 #21351 üzenetére
-
Delila_1
veterán
válasz
macilaci78 #21349 üzenetére
=HA(SZÁM(E8);KEREKÍTÉS((E8*I5*I6+2000)/500;0)*500;"")
-
Delila_1
veterán
Nem értem, miért akarod külön modulokban futtatni a makrókat. Mikor egy párbeszéd elemen duplán klikkelsz, létrejön a hozzá tartozó makró első, és utolsó sora. A form modullapján az elemek neve szerinti abc rendben helyezkednek el a makrók. A legördülőből (kép) könnyen kiválaszthatod, amire szükséged van, azzal a kiválasztott elem makrójára ugrasz.
A form és a makrók között is könnyedén válthatsz a bal oldali 2 ikonnal.
Ha mégis mindenképp külön modulokban helyeznéd el a makróidat, a meghívásuk (a Meghívom nevű makrót hívod meg):
Meghívom CheckBox_All, CheckBox_Yes, CheckBox_No
A hívott makró paramétereit meg kell adnod:
Private Sub Meghívom(CheckBox_All, CheckBox_Yes, CheckBox_No)
End SubAz elemek sorrendje egyezzen meg a két helyen.
Szívesen megnézném a fájlodat. -
Delila_1
veterán
-
Delila_1
veterán
válasz
bandus #21323 üzenetére
Szia!
Nyiss meg egy almappát pl. a Total Commanderben. Látod, hogy az első tétel [..]. Ha erre kattintasz, a szülő (eggyel fentebbi) mappába jutsz. A TC nem jeleníti meg a [.]-ot, de ha látszana, azt választva egyenesen a főkönyvtárba jutnál bármelyik almappából. Mikor megnyitjuk a mappát, első lépésben a [.]-ra, majd a [..]-ra áll. Ezek nem fájlok, nem lehet őket megnyitni, ezért kell az IF, hibakezelésként.
Ha lépésenként futtatod a makrót (F8), az FN = Dir(utvonal & "*.xls", vbNormal)
sor végrehajtása után vidd a kurzort az FN változó fölé. Láthatod, hogy a mappában lévő első fájlod nevét tartalmazza. A fenti sor a Do – Loop ciklus előtt van. A ciklus végén be kell olvastatni a következő fájl nevét, ezt végzi az FN = Dir(). Ezt is lekérdezheted, az FN fölé mutatva, a soron következő fájl nevét tartalmazza.A ciklus befejező sora Loop Until FN = "". Ez azt mondja, hogy addig folytatódjon a ciklus, amíg az FN (nálam a fájlnévre alkalmazott változó neve) tartalmaz valamit, nem egyenlő üres stringgel.
-
Delila_1
veterán
válasz
glocker #21305 üzenetére
Időnként bosszantóan önállóskodik az Excel. A fejlesztők arra törekedtek, hogy maximális mértékben kiszolgálják a felhasználókat. Ezt persze nem lehet végrehajtani, hiszen mindenki a saját céljaira akarja használni a programot. Nálad valamiért szöveg formátumra átíráskor a cella. Meg kell adnod az általános cellaformátumot, majd beírnod az új képletet. Nem vagyok biztos benne, hogy ettől megjavul ez a hiba.
Tagolásnál a legkisebb egységgel kezdj, ezek az azonos hónap adatait tartalmazó sorok. Az első kép szerint kijelölöd a sorokat, majd csoportba foglalod (egyenként minden hónapnál). Látod, a hónap nevét nem vettem bele a kijelölésbe.
Következő lépés az első félév csoportosítása, ami a 4 – 20. sorig tart. Utoljára a 3 – utolsó, adatot tartalmazó sorok csoportosítása következik a teljes évhez.
Szerk.: nem gondoltam, hogy ilyen nagyok lesznek a képek.
-
Delila_1
veterán
válasz
bteebi #21292 üzenetére
A Select Case utasítás a többirányú, tetszőleges számú elágazásokat teszi lehetővé az összetett, egymásba ágyazott If feltételek helyett, átláthatóbban.
Pontosan kell meghatároznod az értékeket.
Sub forma()
Select Case Sheets("Adatok").Range("B17")
Case 0.0011 To 0.0099
Selection.NumberFormat = "0.00000"
Case 0.011 To 0.099
Selection.NumberFormat = "0.0000"
' Case ...
' ...
End Select
End SubA feltételes formázás színét nem lehet alapul venni, mert akár teljesül a feltétel, akár nem, a szín lekérdezése a cella alapbeállításának megfelelő színkódot adja.
-
Delila_1
veterán
Szép hosszú képlet adja meg az értéket.
=HA(HÓNAP(MA())>=HÓNAP(A1);(ÉV(MA())-ÉV(A1))*12+HÓNAP(MA())-HÓNAP(A1);12-HÓNAP(A1)+(ÉV(MA())-1-ÉV(A1))*12+HÓNAP(MA()))
Az A1 tartalmazza az eszköz beszerzési idejét. Ez a cella dátumot tartalmazzon, a formátum lehet éééé.hh, hogy a napot ne mutassa.
Az eredmény (képlet) formátuma szám, vagy általános lehet. -
Delila_1
veterán
válasz
Esterka #21259 üzenetére
Sikerült összehozni a véletlen helyeket.
A makró szazalek = 14.8 sorában a 14.8 helyett beírod azt a számot, ahány százalékban legyen 1-es a kijelölésedben. Tizedes törtet is írhatsz, tizedes ponttal, mint most.
Kijelölöd a tartományt, és indítod a makrót.
Sub XEgy()
Dim Cellaszam As Long, sor As Long, oszlop As Long, Db As Long
Dim CV, szazalek As Single
Selection = ""
Cellaszam = Selection.Cells.Count
sor = Selection.Rows.Count
oszlop = Selection.Columns.Count
szazalek = 14.8
Db = 1
Do While Db <= Round(szazalek * Cellaszam / 100, 0)
sor = Int(Selection.Rows.Count * Rnd) + 1
oszlop = Int(Selection.Columns.Count * Rnd) + 1
If Selection(sor, oszlop) <> 1 Then
Selection(sor, oszlop) = 1
Db = Db + 1
End If
Loop
For Each CV In Selection
If CV <> 1 Then Range(CV.Address) = 0
Next
End Sub -
Delila_1
veterán
válasz
Esterka #21259 üzenetére
A makró beírja a kijelölt területre a nullákat, majd az egyeseket. Azt majd valaki kitalálja, hogyan legyen ebből véletlenszerű elrendezés.
Sub Nulla_Egy()
sorok = Selection.Rows.Count
oszlopok = Selection.Columns.Count
ter = sorok * oszlopok
egyDb = Round(ter / 100 * 12, 0)
nullaDb = ter - egyDb
For Each CV In Selection
Range(CV.Address) = 0
Db = Db + 1
If Db >= nullaDb Then Exit For
Next
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection = 1
End Sub -
Delila_1
veterán
válasz
benkez #21253 üzenetére
Az első kérdésedre (P oszlopba 1 dátum) írtam egy makrót, amit a lapodhoz kell rendelned.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 16 Then
Cells(Target.Row, Application.Match(Target, Rows(11), 0)).Activate
End If
End SubMiért OFFban írsz? Ide tartozik a kérdésed, a szürke karakterek rosszul olvashatóak.
A 11. sorban dátumok legyenek, a cellaformátum n.
A T10 cella képlete: =HÓNAP(T11)
-
Delila_1
veterán
válasz
user112 #21248 üzenetére
A Munka1 lapon elvégzi a makró a kigyűjtést a K oszloptól kezdődően, majd a kigyűjtött tatrományt áthelyezi a Munka2 lap A2 cellájától kezdve. A Munka2 lap címsorát egyszer kell beírni.
A makróban többször szerepel a két lap neve, ezeket írd át a saját lapjaid nevére.
Sub valami()
Dim sor As Long, usor As Long, ertek As String, jel As String
Dim sor1 As Long
Sheets("Munka1").Select
usor = Range("A" & Rows.Count).End(xlUp).Row
'A oszlop adatainak másolása az K oszlopba
Range("A2:A" & usor).Copy Range("K1")
'Ismétlődések eltávolítása a K oszlopból
ActiveSheet.Range("$K$1:$K$" & usor - 1).RemoveDuplicates Columns:=1, Header:=xlNo
For sor = 2 To usor
ertek = Cells(sor, "A")
jel = Cells(sor, "F")
sor1 = Application.WorksheetFunction.Match(ertek, Columns(11), 0)
Cells(sor1, Cells(sor1, Columns.Count).End(xlToLeft).Column + 1) = jel
Next
'Munka2 lapon előző adatok törlése
Sheets("Munka2").Range("A2:Z5000") = ""
'Kigyűjtött adatok kivágása és másolása a Munka2 lap A2 cellájába
Range("K1").Select
Selection.CurrentRegion.Cut Sheets("Munka2").Range("A2")
Sheets("Munka2").Activate
End Sub -
Delila_1
veterán
válasz
Gandalf80 #21244 üzenetére
Előfordulhat, hogy a megkezdett műszakot másnap fejezi be valaki. Ennek megfelelően kibővítettem a táblázatot.
C és D oszlop képlete marad, ahogy volt,E2 –> =HA(HOSSZ(D2)=0;"";INDIREKT("A"&HOL.VAN(D2;C:C;0)))
F2 –> =HA(HOSSZ(D2)=0;"";INDIREKT("A"&HOL.VAN(D2;D:D;0)))G2 képlete látszik a képen.
Kissé valószínűtlenek az adatok, pl. az 502-es azonosítójú embernél.
-
Delila_1
veterán
válasz
user112 #21232 üzenetére
Szia!
Bár kaptál már választ, adok egy makrós megoldást, ami 3-nál több változat esetén is működik.
A makró lényege, hogy az A oszlop adatait az F oszlopba másolja, majd ebből eltávolítja az ismétlődéseket.
Egy ciklusban az F mellé, az első üres oszlopba írja a hozzá tartozó B értéket.A makró végén ***-os sorok közé írt rész törli az eredeti A és B oszlop tartalmát, helyére írja a kigyűjtött adatokat, majd a kigyűjtött részt is törli. Ha erre nincs szükséged, töröld a makróból ezeket a sorokat.
Azért javasolom a makrós megoldást, mert az összetett képletekkel nem terheli a memóriát, és nem növeli a fájl méretét ezekkel.
Sub valami()
Dim sor As Long, usor As Long, ertek As String, jel As String
Dim sor1 As Long
usor = Range("A" & Rows.Count).End(xlUp).Row
'A oszlop adatainak másolása az F oszlopba
Range("A1:A" & usor).Copy Range("F1")
'Ismétlődések eltávolítása az F oszlopból
ActiveSheet.Range("$F$1:$F$" & usor).RemoveDuplicates Columns:=1, Header:=xlNo
For sor = 1 To usor
ertek = Cells(sor, "A")
jel = Cells(sor, "B")
sor1 = Application.WorksheetFunction.Match(ertek, Columns(6), 0)
Cells(sor1, Cells(sor1, Columns.Count).End(xlToLeft).Column + 1) = jel
Next
'**************************************************
Range("A1:B" & usor) = ""
Range("F1").Select
Selection.CurrentRegion.Copy Range("A1")
Range("F:Z") = ""
'**************************************************
End Sub -
Delila_1
veterán
válasz
Metathrone #21225 üzenetére
Mindegyik makró modulba kerül.
Private Leallitando As Boolean
Private Xlsnev As String
Private Munkalapnev As String
Private Cellasor As Integer
Private Cellaoszlop As Integer
Sub Pontosidő()
If Leallitando Then Exit Sub
Application.OnTime Now() + TimeSerial(0, 0, 1), "Pontosidő"
Workbooks(Xlsnev).Sheets(Munkalapnev).Cells(Cellasor, Cellaoszlop) = Format(Now(), "yyyy.mm.dd. hh:nn:ss")
End Sub
Sub leallítás()
Leallitando = True
End Sub
Sub Inditás()
Xlsnev = ActiveWorkbook.Name
Munkalapnev = ActiveSheet.Name
Cellasor = 1
Cellaoszlop = 1
Leallitando = False
Pontosidő
End Sub -
Delila_1
veterán
válasz
Metathrone #21223 üzenetére
Tedd ki, hogy más is tudja hasznosítani.
-
Delila_1
veterán
válasz
Metathrone #21220 üzenetére
Nem én írtam, és már nem emlékszem, honnan spájzoltam be. A füzet megnyitásakor az aktuális lap A1 cellájába írja az időt, és másodpercenként módosítja.
A ThisWorkbook-hoz rendeld:
Private Sub Workbook_Open()
Recalc
End SubModulba:
Dim SchedRecalc As Date
Sub Recalc()
Range("A1").Value = Format(Time, "hh:mm:ss")
Call SetTime
End Sub
Sub SetTime()
SchedRecalc = Now + TimeValue("00:00:01")
Application.OnTime SchedRecalc, "Recalc"
End Sub
Sub Disable()
On Error Resume Next
Application.OnTime EarliestTime:=SchedRecalc, Procedure:="Recalc", Schedule:=False
End Sub -
Delila_1
veterán
válasz
jaja1981 #21218 üzenetére
Nem kell a sok változó, a kritériumnál megadhatod a csillagokat.
A szűrt tartományt a Munka2 lap A1-be másolja.Sub Szur_Masol()
ActiveSheet.Range("$A$3:$N$15000").AutoFilter Field:=1, Criteria1:="*" & Range("I1") & "*"
Range("A3").Select
Selection.CurrentRegion.Copy Sheets("Munka2").Range("A1")
End Sub -
Delila_1
veterán
válasz
jaja1981 #21216 üzenetére
A laphoz kell rendelned a makrót.
A makró a H1 cella változására szűri, vagy nem az A oszlopot.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$H$1" Then
If Range("H1") > "" Then
Selection.AutoFilter Field:=1, Criteria1:=Range("H1")
Else
Selection.AutoFilter Field:=1
End If
End If
End SubBeírod a H1-be a keresett értéket, indul a szűrés. Ha kitörlöd a cella értékét, minden sorod látható lesz.
A Field:=1 határozza meg, hogy a tartományod első oszlopát akarod szűrni.
A saját igényeidhez a H1 és a Field értékei kell módosítanod. -
Delila_1
veterán
válasz
Metathrone #21208 üzenetére
A gombok Click eseményében tudod állítani az engedélyezést.
gomb_neve.enabled=true, vagy gomb_neve.enabled=false. -
Delila_1
veterán
válasz
raynen #21205 üzenetére
Makróval gyorsan megy.
Nálam a másolandó lap a Munka1, ahova másolsz, Munka2. Ezeket írd át a makróban a saját lapjaid nevére.
Az előző adatok törlésénél az A:F helyett a saját törlendő oszlopaidat írd be.
Írtam megjegyzéseket a makróba.Sub Masol()
Dim sor As Long, usor As Long, ujsor As Long
'Előző adatok törlése a Munka2 lapon
Sheets("Munka2").Columns("A:F").Delete
Sheets("Munka1").Select
'Címsor másolása
Rows(1).Copy Sheets("Munka2").Range("A1")
'Alsó sor a másolandó lapon
usor = Application.CountA(Columns(1))
'Ebbe a sorba másoljon
ujsor = 2
'Minden 5. sor másolása
For sor = 2 To usor Step 5
Rows(sor).Copy Sheets("Munka2").Range("A" & ujsor)
ujsor = ujsor + 1
Next
End Sub -
Delila_1
veterán
válasz
fogtunder #21168 üzenetére
Cells-nél kötelező a sor, oszlop szintaktika. Ha a hangulatod szerint változtatnád, honnan tudná szegény VBA, hogy éppen mit értsen a megadott paramétereken?
A range-nél éppen fordítva, oszlop, sor a sorrend. Hogy miért így írták meg a fejlesztők, az rejtély előttem.
-
Delila_1
veterán
válasz
fogtunder #21161 üzenetére
A makróba írtam magyarázó kommenteket.
Sub Valami()
Dim usor As Long, oszlop As Integer
'alsó sor az A oszlopban
usor = Range("A" & Rows.Count).End(xlUp).Row
'első üres oszlop a 3. sorban
oszlop = Range("A3").End(xlToRight).Column + 1
'képlet az első üres oszlopba 3-tól usorig
Range(Cells(3, oszlop), Cells(usor, oszlop)) = _
"=IFERROR(VLOOKUP(A3,Stock_Movements_Coverage!A:AC,17,0),0)"
Columns(oszlop).Copy 'képletek másolása
'értékek irányított beillesztése
Cells(1, oszlop).PasteSpecial xlPasteValues
End Sub -
Delila_1
veterán
válasz
*Frenszisz* #21141 üzenetére
Munka2 laphoz
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then Képlet Target 'átadjuk a változót
End SubModulba
Sub Képlet(Target) 'átvesszük a változót
Dim updating As Boolean
Sheets("Munka1").Range("A1") = Target
If updating Then Exit Sub
updating = True
If Sheets("Munka1").Range("A1") = 1 Then
Sheets("Munka1").Range("B1") = 500
Else: Sheets("Munka1").Range("B1") = ""
End If
updating = False
End Sub -
Delila_1
veterán
válasz
*Frenszisz* #21141 üzenetére
A laphoz rendelt eseménykezelő csakis a saját lapján tud módosítani, de meghívhatsz vele egy nem eseménykezelő makrót.
Megoldás: a Munka2 laphoz rendelj eseménykezelőt, ami az A1 cella változása esetén meghív egy makrót, amivel a Munka1!A1-be beíratod hivatkozást.
-
Delila_1
veterán
válasz
djembito #21137 üzenetére
A2 -> =BAL(B2;3)&C2
J2 -> =HA(DARAB2(D2:I2)>=5;SZUM(D2:I2)-MIN(D2:I2);"")
K2 -> =HA(DARAB2(D2:I2)<5;"nincs jegy";FKERES(J2;határok!$A$1:$B$5;2))
Itt a keresési tartományt át kell írnod a határok lap valós tartományára!Q5 -> =KEREKÍTÉS(ÁTLAGHATÖBB(K:K;C:C;"F";K:K;">3");1)
-
Delila_1
veterán
Lrow= ...(másik füzet lapján az első üres sor)
filterezés
terület kijelölése
selection.copy
Workbooks("Másikfüzet.xlsx").Sheets("AhovaMásolsz").range("A" & Lrow.).PasteSpecial xlPasteValuesHa nincsenek a táblázatban képletek, akkor elég így:
selection.copy Workbooks("Másikfüzet.xlsx").Sheets("AhovaMásolsz").range("A" & Lrow.)
Képleteknél inkább utólag add meg azokat az új füzetben, mert ha másolod, a hivatkozások az eredeti füzetre mutatnak majd.
-
Delila_1
veterán
válasz
Salex1 #21084 üzenetére
Igen, a gomb click eseményébe csak ennyit kell írnod: auto_open.
A lenti makró működik gombról.Sub masol()
Dim sor As Long, usorR As Long, usorM As Long
Dim WSR As Worksheet, WSM As Worksheet
Set WSR = Sheets("Rendszerek")
Set WSM = Sheets("Munkák")
usorR = WSR.Range("A" & Rows.Count).End(xlUp).Row
usorM = WSM.Range("B" & Rows.Count).End(xlUp).Row + 1
For sor = 2 To usorR
If WSR.Cells(sor, "O") = 1 Then
WSM.Cells(usorM, "B") = WSR.Cells(sor, "C").Value
WSM.Cells(usorM, "H") = WSR.Cells(sor, "H").Value
WSM.Cells(usorM, "G") = "Terv"
WSR.Cells(sor, "O") = "áttéve"
usorM = usorM + 1
End If
Next
WSM.Range("A1").AutoFilter Field:=7, Criteria1:="<>kész"
End Sub
Új hozzászólás Aktív témák
Hirdetés
- Milyen TV-t vegyek?
- Bambu Lab 3D nyomtatók
- Autós topik látogatók beszélgetős, offolós topikja
- Építő/felújító topik
- S.T.A.L.K.E.R. 2: Heart of Chornobyl
- Anglia - élmények, tapasztalatok
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Ivqkzy-: 2. gépem
- Kerékpárosok, bringások ide!
- További aktív témák...
- Eladó Steam kulcsok kedvező áron!
- Számlás!Steam,EA,Epic és egyébb játékok Pc-re vagy XBox!
- Eredeti Microsoft termékek - MEGA Akciók! Windows, Office Pro Plus, Project Pro, Visio Pro stb.
- Windows 10/11 Home/Pro , Office 2024 kulcsok
- Bitdefender Total Security 3év/3eszköz! - Tökéletes védelem, Most kedvező áron!
- ÁRGARANCIA!Épített KomPhone i5 10600KF 16/32/64GB RAM RX 6600 8GB GAMER PC termékbeszámítással
- Csere-Beszámítás! AMD Ryzen 9 9900X Processzor!
- HPE Apollo 4200 Gen9 2U rack szerver, 1x E5-2620v4, 64GB RAM, 24x3.5" 2U-ban! ÁFA-s számla, garancia
- LG 45GR95QE - 45" Ívelt OLED / 2K WQHD / 240Hz 0.03ms / NVIDIA G-Sync / FreeSync Premium / HDMI 2.1
- Országosan a legjobb BANKMENTES részletfizetési konstrukció! Lenovo ThinkPad L16 Gen 1 Prémium
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged