-
Fototrend
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
-
válasz
baderoli
#29795
üzenetére
Ezek mind okozhatnak jelentős fájlméret növekedést:
- formázás (főleg az új excelben, nagyon sok sor és oszlop van)
- sok pivot tábla (minden pivot tábla számára az excelben van egy kis "mini adatbázis")
- named range (gyakorlatilag a range értékeinak másolata még egyszer a táblűban)
- rejtett mezők/munkalapok (bármi lehet bennük/rajtuk)
- beillesztett képek vagy objektumok (ezek lehetnek akármekkorák) -
Delila_1
veterán
-
Delila_1
veterán
válasz
baderoli
#19571
üzenetére
Az egyes lapokon az oszlopok és sorok azonos sorrendben legyenek. Tehát ha új ember jött, akkor a belépésétől kezdve új sorba kerüljön a neve. Ha viszont év közben elmegy valaki, ne töröld ki onnantól a nevét, vagy legalább hagyd üresen a sorát, ne kerüljenek feljebb az alatta lévő sorok, másképp hamis eredményt kapsz.
Az ábrán 4 lap látszik, amik közül az Összesítő B2 cellájának a képlete látszik a szerkesztőlécen. Ezt a képletet átalakítod a saját lapjaidnak a nevéhez igazítva (első lap neve : utolsó lap neve), és másolhatod jobbra, ill. le.
-
lappy
őstag
-
Delila_1
veterán
válasz
baderoli
#18600
üzenetére
Kijelölöd a formázandó tartományt (D2-től le, ameddig kell).
Kezdőlap | Stílusok | Feltételes formázás | Új szabály | A formázandó cellák kijelölése képlettel.Az "Értékek formázása, ha ez a képlet igaz:" rovatba beírod: =D2>MA()
A "Formátum..." gomb előhozza a formázási lehetőségeket, ezekből válogathatsz. 1-2 enter után kész. -
whatnot
őstag
válasz
baderoli
#17319
üzenetére
Hát pedig az eredeti problémádra írtam egy makrót, rejtegetések nélkül.
Book2-be másol Book1-ból.
Adatok A1-től lefelé vannak, csak a cellákat másolja, nem sorokat.
Ha sorokat is kéne másolni, akkor nyilván azzal ki kell egészíteni.*Hm, az utolsó cellát még egyszer bemásolja lejjebb, megnézem, miért

Ok, megvan, egy felesleges ciklus volt.Sub Copy30()
Application.ScreenUpdating = False
Dim LastRow As Integer
Dim cycle As Integer
Dim i As Integer, j As Integer, k As Integer
LastRow = Workbooks("Book1").Sheets("Sheet1").Range("A1").End(xlDown).Row
cycle = LastRow \ 30
For i = 0 To cycle
j = i * 35 + 1
k = i * 30 + 1
If i <> cycle Then
Workbooks("Book1").Sheets("Sheet1").Activate
Range(Cells(k, 1), Cells(k + 29, 1)).Select
Selection.Copy
Workbooks("Book2").Sheets("Sheet1").Activate
Range(Cells(j, 1), Cells(j, 1)).Select
Selection.PasteSpecial
Else
Workbooks("Book1").Sheets("Sheet1").Activate
Range(Cells(k, 1), Cells(LastRow, 1)).Select
Selection.Copy
Workbooks("Book2").Sheets("Sheet1").Activate
Range(Cells(j, 1), Cells(j, 1)).Select
Selection.PasteSpecial
End If
Next
Range("A1").Activate
End Sub -
lappy
őstag
válasz
baderoli
#16101
üzenetére
Ha kipróbálod az általad alkotott makrót akkor rájössz a hibákra. Mondjuk én sem értek nagyon hozzá, de kevés próbálgatással rá lehet jönni a hibára!
Érdemes előtte próbálgatni!
De itt van egy működő progi!Sub X_ek()
Dim sorF%, sorA%, oszlopE%, oszlopU%, i%, sor%, oszlop%
sorF% = 42: sorA% = 71: oszlopE% = 4: oszlopU% = 8
For i = 1 To 2
sor% = Rnd() * (sorF% - sorA%) + sorA%
oszlop% = Rnd() * (oszlopU% - oszlopE%) + oszlopE%
Cells(sor%, oszlop%) = "X"
sorF% = 42: sorA% = 71: oszlopE% = 10: oszlopU% = 12
sor% = Rnd() * (sorF% - sorA%) + sorA%
oszlop% = Rnd() * (oszlopU% - oszlopE%) + oszlopE%
Cells(sor%, oszlop%) = "X"
Next
End Sub -
Delila_1
veterán
válasz
baderoli
#16101
üzenetére
Csak a Dim kezdetű sort nem kell újra beírni.
Meg lehetne úgy is oldani, hogy az első makróban van az értékadás, és onnan hívjuk meg a másodikat, az értékek átadásával, akkor nem kellene ismételni a for-next ciklust. Ez egy olyan egyszerű makró, hogy nem érdemes külön bajlódni vele.
-
Delila_1
veterán
válasz
baderoli
#16099
üzenetére
Az értékadásnál a sorF% a területed felső sora, a sorA% az alsó sor, az oszlopE% a terület első-, az oszlopU% az utolsó oszlop száma. Az én értékadásomnál a terület C3:J10.
Sub X_ek()
Dim sorF%, sorA%, oszlopE%, oszlopU%, i%, sor%, oszlop%
sorF% = 3: sorA% = 10: oszlopE% = 3: oszlopU% = 10
For i = 1 To 2
sor% = Rnd() * (sorF% - sorA%) + sorA%
oszlop% = Rnd() * (oszlopU% - oszlopE%) + oszlopE%
Cells(sor%, oszlop%) = "X"
Next
End Sub -
Excelbarat
tag
válasz
baderoli
#16075
üzenetére
az élet apró örömei (amúgy egy másik megoldás ha jobb alsó sarokra 2x katt így auto feltölti amíg van balra mellette beírt érték, így sokkal gyorsabb
)
NADE! azt tudni kell hogy ha pl egy összeadás van ott (vagy akár mi más) ami így néz ki:
=(A1+B1)*C1
Akkor ha ezt lehúzod ahogy húzod mindig változtatja a hivatkozásokat (értsd ha le húzod akkor A1-ből A2 lesz, B1-ből B2 ..)
De ha mondjuk a C1 szorzót "fixálni" akarod akkor a képletnél rá katt és F4-et nyomsz aminek az eredménye: $C$1 így ha lehúzod a képletet a számokat mindig a C1-el szorozza -
Excelbarat
tag
válasz
baderoli
#16023
üzenetére
Itt egy lehetséges megoldás:
[név - dátum kereső]
Ilyenre gondoltál?
=HA(ÜRES(A2);"";FKERES(A2;'Név adatbázis'!$A$2:$B$400;2;0))$A$2:$B$400 - a nevek és dátumok cellái ahonnan kikeresendő
Új hozzászólás Aktív témák
- Windows 10/11 Home/Pro , Office 2024 kulcsok
- Game Pass Ultimate előfizetések 1 - 36 hónapig azonnali kézbesítéssel a LEGOLCSÓBBAN! AKCIÓ!
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! Automatikus 0-24
- PC Game Pass előfizetés
- Kaspersky, BitDefender, Avast és egyéb vírusírtó licencek a legolcsóbban, egyenesen a gyártóktól!
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest



Fferi50