Hirdetés
-
PROHARDVER!
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 LongDim lastColumn As LongDim scrollArea As RangeDim ActiveSheetNumber As IntegerPrivate Sub Workbook_Open()ThisWorkbook.Sheets(1).ActivateCall ScrollAreaInterpretEnd SubPrivate Sub Workbook_SheetActivate(ByVal Sh As Object)Call ScrollAreaInterpretEnd SubPrivate Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)If Target.Rows.Count > 1 Or Target.Columns.Count > 1 ThenCall ActSheetChangeEnd IfCall ScrollAreaInterpretEnd SubSub ScrollAreaInterpret()lastRow = ActiveSheet.Cells(ActiveSheet.Rows.Count, "A").End(xlUp).RowlastColumn = ActiveSheet.Cells(1, Columns.Count).End(xlToLeft).ColumnSet scrollArea = ActiveSheet.Range("A1").Resize(lastRow, lastColumn)ActiveSheet.scrollArea = scrollArea.AddressEnd SubSub ActSheetChange()ActiveSheetNumber = ActiveSheet.IndexThisWorkbook.Sheets(ActiveSheetNumber + 1).ActivateThisWorkbook.Sheets(ActiveSheetNumber).ActivateEnd 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
- Hobby elektronika
- Motorolaj, hajtóműolaj, hűtőfolyadék, adalékok és szűrők topikja
- WoW avagy World of Warcraft -=MMORPG=-
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Milyen TV-t vegyek?
- Xiaomi 14 - párátlanul jó lehetne
- alza vélemények - tapasztalatok
- World of Warships
- Bemutatkozott a Poco X7 és X7 Pro
- Disney+
- További aktív témák...
- HIBÁTLAN iPhone 12 Pro Max 128GB Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS3109
- Apple iPhone 12 Pro 128 GB Pacific Blue 1 év Garancia Beszámítás Házhozszállítás
- Bomba ár! Lenovo ThinkPad T440s - i5-4GEN I 8GB I 128GB SSD I 14" HD+ I Cam I W10 I Garancia!
- Bomba ár! Dell Latitude E5440 - i5-4GEN I 4GB I 320GB I 14" I HDMI I Cam I W10 I Gari!
- ÁRGARANCIA!Épített KomPhone Ryzen 5 7600X 32/64GB RAM RX 9070 16GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Kipróbáltam is.
Különben csak a legutolsóval fog dolgozni.
Fferi50

