-
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
-
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.
-
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

-
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.

-
poffsoft
veterán
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 -
poffsoft
veterán
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

-
Delila_1
veterán
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.
Új hozzászólás Aktív témák
- Diablo IV
- RIOS Gépház: Alap vagy Profi? Két új üzleti előfizetés debütál a Hardveraprón!
- eBay-es kütyük kis pénzért
- Macska topik
- Formula-1
- Debrecen és környéke adok-veszek-beszélgetek
- Vezetékes FEJhallgatók
- Samsung kuponkunyeráló
- Autós topik
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- További aktív témák...
- Kaspersky, BitDefender, Avast és egyéb vírusírtó licencek a legolcsóbban, egyenesen a gyártóktól!
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! Automatikus 0-24
- Bitdefender Total Security 3év/3eszköz! - Tökéletes védelem.
- PC Játékok
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! Automatikus 0-24
- ÁRGARANCIA!Épített KomPhone Ryzen 5 7600X 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- Eladó Samsung Galaxy A53 5G 6/128GB fekete / 12 hónap jótállás
- BESZÁMÍTÁS! ASRock B450M R5 5500 16GB DDR4 512GB SSD RTX 2060 6GB Zalman T3 Plus ADATA 600W
- MacBook Air M4 24GB 512GB Garancia! Starlight / SKY / SILVER
- BESZÁMÍTÁS! Asrock B450M R5 5600 16GB DDR4 512GB SSD GTX 1080 8GB Zalman T3 Plus ADATA 600W
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest







Fferi50