-
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
- Okos Otthon / Smart Home
- AMD Navi Radeon™ RX 9xxx sorozat
- ANNO 1800
- Xbox Series X|S
- Tizenkét tányérra térne át a Toshiba a HDD-piacon
- Borderlands 4
- Meghalt a Windows 10, éljen a Windows 10!
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Analóg fényképezés
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- További aktív témák...
- Bomba ár! HP EliteBook 820 G2 - i5-5GEN I 8GB I 256GB SSD I 12,5" FHD I Cam I W10 I Garancia!
- Huawei Quidway S5324TP-SI-AC - 24G, 4SFP, L2, managed switch
- Apple iPhone 13 128GB, Kártyafüggetlen, 1 Év Garanciával
- HP Thunderbolt 4 kábel
- BESZÁMÍTÁS! Asus H370 i7 9700K 16GB DDR4 512GB SSD RX 6600 XT 8GB SHARKOON RGB Slider ADATA 600W
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: NetGo.hu Kft.
Város: Gödöllő