- iGO Primo
- One mobilszolgáltatások
- Folyamatos vérnyomásmérést kínál a Huawei Watch D2
- Samsung Galaxy Watch7 - kötelező kör
- VoLTE/VoWiFi
- Samsung Galaxy S21 FE 5G - utóirat
- Motorola Edge 50 Neo - az egyensúly gyengesége
- Honor Magic6 Pro - kör közepén számok
- Milyen GPS-t vegyek?
- Egy szenzor, két zoomkamera: újraírta a Huawei a mobilfotózás történetét
-
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 sor
utolso = Range("AW" & Rows.Count).End(xlUp).Row
Set srng = Range("CJ" & elso & ": CJ " & utolso)
For Each cl In srng.Columns(1).SpecialCells(xlCellTypeVisible).Cells
cl.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 Range
elso = 13 ' Ide azt a számot írd, ahol a szűrés kezdődik
utolso = Range("A" & Rows.Count).End(xlUp).Row
Set 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).Cells
cl.Value = "x"
Next
End Sub
Sub masolo_V1()
Dim elso As Integer, utolso As Integer, srng As Range
elso = 13
utolso = Range("A" & Rows.Count).End(xlUp).Row
Set srng = Range("A13:A" & utolso)
srng.SpecialCells(xlCellTypeVisible).Copy
With Sheets("Munka2").Range("A1")
.PasteSpecial Paste:=xlPasteColumnWidths 'bemásoljuk az oszlopszélességet0
.PasteSpecial Paste:=xlPasteValuesAndNumberFormats 'majd az értéket és a számformátumot
End With
Application.CutCopyMode = False
End Sub
Üdv. -
Delila_1
veterán
válasz
gycs02 #52875 üzenetére
Sub Lathatoba_x()
Dim elso As Integer, utolso As Integer
elso = Range("A13:A1000").SpecialCells(xlCellTypeVisible).Row
utolso = Range("A" & Rows.Count).End(xlUp).Row
If elso = utolso Then
Range("A" & elso) = "x"
Else
Range("A" & elso & ":A" & utolso).SpecialCells(xlCellTypeVisible) = "x"
End If
End Sub
Sub masol()
Dim elso As Integer, utolso As Integer
elso = Range("A13:A1000").SpecialCells(xlCellTypeVisible).Row
utolso = Range("A" & Rows.Count).End(xlUp).Row
If elso = utolso Then
Range("A" & elso).Copy Sheets("Munka2").Range("A1")
Else
Range("A13:A1000").SpecialCells(xlCellTypeVisible).Copy Sheets("Munka2").Range("A1")
End If
End 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 Integer
elso = Range("A2:A1000").SpecialCells(xlCellTypeVisible).Row
utolso = Range("A" & Rows.Count).End(xlUp).Row
Range("B" & elso & ":B" & utolso).SpecialCells(xlCellTypeVisible) = "x"
End Sub
Ez meg a szűrt tartomány másolása:
Sub masol()
Dim elso As Integer, utolso As Integer
elso = Range("A2:A1000").SpecialCells(xlCellTypeVisible).Row
utolso = Range("A" & Rows.Count).End(xlUp).Row
Range("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
Hirdetés
- Bitdefender Total Security 3év/3eszköz! - Tökéletes védelem, Most kedvező áron!
- Játékkulcsok olcsón: Steam, Uplay, GoG, Origin, Xbox, PS stb.
- Kaspersky, McAfee, Norton, Avast és egyéb vírusírtó licencek a legolcsóbban, egyenesen a gyártóktól!
- Eladó Steam kulcsok kedvező áron!
- Sea of Thieves Premium Edition és Egyéb Játékkulcsok.
- Azonnali készpénzes nVidia RTX 3000 sorozat videokártya felvásárlás személyesen / csomagküldéssel
- ÁRGARANCIA!Épített KomPhone Ryzen 7 7800X3D 32/64GB RAM RX 9070 XT GAMER PC termékbeszámítással
- BESZÁMÍTÁS! MSI B550M R7 5800X 32GB DDR4 512GB SSD RX Nitro+ 6700XT 12GB Corsair 4000D ASUS ROG 650W
- Csere-Beszámítás! Asztali számítógép játékra! I5 14400F / RX 6900 XT 16GB / 32GB DDR5 / 1TB SSD
- Oppo Reno7 5G 256GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged