Hirdetés
- sziku69: Szólánc.
- Luck Dragon: Asszociációs játék. :)
- bb0t: Ikea PAX gardrób és a pokol logisztikája
- GoodSpeed: A RAM-válság és annak lehetséges hatásai
- GoodSpeed: Márkaváltás sok-sok év után
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- sziku69: Fűzzük össze a szavakat :)
- ldave: New Game Blitz - 2025
- Real Racing 3 - Freemium csoda
- Gurulunk, WAZE?!
-
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
-
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 -
Delila_1
veterán
válasz
Salex1
#21066
üzenetére
Úgy látom, túlbonyolítottad, és elég rosszul látszik a makró. Ha a bemásolás után kijelölöd a szöveget, majd a Programkód gombra kattintasz, látható lesz, és a tagolások sem tűnnek el, átláthatóbb lesz, jobban lehet értelmezni.
Nagyjából azt vettem ki, hogy a Rendszerek lapról azoknak a soroknak bizonyos értékeit kell átmásolnod a Munkák lap első üres sorába, ahol az O oszlopban 1-es érték van. Ezután az O oszlop kérdéses sorába "Áttéve" szöveget íratsz, a G-be "Terv"-et.
Add meg, melyik oszlopok értékeit kell másolni a Munkák lap melyik oszlopaiba (pl. a H-t a H-ba).
Új hozzászólás Aktív témák
- ÚJ BONTATLAN Apple Macbook Air 15,3 M4 10C CPU/10C GPU/16GB/256GB - Silver - HUN- MW1G3MG/A 3 év gar
- KARÁCSONYI AKCIÓK / MICROSOFT WINDOWS 10,11 / OFFICE 16,19,21,24 / VÍRUS,VPN VÉDELEM / SZÁMLA / 0-24
- Apple iPhone 14 Pro Max / 128GB / Kártyafüggetlen / 12Hó Garancia / Akku Gyári 100%
- HIBÁTLAN iPhone 15 Pro 128GB Black Titanium -1 ÉV GARANCIA -Kártyafüggetlen, 100% Akkumulátor
- LG 40WP95XP-W - 40" NANO IPS - 5120x2160 5K - 72Hz 5ms - TB 4.0 - HDR - AMD FreeSync
Állásajánlatok
Cég: ATW Internet Kft.
Város: Budapest
Cég: BroadBit Hungary Kft.
Város: Budakeszi
Üdültem.













Fferi50
