- DIGI Mobil
- Milyen okostelefont vegyek?
- Motorola Edge 40 - jó bőr
- Garmin Forerunner 255 Music - nem csak futóknak
- Xiaomi Smart Band 8 - folyamatosan
- Itt az első kép a 2024-es Nokia 3210-ről
- Google Pixel 8 Pro - mestersége(s) az intelligencia
- Redmi Note 10 Pro - majdnem minden stimmel
- Android alkalmazások - szoftver kibeszélő topik
- OnePlus 7 - magabiztos folytatás
Hirdetés
-
Premier előzetesen a Gray Zone Warfare
gp A mai naptól hivatalosan is elrajtol a játék korai kiadása PC-n.
-
Piacvezető tandem OLED panellel érkezik az iPad Pro
ma Sokat kellett várni az első OLED képernyős Apple táblagépre, állítólag megérte.
-
Súlyos adatvédelmi botrányba kerülhet a ChatGPT az EU-ban
it Egyre nagyobb probléma az AI hallucinálása – most az osztrák adatvédelmi hatóság veheti elő a ChatGPT miatt az OpenAI-t, alapvetően a GDPR megsértése miatt.
-
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
Topikgazda
válasz KubanitoS #28070 üzenetére
Makró, amire poffsoft utalt:
Sub SorTorles()
Dim sor As Long, usor As Long
usor = Range("A" & Rows.Count).End(xlUp).Row
For sor = usor To 5 Step -1
If Application.WorksheetFunction.CountA(Rows(sor)) = 0 Then _
Rows(sor).Delete
Next
End SubA makró az A oszlopban található utolsó adattól indul felfelé. Ahol üres sort talál, azt kitörli, az első 5 sor kivételével.
Ha van oszlop, ahol több kitöltött sor van, mint az A oszlopban, az
usor = Range("A" & Rows.Count).End(xlUp).Row -ban írd át az A-t az oszlopod betűjelére.
A For kezdetű sorban írhatod át a meghagyandó felső sorok számát 5-ről.
Mivel nem tudom, minden lapodon kell-e ismételni a sorok törlését, 1 lapra írtam meg. Azon a lapon töröl, amelyiken éppen állsz.Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
-
poffsoft
addikt
válasz KubanitoS #28082 üzenetére
namost a kérdésem:
minden munkalapon van a fejléc és max 25 sor (ezesetben Delila makrója kell neked, ahogyan leírta),
vagy egy munkalapon van 25 soronként a fejléc (vagyis 29 soronként, 25 adatsor plusz 4 sor a fejléc), ezesetben az enyémmel próbálkozz-módosítani kell még, mivel, ahogyan látom, az A oszlopban a sorszám van, vagyis teljes sorokkal nem operálhatunk, így egyelőre nem jó a makró, a row() helyett majd range() lesz, de ehhez tudni kellene, meddig vannak az adatok (pl Range("B5:H5"))
a
fejlec=4
és
lapsor=29
amit módosítanod kell majd.amíg Delila ki nem rukkol az elegánsabb kóddal.
(#28081) Geryson : Nincs mit
[ Szerkesztve ]
[ Szerkesztve ]
-
poffsoft
addikt
válasz KubanitoS #28084 üzenetére
értem.
amit javítanod kell, uoszl az utolsó adatot tartalmazó oszlop EXCEL azonosítója szerint, ez nálad az E nevű oszlop a képen, ami ugye az excelnek "F", de nem látom a végét...Sub SorTorles()
Dim sor As Long, usor As Long
Dim lapsor As Integer
Dim fejlec As Integer
Dim aktsor As Integer
Dim uoszl As String
usor = Range("B" & Rows.Count).End(xlUp).Row
lapsor = 29
fejlec = 4
uoszl = "F"
aktsor = fejlec + 1
For sor = aktsor To usor
If (sor - 1) Mod lapsor = 0 Then sor = sor + fejlec
Do While Application.WorksheetFunction.CountA(Range(Cells(aktsor, "B"), Cells(aktsor, uoszl))) = 0 And aktsor <= usor
aktsor = aktsor + 1
If (aktsor - 1) Mod lapsor = 0 Then aktsor = aktsor + fejlec
Loop
If aktsor > usor Then Exit For
If Application.WorksheetFunction.CountA(Range(Cells(sor, "B"), Cells(sor, uoszl))) = 0 Then
Range(Cells(aktsor, "B"), Cells(aktsor, uoszl)).Select
Selection.Copy
Application.CutCopyMode = False
Selection.Cut
Range(Cells(sor, "B"), Cells(sor, uoszl)).Select
ActiveSheet.Paste
End If
aktsor = aktsor + 1
If (aktsor - 1) Mod lapsor = 0 Then aktsor = aktsor + fejlec
If aktsor > usor Then Exit For
Next
End Sub[ Szerkesztve ]
[ Szerkesztve ]
-
föccer
nagyúr
válasz KubanitoS #51869 üzenetére
Ha jól sejtem valami ilyesmi kell. A C oszlopba írja a számított eredményeket. A képletbe a dollár jelek fontosak (ezek rögzítik le, hogy az automatikus kitöltésnél ne "másszon el" a B1 cella hivatkozása). A HA feltételt csak azért raktam be, hogy ha a B oszlopban nincs kitöltve az adott sora, akkor ne legyen csúnya.
C oszlopot tetszőlegesen le lehet húzni.
[ Szerkesztve ]
Építésztechnikus. Építőmérnök.
-
föccer
nagyúr
válasz KubanitoS #51872 üzenetére
Muszáj lesz valami segédoszlop, ha nem akarsz makrót csinálni.
Egy egyszrű megodás, ha az aktuális készletet külön cellába rakjuk, a készletfogyást szummázuk és az első készletből vonjuk. Ez akt készletet ad. Ha kell a fogyás napján léő készlet, akkor a H2 képlete: =HA(G2="";"";C1-G2), és onnantól a H oszlop képlete H3-tól lefelé: =HA(G7="";"";$C$1-SZUM($G$2:G1001))
A fenti képletezésben a SZUM második elemének tetszőlegesen nagy számot lehet adni (kb 1millióig). Most ~1000 tételig kezeli. Ha valamiért nem akarod beégetni a maximális sorok számát, akkor meg lehet mókolni, hogy dinamikus legyen a függvényekben a tömbök kezelése, de azzal már foglalkoznom kell pár pect, de azt csak hétfőn tudom megcsinálni
[ Szerkesztve ]
Építésztechnikus. Építőmérnök.
-
Delila_1
Topikgazda
-
-
karlkani
aktív tag
válasz KubanitoS #51885 üzenetére
Igen, ugyanis úgy áll össze a cellára való hivatkozás.
R4 & "5:" & R4 &R1 jelen esetben azt jelenti, hogy R5 : R17. Azt hadd kérdezzem már meg, hogy az egyes oszlopok alatt, ahol a fogyást könyveled van más is? Ha nincs, akkor tök felesleges az utolsó sorral meg a levonandó tartomány megadásával foglalkozni. A1-be beírod az induló készletet, A3-tól lefele meg írod a fogyást.A2
=A1-SZUM(A3:A1000)
(ez lesz az aktuális készlet)*1000 helyett beírhatsz más számot is, nagyobbat értelemszerűen, mint ahány sor lehet az adott időszakban.
Ezt a képletet húzhatod jobbra.
[ Szerkesztve ]
Új hozzászólás Aktív témák
- Steam, Windows, Origin kulcsok, előfizetések közvetlenül a kiadótól, a LEGJOBB ÁRON!
- Eladó Steam kulcsok kedvező áron!
- Windows, Office licencek a legolcsóbban, egyenesen a Microsoft-tól - 2990 Ft-tól!
- Eredeti Microsoft termékek - MEGA Akciók! Windows, Office Pro Plus, Project Pro, Visio Pro stb.
- Game Pass Ultimate előfizetések 1 - 25 hónapig azonnali kézbesítéssel a LEGOLCSÓBBAN!