- Szerkesztett és makrofotók mobillal
- Xiaomi 15T - reakció nélkül nincs egyensúly
- Huawei Watch GT 6 és GT 6 Pro duplateszt
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Samsung Galaxy Note10 és Note10+ duplateszt
- Google Pixel topik
- Apple iPhone 17 Pro Max – fennsík
- Fotók, videók mobillal
- Yettel topik
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
-
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
-
Fferi50
Topikgazda
válasz
gycs02
#53859
üzenetére
Szia!
Sajnos ötletem sincs.
Illetve esetleg eseménykezelő makróval előidézni a frissítésre vonatkozó felhívást.
Mivel csinálod a forrásra hivatkozás megváltoztatását? Ha makróval, akkor abba ezt is bele lehetne tenni.
Nem hiszem, hogy feltétlenül kell az MS számára a fájl, elég sok expert van náluk, akik a szabatos leírásból tudnak következtetni és ötletet adni.
Üdv. -
Fferi50
Topikgazda
válasz
gycs02
#53857
üzenetére
Szia!
Legalább valamilyen részeredményt elértél. De azért Redmond is megéri a pénzét. Igaz, nem szoktak sietni a bugok (mert ez bizony igencsak az) megszüntetésénél. Mi az, hogy bővítmény esetén funkciók szünnek meg, ráadásul figyelmeztetés nélkül (jó, ez egy költői kérdés volt).
Remélem, nem kell sok fájloddal végigcsinálni a "tisztogatást".
Talán be kellene jelenteni hibaként a MS-nek.
Üdv. -
Fferi50
Topikgazda
válasz
gycs02
#53816
üzenetére
Szia!
"Ha bővítem az adatokkal feltöltött cellát, hiába van a másikban ott a hivatkozás magnyitás után csak akkor frissülnek az adatok, ha a képleteket újramásolom"
Ezt újfent nem egészen értem. Ha eddig A1-X10 volt a tartomány a forrás fájlban és ezt A1-AA100-ra bővíted, honnan kellene tudnia a hivatkozást tartalmazó fájlnak, hogy megváltozott a tartomány? Hiszen csak az eredeti A1-X10-re hivatkozások voltak benne.
Nem fogja érzékelni, hogy bővült a forrás fájl tartománya, honnan is érzékelné.
Egyébként a hivatkozást tartalmazó "kivonat" fájl az eredeti hivatkozás alapján akkor is frissül, ha a forrás fájlt nem nyitod meg.
Ha "aktualizálod" a csatolásokat, akkor nem a képleteket kell újramásolni szerintem, hanem frissíteni kell egyszer (F9, vagy újraszámolás). Azért azt még nézd meg, hogy amikor a képletet aktualizálod, képlet marad-e vagy átváltozik szöveggé.... pl. eléje kerül egy aposztróf (') kvázi véletlenül - mert így szövegként értelmezi, viszont amikor másolod, akkor nem aposztrófosan másolod már. Az Excel sajnos "csodákra képes" néha.
Üdv. -
Mutt
senior tag
válasz
gycs02
#53251
üzenetére
Szia,
Az én válaszom csak kb. 1 év múlva lesz hasznos, de azért bedobom most.
Az Excel tesztverziókban (insider változat) jópár újabb függvény van bevezetés/ismertetés alatt. Az egyik ilyen a PIVOTBY (magyarul KIMUTATÁS.ALAP.SZERINT), amellyel függvénnyel állítható elő egy kimutatás.Alapból egy ilyet fog létrehozni:

Ebben a képletben 4. paraméter (fent a DARAB2) a számítási függvény saját képletekkel is helyettesíthető. Az eredeti kérésben egy 1-est szeretnél látni, ezt egy saját képlettel el lehet érni:
LAMBDA(a;ELŐJEL(DARAB2(a)))
Nekünk csak az első és harmadik oszlopra van szükségünk, amelyet a CHOOSECOLS (magyarul OSZLOPVÁLASZTÁS) függvénnyel lehet megtenni.
A végső képlet:=OSZLOPVÁLASZTÁS(KIMUTATÁS.ALAP.SZERINT(C1:C12;D1:D12;D1:D12;LAMBDA(a;ELŐJEL(DARAB2(a)));0;0;1);1;3)
üdv -
Fferi50
Topikgazda
válasz
gycs02
#53253
üzenetére
Szia!
Én azért nem javaslom, hogy teljes oszlopot (pl. C : C ) adj meg egy képletben, mert nagyobb adatállomány esetén lényegesen lassítja az Excelt. Persze így kényelmes, de érdemes hozzászokni, hogy tartományt adjunk meg a képletekben, akkorát, amekkora nagyságrendileg előfordulhat az adatállományunkban.
Üdv. -
Fferi50
Topikgazda
válasz
gycs02
#52890
üzenetére
Szia!
"Nem megy."
Bocs, ez így értelmezhetetlen számomra. Ilyenkor szükség van a hibajelenség és a hibaüzenet leírására, az excel verzióra ahhoz, hogy lehessen a javításra megoldást találni. És nem, nem feltételenül elég a kép , legjobb egy - publikus adatokat nem tartalmazó, de a használt szerkezetnek megfelő mintafájl közzététele valamelyik - pl. Data.hu - ingyenes oldalon vagy a google driveon megosztva.
Üdv.
Ps. természetesen türelmünk akár a tenger. -
Fferi50
Topikgazda
válasz
gycs02
#52880
üzenetére
Szia!
Azt hiszem ott van a "baj", hogy az utolso sort olyan oszlopban keresed, amiben a szűrés után éppen nincs adat, hiszen ide szeretnéd beírni az x-eket.
"utolso = Range("cj" & Rows.Count).End(xlUp).Row
Set srng = Range("cj" & elso & ":cj" & utolso)"
Így aztán az utolsó sor értéke kisebb lesz mint a 13 induló érték (akár 1 is lehet!), ezért látod azt, hogy felfelé tölti ki az értékeket.
Amint korábban írtam, az utolsó sor értékét abban az oszlopban kell megkeresni, amelyben az utolsó érvényes adat van.
Tehát az AW oszlop alapján keressük meg az utolsó sort és a CJ oszlopot jelöljük ki kitöltendőnek:elso=13 'ha a fejléc a 12 sorban van, akkor ez a lehetséges első szűrt sorutolso = Range("AW" & Rows.Count).End(xlUp).RowSet srng = Range("CJ" & elso & ": CJ " & utolso)For Each cl In srng.Columns(1).SpecialCells(xlCellTypeVisible).Cellscl.Value = "x"Next
Próbáld ki ezt légy szíves.
Üdv.
Ps. A makróknál használd légy szíves </> gombot (MS előtt van). -
Delila_1
veterán
válasz
gycs02
#52880
üzenetére
Nem tartom jó tippnek az elso értékét fixen megadni (elso=13), ugyanis közel sem biztos, hogy a 13. sor értéke megjelenik a szűrt állományban.
Ha a szűrt állomány első sorát keresed meg
(elso = Range("cj13:cj1000").SpecialCells(xlCellTypeVisible).Row), akkor nem kell ciklussal végigpásztázni az adatokat. A ciklus lassítja a futást. -
Fferi50
Topikgazda
válasz
gycs02
#52878
üzenetére
Szia!
Az utolsó sor megállapításánál azt az oszlopot vedd alapul, amelyikben a legtovább van adatod. Szerintem itt az AW a megfelelő, mivel a későbbi oszlopokban, így a BA-ban is lehet olyan eset, hogy nem "ér végig" az adatod az oszlopon. Emiatt az adatok egy része "elveszhet" a másolásnál.
Mire gondolok: AW oszlop azonosító, minden cellában van adat 13-1145-ig. BA oszlopban lehetséges, hogy csak 1142-ig van adat, mert épp olyan jellemzőt tartalmaz, ami nem fordul elő minden sorban (akár közben is lehetnek "lukak", üresen maradó cellák). Ebben az esetben a BA oszlopot figyelve 1142 lesz az utolsó sor értéke és nem 1145. Az utolsó 3 sor lemarad a másolásnál.
Az első makróhoz: Amennyiben a szűrés után nem összefüggő tartomány keletkezik, akkor szerintem gond lehet Delila makrójával. Ha pl. 13-250-ig, 312-650-ig, 900-1100-ig látszanak a sorok, akkor nem kerül be minden résztartományba a kívánt érték. Legalábbis nálam így működött a teszt során. Ezért van a cellánkénti értékadás.
Üdv. -
Fferi50
Topikgazda
válasz
gycs02
#52875
üzenetére
Szia!
Próbáld ki esetleg ezeket:Sub Lathatoba_xV1()Dim elso As Integer, utolso As Integer, srng As Range, cl As Rangeelso = 13 ' Ide azt a számot írd, ahol a szűrés kezdődikutolso = Range("A" & Rows.Count).End(xlUp).RowSet srng = Range("A" & elso & ":A" & utolso) ' ha nem összefüggő a szűrt terület, cellánként kell végigmenni sajnos.For Each cl In srng.Columns(1).SpecialCells(xlCellTypeVisible).Cellscl.Value = "x"NextEnd SubSub masolo_V1()Dim elso As Integer, utolso As Integer, srng As Rangeelso = 13utolso = Range("A" & Rows.Count).End(xlUp).RowSet srng = Range("A13:A" & utolso)srng.SpecialCells(xlCellTypeVisible).CopyWith Sheets("Munka2").Range("A1").PasteSpecial Paste:=xlPasteColumnWidths 'bemásoljuk az oszlopszélességet0.PasteSpecial Paste:=xlPasteValuesAndNumberFormats 'majd az értéket és a számformátumotEnd WithApplication.CutCopyMode = FalseEnd Sub
Üdv. -
Delila_1
veterán
válasz
gycs02
#52875
üzenetére
Sub Lathatoba_x()Dim elso As Integer, utolso As Integerelso = Range("A13:A1000").SpecialCells(xlCellTypeVisible).Rowutolso = Range("A" & Rows.Count).End(xlUp).RowIf elso = utolso ThenRange("A" & elso) = "x"ElseRange("A" & elso & ":A" & utolso).SpecialCells(xlCellTypeVisible) = "x"End IfEnd SubSub masol()Dim elso As Integer, utolso As Integerelso = Range("A13:A1000").SpecialCells(xlCellTypeVisible).Rowutolso = Range("A" & Rows.Count).End(xlUp).RowIf elso = utolso ThenRange("A" & elso).Copy Sheets("Munka2").Range("A1")ElseRange("A13:A1000").SpecialCells(xlCellTypeVisible).Copy Sheets("Munka2").Range("A1")End IfEnd Sub -
Delila_1
veterán
válasz
gycs02
#52871
üzenetére
Szia!
Az „x” beírásához.
Az A oszlopba A2:A1000-ig írtam adatokat, majd szűrtem. A szűrt sorok mellé a B oszlopba íratok X-et.Sub Lathatoba_x()Dim elso As Integer, utolso As Integerelso = Range("A2:A1000").SpecialCells(xlCellTypeVisible).Rowutolso = Range("A" & Rows.Count).End(xlUp).RowRange("B" & elso & ":B" & utolso).SpecialCells(xlCellTypeVisible) = "x"End SubEz meg a szűrt tartomány másolása:
Sub masol()Dim elso As Integer, utolso As Integerelso = Range("A2:A1000").SpecialCells(xlCellTypeVisible).Rowutolso = Range("A" & Rows.Count).End(xlUp).RowRange("A2:A1000").SpecialCells(xlCellTypeVisible).Copy Sheets("Munka2").Range("A1")End Sub -
Fferi50
Topikgazda
válasz
gycs02
#52792
üzenetére
Szia!
Az ActiveWorkbook mindig az éppen aktív munkafüzetet jelenti, függetlenül attól, hogy a makrót honnan indítottad, tehát folyamatosan változik a munkafüzetek változtatásával.
A ThisWorkbook pedig az a munkafüzet, amelyikből a makrót indítottad. Tehát van amikor a két objektum azonos, de több munkafüzet használata esetén általában különbözik. Pl. lehet, hogy van egy munkafüzeted, amiben csak a menük és a hozzájuk kapcsolódó makrók vannak, az adatok pedig más munkafüzet(ek)ben.
Ezért légy óvatos, a kettő nem használható csereszabatosan!
Ez alapján valószínűleg el tudod dönteni, melyik a helyes számodra.
Üdv. -
Fferi50
Topikgazda
válasz
gycs02
#52738
üzenetére
Szia!
Az éppen aktuális fájl teljes nevét az ActiveWorkbook.Fullname utasítással tudod elérni, ezt tárolhatod egy változóban is akár.
Az elérési utat a Path, a rövid nevet a Name tulajdoság adja vissza.
Amikor megnyitsz egy fájlt, akkor az lesz az aktív, tehát megnyitás után le tudod kérdezni a tulajdonságait. Nem kell a Cella függvény hozzá, de abból is megkaphatod az értéket:
Range("A1").TEXT utasítás a cellában ténylegesen megjelenő szöveget (nem a képletet!) adja vissza.
A makrók miatti figyelmeztetéseket szerintem úgy tudod elkerülni, ha engedélyezed a makrókat. Ezen felül vagy inkább ezzel együtt a fájlkezelőben a fájl nevén jobb egérgombbal kattintva, a tulajdonságot kiválasztva alul a Biztonság részben bepipálod a Tiltás felodása négyzetet.
Makróból szerintem az okézás nem megy.
Üdv.
Új hozzászólás Aktív témák
- Apple iPhone 15 128GB, Kártyafüggetlen, 1 Év Garanciával
- Bomba ár! Dell Latitude 5400 - i5-8GEN I 16GB I 512SSD I 14" HD I HDMI I Cam I W11 I Gari
- GYÖNYÖRŰ iPhone 13 128GB Midnight -1 ÉV GARANCIA - Kártyafüggetlen, MS3580, 95% Akkumulátor
- ALIENWARE Area-51 R6 Threadripper Edition 1920X
- DDR5 8/ 16/ 32GB 4800-5600MHz SODIMM laptop RAM, több db- számla, garancia
Állásajánlatok
Cég: NetGo.hu Kft.
Város: Gödöllő
Cég: Promenade Publishing House Kft.
Város: Budapest

Üdv.

Fferi50

