-
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
-
Fferi50
Topikgazda
válasz
TheSaint #52533 üzenetére
Szia!
Milyen Excel verziód van?
Egyszer régen volt egy olyan hiba - ami ehhez nagyon hasonló volt, amit a formkezelő hibája okozott - növekedtek, zsugorodtak elmásztak a gombok.
Ha jól emlékszem a Microsoft Forms 2.0 object library --- FM20.dll volt a bűnös, azt kellett lecserélni - ill. még egy hozzá kapcsolódó dll-t.
Bár nem hiszem, hogy most is ez lenne a gond, de talán érdemes lenne utána nézned a MS Support oldalán.
Üdv. -
Fferi50
Topikgazda
válasz
TheSaint #52513 üzenetére
Szia!
Nem látok benne olyan problémát, ami okozhatja ezt a jelenséget. Pár kérdésem lenne:
1. milyen környezetben fut és milyen excel verzió?
2. nem értem, hogy miért kell 15 másodpercet várni. Ha a háttérbeni frissítés miatt, akkor a táblázatok BackgroundQuery tulajdonságának False -ra állítása ezt szükségtelenné teszi. Ebben az esetben ugyanis nem fut tovább a makró, amíg a frissítés meg nem történik. Ha engedélyezve van a háttérbeni frissítés, akkor a Refreshing tulajdonság mutatja, hogy folyamatban van-e még a frissítés.
3. Nem értem ezt a sort:If ThisWorkbook.Name = "e.xlsm" Then
A ThisWorkbook mindig az a munkafüzet, amelyből a makró elindult. A Workbook_Open esemény csak ebből a munkafüzetből indulhat.
4. Miért van a végén az 1 perces időzítéssel a Thisworkbook mentése és bezárása?
Ha bezáródik a futás - emalküldés után, akkor honnan tudod, hogy összezavarodott a gombok és a gördítés?
Mi nyitja meg ezt a munkafüzetet?
Vannak-e eseménykezelők a munkafüzetben?
Üdv. -
Fferi50
Topikgazda
-
TillaT
tag
válasz
TheSaint #50366 üzenetére
Köszönöm. Nekem úgy tűnik, hogy nem befolyásolja a korábban tapasztaltakat.
Változatlanul nem tudom a sorazonosítókat és az oszlopazonosítókat használni teljes sorok és/vagy teljes oszlopok kijelölésére.
(Ritkán használok billentyűkombinációkat munka közben. Mindig van egy egér a zsebemben.
- Nekem az "rögzült be", hogy ha pl. be szeretnék szúrni 3 új oszlopot a G oszloptól kezdődően, akkor az oszlopazonosítókon (sorfejléc, oszlopfejléc) mozgatva az egeret kijelölöm a G-I oszlopokat, majd jobb egérgomb és a 'Beszúrás' opciót választom.
- Ha ugyanezt a beszúrást egy olyan munkafüzet munkalapján szeretném megtenni, amelyikben a kódom is fut, akkor táblázaton belül a G oszlophoz tartozó bármelyik sorban ki kell jelöljek 3 egymás melletti cellát, majd a szokásos jobb egérgomb és 'Beszúrás' opció választása után a felugró vezérlőpanelen még ki kell választanom a Beszúrás módját.
Azaz a kijelölés szempontjából teljesen használhatatlanok (kattinthatatlanok) a sor- és oszlopazonosítók.)
Ebből leginkább az zavar, hogy nem értem a "Miért"-jét, hogy miért működik így. -
TillaT
tag
válasz
TheSaint #50363 üzenetére
Köszönöm. Kicsit más úton, a Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) -el próbálkoztam, és eddig úgy tűnik, hogy jól működik. Azonnal reagál az aktív munkalapon a változásokra. Mindegy, hogy beszúrok vagy törlök sorokat, oszlopokat.
Arra még nem sikerült rájönnöm, hogy a kód hatása alatt miért nem engedi a sorok és/vagy oszlopok kijelölésével az egész sorok/oszlopok beszúrását/törlését; hogy miért csak a táblázaton belüli cellák kijelölésével enged beszúrni és törölni egész sorokat/oszlopokat, ... de ez a működés szempontjából kevésbé zavaró, mint ami az alap problémám volt.
Még egyszer köszönöm a segítséget és az együttgondolkodást.
Dim lastRow As Long
Dim lastColumn As Long
Dim scrollArea As Range
Dim ActiveSheetNumber As Integer
Private Sub Workbook_Open()
ThisWorkbook.Sheets(1).Activate
Call ScrollAreaInterpret
End Sub
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Call ScrollAreaInterpret
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Rows.Count > 1 Or Target.Columns.Count > 1 Then
Call ActSheetChange
End If
Call ScrollAreaInterpret
End Sub
Sub ScrollAreaInterpret()
lastRow = ActiveSheet.Cells(ActiveSheet.Rows.Count, "A").End(xlUp).Row
lastColumn = ActiveSheet.Cells(1, Columns.Count).End(xlToLeft).Column
Set scrollArea = ActiveSheet.Range("A1").Resize(lastRow, lastColumn)
ActiveSheet.scrollArea = scrollArea.Address
End Sub
Sub ActSheetChange()
ActiveSheetNumber = ActiveSheet.Index
ThisWorkbook.Sheets(ActiveSheetNumber + 1).Activate
ThisWorkbook.Sheets(ActiveSheetNumber).Activate
End Sub
-
TillaT
tag
válasz
TheSaint #50361 üzenetére
Köszönöm, ezt már próbáltam. Sajnos ez is csak részlegesen tesz úgy ahogy én szeretném. Ennél is el kell kattintani, majd vissza arra a munkalapra, amin korábban a sor/oszlopbeszúrást megejtettem.
Esetleg létezhet olyan metódus, amivel a háttérben, a felhasználó által érzékelhetetlen pillanatig aktívvá tehetnék egy másik munkalapot, majd egyből visszatérnék az adott munkalapra? Így utánozva azt, mintha ténylegesen el és visszakattintottam volna.
Mindjárt teszek is egy próbát. -
Delila_1
veterán
válasz
TheSaint #50295 üzenetére
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 11 Then
Application.EnableEvents = False
Visszajelzes Target.Row 'Meghívjuk a másik makrót, átadva a beviteli sor számát
Application.EnableEvents = True
End If
End SubSub Visszajelzes(sor) ' Itt nevet adhatunk a sorszámnak, nem feltétlen Target.Row legyen a változó neve
'...
End Sub -
Mutt
senior tag
válasz
TheSaint #44814 üzenetére
Szia,
Egy főtáblából szeretnék adott oszlopokat lekérdezni olyan módon hogy a sorok mellé szabadon lehessen megjegyzéseket irogatni és a főtábla változásakor a megjegyzés maradjon...
Megoldás lehet, hogy
1. a főtáblához is hozzáadjuk a gépelt megjegyzést vagy
2. egy segédtáblában tároljuk a megjegyzéséket a főtábla megfelelő sorára mutató azonosítóval együtt.MIndkét megoldás makrót igényel valószínű Worksheet Change eseményt használva.
Az első esetben a makrónak meg kell találnia a főtábla megfelelő sorát és oda átmásolni a megjegyzést.
A második esetben a makrónak egy új táblához kell hozzáfűznie a megjegyzést egy azonosítóval és ezek után a Power Query-vel lehet hozzáadni a riporthoz a megjegyzést.üdv
-
Louro
őstag
válasz
TheSaint #41541 üzenetére
A vezérhangya nem hagyott békén, így lett egy kicsit igényesebbnek tűnő megoldás.
Jelöld ki azt a tartományt, amit színezni szeretnél az első sort kihagyva. Az marad fehér.
Feltételes formázás (conditional formatting), majd a legalsó és New Rule és legalsót válaszd.A képlet: =OR(AND($E1=$E2;CELL("color";$E1)=1);AND($E1<>$E2);CELL("color";$E1)=0))
Majd válasz egy színt a Format alatt lévő Fill fül alatt. Végén maradnak az Ok-Ok.
Mit is csinál a képlet:
Amennyiben megegyezik a két azonosító és az első formázott (színezett), akkor beszínezi. Ha nem egyezik meg az előtte lévővel és az előtte lévő nincs színezve, beszínezi.Így segédoszlop nélkül megúszható
Kipróbáltam is.
-
Louro
őstag
válasz
TheSaint #41535 üzenetére
Lehet gagyi lesz, de 10 másodperc alatt azt mondanám, hogy F oszlopba egy sorszám, ami így nézne ki:
F1: 1
F2 és alatta: =IF(E2=E1;F1;F1+1)Majd erre dobnék egy feltételes formázást úgy, hogy a sorokat színezze aszerint, hogy páros vagy páratlan szám van az F oszlopban.
A feltételes formázásnál saját képletet használnék: =MOD(F1;2)=0, a formátumnál meg a színt kiválasztanám.
-
Louro
őstag
válasz
TheSaint #27021 üzenetére
Megnyitásmentességhez: [link]
A változóhoz:
Dim pathname, filename as stringpathname = "C:\valami\mégvalamibb\ez nem semmi\"
filename = "ez a legjobb fájl a világon.xlsxxx"A fájlnevet ciklussal is generálhatod.
for i=10000 to 10500 step 5
filename = "királyságos_" & i & ".xlsxxx"
nextCsak akkor a fájlműveleteket is a ciklusba tedd
Különben csak a legutolsóval fog dolgozni.
Remélem tudtam segíteni.
Új hozzászólás Aktív témák
- AliExpress tapasztalatok
- Poco F7 – bajnokesélyes
- A fociról könnyedén, egy baráti társaságban
- Semmibe veszi a KRESZ-t a Tesla Mad Max módja
- Milyen CPU léghűtést vegyek?
- Meghalt a Windows 10, éljen a Windows 10!
- Futás, futópályák
- Bestbuy játékok
- Okos Otthon / Smart Home
- Battlefield 6
- További aktív témák...
- HIBÁTLAN iPhone 14 128GB Red -1 ÉV GARANCIA - Kártyafüggetlen, MS3159
- 2025.10.02 - Frissített lista - Lenovo LOQ / LEGION Pro , Yoga Pro (RTX 4060 / 4070 / 4080 / 4090)
- Xiaomi Redmi Note 14 5G 256GB, Kártyafüggetlen, 1 Év Garanciával
- DELL PowerEdge R730xd 16LFF 160TB+400GB 2U rack - 2xE5-2683v4 (16c/32t),256GB RAM,2x10G NET,HBA330
- HIBÁTLAN iPhone 15 Pro 256GB Black Titanium -1 ÉV GARANCIA - Kártyafüggetlen, MS3503
Állásajánlatok
Cég: NetGo.hu Kft.
Város: Gödöllő
Cég: Promenade Publishing House Kft.
Város: Budapest