- Milyen okostelefont vegyek?
- Telekom mobilszolgáltatások
- 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
válasz
plaschil #12801 üzenetére
Az első IF-en belül két újabb kritérium már eleve hamis ágra fut.
Az első feltétel vizsgálja az E oszlop i-edik értékét, és csak akkor jut el az igaz ágba, ha ez az érték 72. Te ebbe az igaz ágba teszel két újabb feltételt, ami azt vizsgálja, hogy ugyanez a cella 0.603-mal, vagy 0.615-tel kezdődik-e.
-
Delila_1
veterán
válasz
plaschil #12796 üzenetére
For i = 1 To SorokSzama
If Cells(i, 5) = 72 Then
If Cells(i, 4) = "5415" Or "5415B" Then
If Left(Cells(i, 2), 2) = "ez" Or Left(Cells(i, 2), 2) = "az" Or _
Left(Cells(i, 2), 4) = "emez" Or Left(Cells(i, 2), 4) = "amaz" Then
'történjen valami
Else
'történjen valami más
End If
End If
End If
Next -
Delila_1
veterán
válasz
kriszwells #12789 üzenetére
Szívesen.
Persze, hogy felteheted a kérdést, legrosszabb esetben nem kapsz választ.(Estig nem leszek gépnél, de más is tud válaszolni.)
-
Delila_1
veterán
válasz
kriszwells #12786 üzenetére
Írd át az INDEx függvényt, hogy a teljes A oszlopra hivatkozzon.
=index(A:A;B1;1)
-
Delila_1
veterán
válasz
kriszwells #12782 üzenetére
Beírod a szövegeket az A200:A... tartományba.
A Testreszabás menüben az Eszközöknél találsz egy Fényképezőgép nevű ikont, azt kiteszed a többi ikon közé.
Beírod az Index függvényt egy távol lévő cellába, mondjuk az AA1-be, és ott hagyod a fókuszt. Jó széles legyen az AA oszlop, hogy teljesen kiférjen a hivatkozott szöveg.
Rákattintasz a fényképezőgép ikonra, kapsz egy szálkeresztet, amivel rajzolsz egy téglalapot az A1 cellába.
Beírod a B1-be azt a sorszámot, ahányadik szöveget először akarod megjeleníteni az A200:A... tartományból. A szövegek végén jelezheted, hányadik új szöveg következik ezután, és a B1-be ezt kell megadnod a következő szöveg megmutatásához.
Vajh' érthető-e ez így?
Kép:
http://kephost.hu/share-655D_4F2BAC92.html -
Delila_1
veterán
válasz
kriszwells #12780 üzenetére
Az A1 képlete legyen =INDEX($A$200:$A$400;$B$1;1)
-
Delila_1
veterán
Rendeld a lapodhoz a makrót. Az A oszlopba írva a B-ben lesz a dátum, a C-ben a sorszám.
Mikor törölsz az A-ból egy adatot, üres lesz az azonos sorban lévő B és C cella, a sorszámok maradnak. Ha ebbe az üres A-ba új adatot írsz, a következő sorszám lesz a C-ben.Pl. folyamatosan írtál az A1-be, A2-be és A3-ba. A C1=1, C2=2, C3=3. Törlöd az A2-t, a C2 (és B2) üres lesz. Új értéket írsz az A2-be, a sorszáma 4 lesz, amiből látszik, hogy később töltötted ki a 2. sort, mint a 3-at.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
If Not IsEmpty(Target) Then
Cells(Target.Row, 2) = Date
Cells(Target.Row, 3) = Application.Max(Columns(3)) + 1
Else
Range("B" & Target.Row & ":C" & Target.Row) = ""
End If
End If
End Sub -
Delila_1
veterán
válasz
sadams #12764 üzenetére
Az új lapon a számok szerint rendezd a tábládat.
Ha nem fontos a sorrend, csak az, hogy ne ABC-ben legyenek az A oszlop értékei, a 3. oszlopba tehetsz véletlen számokat, és azok szerint rendezhetsz.
Szerintem nem fontos új lapra másolni, mert igény szerint vagy az A, vagy a C oszlop szerint rendezel, ennek megfelelően változik a sorrend.
-
Delila_1
veterán
válasz
kriszwells #12757 üzenetére
A véletlen határait így adhatod meg:
=VÉL()*(FelsőHatár-AlsóHatár)+AlsóHatár
Az alsó, és felső határok értékeit 1-1 cellába írhatod be, és azokra hivatkozhatsz a képletben.
-
Delila_1
veterán
válasz
Ripitxx #12750 üzenetére
Beviszed az érvényesítéseket. Vegyük, hogy az első az A1 cellában van, ettől függ a következő érvényesítés listája. A második érvényesítés a B1-ben van. További, az előzőeket figyelembe vevő érvényesítések vannak még a C1 és D1 cellákban.
A munkalaphoz rendeled az egysoros makrót, ami törli a B1:D1 tartományt, ha változtatod az A1 értékét.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then Range("B1:D1") = ""
End SubÉrtelemszerűen módosíthatod az "$A$1"-et az indító cellád címére, és a "B1:D1" tartományt a törlendő cellákéra.
-
Delila_1
veterán
válasz
Ripitxx #12747 üzenetére
Nézd meg pl. a 10159-es kérdést, és a választ rá. Az üressé válást úgy oldhatod meg, hogy az első, érvényesítést tartalmazó cella egyes értékeihez üres tartományt rendelsz.
Pl. az érvényesítés lehet gyümölcs és zöldség. Írsz egy tartományt, ami a gyümölcsök neveit tartalmazza, és a tartomány neve gyümölcs. Kijelölsz egy üres tartományt, aminek zöldség nevet adsz, de nem írsz bele adatokat.
Az A1 cellában választhatsz a két tartományból. A B1 cella érvényesítése ez legyen: =INDIREKT(A1). Mikor az A1-ben a gyümölcs-öt választod, a B1 érvényesítésében megjelennek a gyümölcsök nevei. Az A1-ben a zöldséget választva üres lista lesz a B1-ben.Mire jó ez?
-
Delila_1
veterán
Az 500 sorra eddig is jó volt, most átírtam, hogy annyi oszloppal számoljon, ahány van.
Sub átrendez()
Dim sor%, usor%, oszlop%, uoszlop%, sor1%, WS2 As Worksheet
Set WS2 = Sheets("Munka2")
usor% = Range("A1").End(xlDown).Row
uoszlop% = Range("IV1").End(xlToLeft).Column
sor1% = 2
For sor% = 2 To usor%
WS2.Cells(sor1%, 1) = Cells(sor%, 1)
For oszlop% = 2 To uoszlop%
WS2.Cells(sor1%, 2) = Cells(sor%, oszlop%)
WS2.Cells(sor1%, 3) = oszlop% - 1
sor1% = sor1% + 1
Next
Next
End Sub -
Delila_1
veterán
Sub átrendez()
Dim sor%, usor%, sor1%, WS2 As Worksheet
Set WS2 = Sheets("Munka2")
usor% = Range("A1").End(xlDown).Row
sor1% = 2
For sor% = 2 To usor%
WS2.Cells(sor1%, 1) = Cells(sor%, 1)
WS2.Cells(sor1% + 1, 1) = Cells(sor%, 1)
WS2.Cells(sor1% + 2, 1) = Cells(sor%, 1)
WS2.Cells(sor1%, 2) = Cells(sor%, 2)
WS2.Cells(sor1% + 1, 2) = Cells(sor%, 3)
WS2.Cells(sor1% + 2, 2) = Cells(sor%, 4)
WS2.Cells(sor1%, 3) = 1
WS2.Cells(sor1% + 1, 3) = 2
WS2.Cells(sor1% + 2, 3) = 3
sor1% = sor1% + 3
Next
End Sub -
Delila_1
veterán
A Munka2 lapra viszi át az adatokat. Feltételezem, hogy a másolandó lapon a címsor alatt, a 2. sorban kezdődnek az adatok.
Sub átrendez()
Dim sor%, usor%, sor1%, WS2 As Worksheet
Set WS2 = Sheets("Munka2")
usor% = Range("A1").End(xlDown).Row
sor1% = 2
For sor% = 2 To usor%
WS2.Cells(sor1%, 1) = Cells(sor%, 1) & " 1"
WS2.Cells(sor1% + 1, 1) = Cells(sor%, 1) & " 2"
WS2.Cells(sor1% + 2, 1) = Cells(sor%, 1) & " 3"
WS2.Cells(sor1%, 2) = Cells(sor%, 2)
WS2.Cells(sor1% + 1, 2) = Cells(sor%, 3)
WS2.Cells(sor1% + 2, 2) = Cells(sor%, 4)
sor1% = sor1% + 3
Next
End Sub -
Delila_1
veterán
válasz
poffsoft #12710 üzenetére
Tulajdonképpen a függvények nevét szeretnéd két nyelven ismerni. Ahhoz itt egy segítség
-
Delila_1
veterán
válasz
poffsoft #12702 üzenetére
Makrólap:
Megírod a szép, működő képletet. Lapfülön jobb klikk, Beszúrás | Nemzetközi makrólap.
A képletet, és az(oka)t a cellá(ka)t, ami(k)re hivatkozik, átmásolod a makró lapra.
A képletet tartalmazó cellán állva a cellában a magyar, a szerkesztőlécen az angol megfelelője látszik. -
-
Delila_1
veterán
válasz
poffsoft #12685 üzenetére
Azt hiszem, rosszul címezted a kérdést. A változók elnevezéséből úgy látom, Fire foglalkozott a kérdéseddel. Visszalapoztam pár napot, de nem találtam az eredetit.
MyFormul$ = ThisWorkbook.Sheets("Éves").Range("K10").Value
MyFormul$=Right(MyFormul$, Len(MyFormul$)-1)Így levághatod a kezdő aposztrófot.
Másik lapra állás: Sheets("Másik").Select
Kijelölés megszüntetése másolás után: Application.CutCopyMode = False
B20-ra állás: Range("B20").Select
-
Delila_1
veterán
Szia Marci!
Jó sokára jelentkeztél az újabb problémával. Itt a kibővített makró:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim név$, email$, sor%, usor%, oszlop As Integer, lapnév$
oszlop = Target.Column
If Target.Column > 2 And Target.Column < 6 Then
Select Case oszlop
Case 3
lapnév$ = "Másolat_1"
Case 4
lapnév$ = "Másolat_2"
Case 5
lapnév$ = "Másolat_3"
End Select
név$ = Cells(Target.Row, 1).Value
email$ = Cells(Target.Row, 2).Value
usor% = Sheets(lapnév$).Range("A" & Rows.Count).End(xlUp).Row + 1
If IsEmpty(Target) Then
For sor% = 2 To usor%
If Sheets(lapnév$).Range("A" & sor%) = név$ And _
Sheets(lapnév$).Range("B" & sor%) = email$ Then
Sheets(lapnév$).Rows(sor%).Delete Shift:=xlUp
Exit Sub
End If
Next
Else
Sheets(lapnév$).Cells(usor%, 1) = név$
Sheets(lapnév$).Cells(usor%, 2) = email$
End If
End If
End Sub -
Delila_1
veterán
válasz
ng0ofy #12665 üzenetére
Az Array segítségével jelölheted ki az összes munkalapot, és azoknak egy bizonyos celláját.
3 lap esetén egyszerű beírni a makróbaSheets(Array("Munka1", "Munka2", "Munka3")).Select
Range("A1").Select176 lapnál ez már kínos lenne. Inkább indíts egy makrórögzítést, állj az első lapra, majd a Shift lenyomása mellett kattints az utolsó lapra. Az így egyszerre kijelölt lapokon egy bizonyos cellára állva az összes lapon az a cella lesz kijelölve. Ha ebbe a cellába írsz valamit, akár egy képletet, minden lapon szerepelni fog. NE FELJTS EL kilépni a közös kijelölésből!
Ha egy összegző lapon összegezni, átlagolni, vagy bármilyen más műveletet akarsz végezni a többi lap azonos celláiban lévő adatokkal, egyszerűbben is megadhatod. Pl. egy cellában az összes többi lap B20 celláiból ki akarod nyerni a minimum értéket, az összegző lap képlete:
=MIN(Munka1:Munka3!B20). Természetesen a saját lapjaid nevét írd a Munka1 és Munka3 helyére. -
Delila_1
veterán
válasz
Mythunderboy #12655 üzenetére
Lehet, hogy a védelem beállítása előtt tervező módban hagytad a vezérlőt.
-
Delila_1
veterán
válasz
motinka #12641 üzenetére
Jobb, ha a teljes átírtat megint berajzolom ide.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim sor As Integer, usorH As Integer
Dim WS2 As Worksheet, sorH, f As Boolean
Application.EnableEvents = False
Set WS2 = Sheets("HÓNAP")
usorH = WS2.Range("A1").End(xlDown).Row
sor = 2
f = False
If Target.Address = "$A$2" Then
If Target = "" Then
Range("A2:D5000") = ""
Else
Range("A3:D5000") = ""
For sorH = 2 To usorH
If WS2.Cells(sorH, "A") = Target Then
Cells(sor, "B") = WS2.Cells(sorH, "E")
Cells(sor, "C") = WS2.Cells(sorH, "J")
Cells(sor, "D") = WS2.Cells(sorH, "AI")
sor = sor + 1
f = True
End If
Next
If f = False Then
Range("B2") = "Nincs adat erre a napra"
Range("A2:D5000") = ""
End If
End If
End If
Application.EnableEvents = True
End Sub -
Delila_1
veterán
válasz
rroolleerr #12639 üzenetére
Nincs mit.
-
Delila_1
veterán
válasz
rroolleerr #12637 üzenetére
Ezt a makrót rendeld a lapodhoz:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" And IsNumeric(Target) Then _
Range("A2") = Range("A2") + Target
End Sub -
Delila_1
veterán
válasz
motinka #12635 üzenetére
Szívesen.
A For sorH = 2 To usorH kettesét írd át 1-re.
If Target.Address = "$A$1" Then helyett If Target.Address = "$A$2" Then
Rows("1:5000").Delete helyett Rows("2:5000").Delete
Rows("2:5000").Delete helyett Rows("3:5000").DeleteA lekérdezendő dátumot az A2 cellába írd be.
-
Delila_1
veterán
válasz
motinka #12627 üzenetére
Valószínű, hogy a két lapodon nem egyformák a dátumokat tartalmazó oszlopok. Elképzelhető, hogy az egyiken szövegként adtad meg az értékeket, nem dátumként.
A "kigyűjtős" laphoz kell rendelned a makrót. Az elején értékadások vannak.
If Target.Address = "$A$1" Then 'ha az A1 cella változik...
If Target = "" Then 'és ez üres (törölted a tartalmát)
Rows("1:5000").Delete 'akkor törli a sorok előző tartalmát
Else 'ha értéket vittél az A1-be...
Rows("2:5000").Delete 'akkor a 2. sortól törli a régi adatokat
For sorH = 2 To usorH 'végig megy a Hónap lap A oszlopán
If WS2.Cells(sorH, "A") = Target Then 'ha ez azonos az 1. lapra bevitt értékkel ...
Cells(sor, "B") = WS2.Cells(sorH, "E") 'az 1. lap akt. sorába másol
Cells(sor, "C") = WS2.Cells(sorH, "J")
Cells(sor, "D") = WS2.Cells(sorH, "AI")
sor = sor + 1
f = True 'ez egy figyelő, ha volt egyezés, True-ra vált
End If
Next
If f = False Then 'ha nem volt egyezés,
Range("B1") = "Nincs adat erre a napra" 'ezt írja az 1. lap B1-be
Range("C1:IV1").Delete 'törli az előző C1:IV1 tartomány tartalmát
End If
End If
End If -
Delila_1
veterán
válasz
archen #12621 üzenetére
Sub Tartalom()
Dim sor As Integer, oszlop As Integer, uoszlop As Integer, Tartalom As String
uoszlop = Selection.Column - 1
sor = Selection.Row
For oszlop = 1 To uoszlop
Tartalom = Tartalom & Cells(sor, oszlop) & ","
Next
Selection = Left(Tartalom, Len(Tartalom) - 1)
End Sub -
Delila_1
veterán
válasz
csferke #12614 üzenetére
Nem nézted meg a csatolt képet, pedig ott a K2 és K3 cella éppen azt tartalmazza, amit kértél.
Amit most írsz, körkörös hivatkozást eredményezne. Az A1 cellában akarod megjeleníteni azt az adatot, amit a VLOOKUP az A oszlopban talál.
Tettem az első sorba (A:D) egy autoszűrőt, a G oszlopba pedig egy összefűzést (=A2&" "&D2)
Az érvényesítésben (I1 cella) forrásként a $G$2:$G$6 tartományt adtam meg, mert a 2:6 sorokba írtam adatokat. Az I1-ben történő kiválasztás után az autoszűrő a választás szerint szűri az A:D tartományt. Az I1 törlése esetén minden sor látszik.Nem írtad, hogy az A és D oszlopok közül melyik tartalmazza a város, ill. a cég nevét, ezért 2 makrót írtam. A megfelelőt rendeld a lapodhoz.
Private Sub Worksheet_Change(ByVal Target As Range)
'Város=D oszlop, Cég=A oszlop
Dim betu%, krit
If Target.Address = "$I$1" Then
If IsEmpty(Target) Then
Selection.AutoFilter Field:=1
Exit Sub
Else
Range("A1").Select
For betu% = Len(Target) To 1 Step -1
If Mid(Target, betu%, 1) = " " Then
krit = Left(Target, betu% - 1)
Exit For
End If
Next
End If
Selection.AutoFilter Field:=1, Criteria1:=krit
End If
End SubPrivate Sub Worksheet_Change(ByVal Target As Range)
'Város=A oszlop, Cég=D oszlop
Dim betu%, krit
If Target.Address = "$I$1" Then
If IsEmpty(Target) Then
Selection.AutoFilter Field:=4
Exit Sub
Else
Range("A1").Select
For betu% = 1 To Len(Target)
If Mid(Target, betu%, 1) = " " Then
krit = Right(Target, Len(Target) - betu%)
Range("J2") = krit
Exit For
End If
Next
End If
Selection.AutoFilter Field:=4, Criteria1:=krit
End If
End Sub -
Delila_1
veterán
válasz
motinka #12610 üzenetére
A kérdéses laphoz rendeld a makrót.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim sor As Integer, usorH As Integer
Dim WS2 As Worksheet, sorH, f As Boolean
Application.EnableEvents = False
Set WS2 = Sheets("HÓNAP")
usorH = WS2.Range("A1").End(xlDown).Row
sor = 1
f = False
If Target.Address = "$A$1" Then
If Target = "" Then
Rows("1:5000").Delete
Else
Rows("2:5000").Delete
For sorH = 2 To usorH
If WS2.Cells(sorH, "A") = Target Then
Cells(sor, "B") = WS2.Cells(sorH, "E")
Cells(sor, "C") = WS2.Cells(sorH, "J")
Cells(sor, "D") = WS2.Cells(sorH, "AI")
sor = sor + 1
f = True
End If
Next
If f = False Then
Range("B1") = "Nincs adat erre a napra"
Range("C1:IV1").Delete
End If
End If
End If
Application.EnableEvents = True
End Sub -
-
Delila_1
veterán
válasz
Pityke78 #12603 üzenetére
Vehetsz fel számított mezőt (azt hiszem, így hívják). Ha a két táblázat hányadosát akarod számítani, vagy 2 kimutatást készíts, és úgy számolj, vagy a mezőnevekben utalj a táblázat számára.
F7-tel indul a helyesírás ellenőrzése. A beállításoknál meg tudod adni a nyelvet.
A magyar indítása VB-ben Cells.CheckSpelling SpellLang:=1038, angolé
Cells.CheckSpelling SpellLang:=1033. -
Delila_1
veterán
válasz
Fire/SOUL/CD #12598 üzenetére
Nem biztos, hogy számot tartalmaz a szűrendő oszlop. A számoknál valóban van, én szöveggel próbáltam, ott nincs. Vajh' miért? (költői kérdés)
-
Delila_1
veterán
válasz
Fire/SOUL/CD #12595 üzenetére
Igen, arra vonatkozik, de %-ban is meg lehet adni az első. ill. utolsó x%-ot.
2007-ben nincs. -
Delila_1
veterán
Volt itt egy kérdés a 2010-es szűrésre. [link]
Jelenleg nincs 2010-em. A 2003-ban létezik a szűrőben egy Helyezés című, amivel ez könnyen megoldható. A 2007 már nem ad erre módot. A 2010 sem?
Ha nincs, akkor érdemes egy új oszlopot felvenni, ami a sorszámokat tartalmazza [=SOR()], és elsőként ezt az oszlopot szűrni.
-
Delila_1
veterán
válasz
Fire/SOUL/CD #12591 üzenetére
Ezek a feltételek ÉS kapcsolatban vannak egymással. Ahogy beírtad egyik feltételként a
(HÓNAP(A2:A8)=1) képlet részt, úgy megadhatod másiknak az (ÉV(A2:A8)=2010) -et is.Egyébként szerintem egyszerűbb kimutatással összehozni.
-
Delila_1
veterán
válasz
Fire/SOUL/CD #12589 üzenetére
Szorzatösszeg függvénnyel akárhány feltételt vihetsz be a mellékelt kép szerint. A feltételeket * (csillag) jellel adod meg egymás után, az összegzendő tartományt a végére írod, pontosvesszővel.
Az "akárhány" úgy értendő, hogy a próbánál ráuntam a 10. feltétel után.
-
Delila_1
veterán
válasz
csferke #12549 üzenetére
Egy új oszlopban (legyen ez pl. a H) összefűzöd az A és D oszlop adatait. Érdemes a két adat közé elválasztót, mondjuk szóközt tenni.
H2 -> =A2 & " " & D2Ekkor az érvényesítés forrásánál a H oszlop szerepeljen.
K2 -> =VLOOKUP(LEFT($K$1,SEARCH(" ",$K$1)-1),A:D,2,0)
K3 -> =VLOOKUP(LEFT($K$1,SEARCH(" ",$K$1)-1),A:D,3,0) -
Delila_1
veterán
válasz
Fire/SOUL/CD #12541 üzenetére
És mi van, ha az I5 pl. 9. hónapot tartalmaz?
-
Delila_1
veterán
válasz
Fire/SOUL/CD #12535 üzenetére
Hát ez az! Pontatlan a kérdés feltevése. Az is lehet, hogy nem 2 tizedesre kell kerekíteni.
-
Delila_1
veterán
válasz
m.zmrzlina #12532 üzenetére
Közben én is összehoztam, a SZUM tartományát egy kicsit egyszerűsítve
=KEREK.LE(SZUM(C29:F29;I29;L29;O29;R29;U29;X29;AA29;AD29;AG29:AL29)*B29;2)
-
Delila_1
veterán
-
Delila_1
veterán
A makró:
Sub Lapokra()
Dim lap%, sor%, usor%, sor_lap%
Sheets("Tábla").Select
'Lapok eddigi adatainak törlése
For lap% = 2 To 13
Sheets(lap%).Rows("2:1000").Delete
Next
'Sorok a lapokra
usor% = Range("A1").End(xlDown).Row
For sor% = 2 To usor%
lap% = Month(Cells(sor%, 1)) + 1
sor_lap% = Sheets(lap%).Range("A10000").End(xlUp).Row + 1
Rows(sor%).Copy Sheets(lap%).Cells(sor_lap%, 1)
Next
End SubAz első lap a Tábla nevű, amit a Sheets("Tábla").Select sorban átírhatsz a saját lapod nevére. Ezután következik a 12 hónapot tartalmazó lapod.
-
Delila_1
veterán
válasz
poffsoft #12480 üzenetére
Makróíráshoz, ami figyeli a bevitel helyét, tudnom kellene, melyik oszlopról van szó, de ezt nem adtad meg. Őszintén szólva az egész leírás kicsit zavaros nekem.
Írtam egy makrót, ami a 2. laptól (az első lap a januári adatokat tartalmazza) a 12-ig a C2:C30 tartományba beírja az előző lap C2:C30 értékeit hivatkozással. Hátha hasznodra válik.
Sub keplet()
Dim lap%
For lap% = 2 To 12
Sheets(lap%).Select
Range("C2:C30") = "=" & Sheets(lap% - 1).Name & "!C2"
Next
End Sub -
Delila_1
veterán
válasz
m.zmrzlina #12457 üzenetére
"ha már a Cells van használatban akkor a "B" helyett (második argumentum) én 2-t használnék"
Mostanában szoktam rá, hogy "B"-t használok inkább, mint oszlopszámot. 2-nél még könnyen követhető, de pl. 179-nél egy javításnál egyszerűbb követni a betűvel – FW – jelölt oszlop átírása.
-
Delila_1
veterán
válasz
jani-wan #12453 üzenetére
Mikor sorokat töröltetsz, az oszlop aljától felfelé kell elindulni, másképpen kimaradnak a vizsgálatból bizonyos sorok.
Ez a makró a második sortól – címsort feltételezve – törli azokat a sorokat, ahol a B oszlopban kisebb dátum szerepel, mint az E1 cellában.
Sub DeleteRowbyDate()
Dim so As Long
For sor = ActiveSheet.UsedRange.Rows.Count To 2 Step -1
If Cells(sor, "B") < Range("E1") Then
Rows(sor).EntireRow.Delete
End If
Next
End SubAz ActiveSheet.UsedRange.Rows.Count a lapon létező utolsó sor számát adja.
Ha több sor van a lapon valamelyik oszlopban, mint a B-ben, a fenti helyett ezt írd: Range("B1").End(xlDown).Row -
Delila_1
veterán
válasz
poffsoft #12449 üzenetére
Az előző lap kódnevét pl. így kaphatod meg:
lap = ActiveSheet.CodeName
lap = "Munka" & Right(lap, Len(lap) - 5) - 1
MsgBox lapNem szerencsés dolog aktív cellára hivatkozni makróban, mert ha véletlenül másik cellára kattintasz a makró indítása előtt, hamis eredményt kapsz.
Írd le pontosan, mit szeretnél elérni a makróval.
Új hozzászólás Aktív témák
Hirdetés
- Milyen okostelefont vegyek?
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- Otthoni hálózat és internet megosztá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
- További aktív témák...
- Telefon felvásárlás!! Samsung Galaxy S25, Samsung Galaxy S25 Plus, Samsung Galaxy S25 Ultra
- Eladó Apple iPhone Xr 64GB fekete / ÚJ KIJELZŐ / 100% AKKU / 12 hónap jótállással!
- BANKMENTES részletfizetés ASUS TUF Gaming F16 FX607JV-QT212 Notebook
- BESZÁMÍTÁS! ASRock Z370 i5 8500 16GB DDR4 512GB SSD 2060 Super 8GB Zalman Z9 Plus Enermax 750W
- Lenovo Legion 5 Gaming. Az ár irányár, komoly érdeklődés esetén van lehetőség egyeztetésre
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged