Keresés

Részletes keresés

Delila10 Creative Commons License 2013.06.12 0 0 21518

Szarvashibát követtem el. Többeket (ScreenUpdating, DisplayAlerts) kikapcsoltam, és azzal voltam, hogy ezek között volt az EnableEvents  is. Most vettem észre a hiányát, hogy rám olvastad.

 

K ö s z ö n ö m!

 

Off: Mikor alszol? Éjjel, és hajnalban is itt vagy. On:

Előzmény: Törölt nick (21516)
Delila10 Creative Commons License 2013.06.12 0 0 21517

Lehet, hogy a Selection.PasteSpecial Paste:=xlPasteValues helyett van olyan módszere az értékbeillesztésnek, amit nem ismerek, és nem kell a másolat helyére állni előtte?

Előzmény: Kutyasimogato (21514)
Törölt nick Creative Commons License 2013.06.12 0 0 21516

Szerintem inkább a másolatok készítése idejére kapcsold ki az eseményeket.

Előzmény: Delila10 (21515)
Delila10 Creative Commons License 2013.06.12 0 0 21515

Arról a bizonyos 11. lapról készítek másolatokat egy ciklusban, ahol szükségszerűen a másolt lap lesz aktív, akkor pedig az első lap hivatalból elé ugrik. Most a másolatok készítese után beírtam, hogy szaladjon vissza az első a helyére.

 

Eddig irányított beillesztéssel, értékeket illesztettem be az elsőről a 11-n. lapokra, annál rá kellett állni az n-re. Sima másolásnál nem szükséges az n. lapra állás. Ezt végül másképpen, hivatkozásokkal oldottam meg.

Előzmény: Törölt nick (21513)
Kutyasimogato Creative Commons License 2013.06.11 0 0 21514

Köszönöm az ötletet! Megoldotta a problémát. :)

 

A teljes kód külsős rendszeren nem tesztelhető, mert a kód nagy része adatokat importál a vállalatirányítási rendszerünkből. Ha kíváncsiságból mégis szeretnél ránézni, akkor megállítom az aktuális eljárásnak megfelelő formánál és elküldöm a kód más rendszerből is használható részét. (Előtte azért letesztelem, hogy pusztán a kivágott kóddal is megakad-e, vagy csak a teljessel együtt. (Sanszos, mert bizti az aktuális kódban van valami, amitől bugzik.)

Előzmény: Törölt nick (21512)
Törölt nick Creative Commons License 2013.06.11 0 0 21513

A ciklusod Worksheet(n).Select utasítást tartalmaz? :-)

Előzmény: Delila10 (21509)
Törölt nick Creative Commons License 2013.06.11 0 0 21512

A Hidden tulajdonsággal időnként szoktak lenni gondok. Próbáld meg így:

 

Range("A:A,F:F,L:M,O:S").EntireColumn.ColumnWidth = 0

 

De igazából csak jó lenne az a teljes kód, mert így nem nagyon lehet reprodukálni a problémát. Van a topikleírásban egy link, hogy hová lehet pakolni a hosszú kódokat.

Előzmény: Kutyasimogato (21510)
Törölt nick Creative Commons License 2013.06.11 0 0 21511

Ja. Szerencsétlen narkósok :)

Előzmény: Eredő Vektor (21508)
Kutyasimogato Creative Commons License 2013.06.11 0 0 21510

Sziasztok!

 

 Megakadtam egy agyrepesztően idegesítő dolgon. Oszlopokat szeretnék elrejteni. Az alábbi megoldásokkal próbálkoztam eddig:

 

 1: Range("A:A,F:F,L:M,O:S").EntireColumn.Hidden = True

 

 Ha ezt bezárom egy eljárásba, akkor azt teszi, amire hivatott. Amint beteszem a programba, onnantól csak az "A" oszlopot hajlandó elrejteni. -.- Gondoltam, hogy lehet, hogy sok az agyának, mert a 800. sor után kerül sorra, addigra lehet befárad az Excel, vagy nem is tudom... Tehát szétszedve + range lecserélve, biztos, ami ziher

 

 2:

Columns("A:A").EntireColumn.Hidden = True

Columns("F:F").EntireColumn.Hidden = True

Columns("L:M").EntireColumn.Hidden = True

Columns("O:S").EntireColumn.Hidden = True

 

 A 2. verzió is csak az "A"-t rejti el a programban futtatva. Sebaj, biztos retardáltra dolgozza magát az Excel, ezért összefolyik neki a parancs, ahogy nekem a betűk a szemem előtt. Íme, a never go full retard elvnek ellentmondó próbálkozás is:

 

 3:

Columns("A:A").EntireColumn.Hidden = True

Cells(1, 2).Select 'fake

Columns("F:F").EntireColumn.Hidden = True

Cells(1, 3).Select 'fake

Columns("L:M").EntireColumn.Hidden = True

Cells(1, 2).Select 'fake

Columns("O:S").EntireColumn.Hidden = True

 

 Persze ez is csak az A-t rejti el. Nem értem, hogy mi van... Egyébként minden próbálkozás az eredményt tekintve kiváló, ha szubrutinként hívom meg... De ez így nagyon nem elegáns. A kódot nem vágnám be, mert hosszú, de oszloptörlések vannak közvetlenül az elrejtés előtt a kódban. Ha ez lenne a baj, akkor sem értem...

 

 Előre is köszi az ötleteket, javaslatokat! :)

Delila10 Creative Commons License 2013.06.11 0 0 21509

Egy idétlen krimi nézése közben eszembe jutott a megoldás, míg a képernyőn gyilkolászott a tettes.

 

Mikor a napokat tartalmazó lapokon haladtam a ciklussal (11-től az utolsóig), az első lap mindig az aktuális elé furakodott a remek makród mellékhatásaként, felborítva a sorrendet. Ezt sikerült megoldanom: a ciklusba beírtam, hogy szaladjon vissza a helyére.

 

Köszönöm a felajánlást.

 

Előzmény: Törölt nick (21505)
Eredő Vektor Creative Commons License 2013.06.11 0 0 21508

Igazad. Meg van olyan is, aki inkább eladja magát az indapass-nak, minthogy lemondjon róla. 

Előzmény: Törölt nick (21506)
Sánta Kutya (SK) Creative Commons License 2013.06.11 0 0 21507

Bummbumm! Bummbumm!

Matuska, nem mondja folyton, hogy bumm!

Igenis, bummbumm!

Előzmény: Törölt nick (21506)
Törölt nick Creative Commons License 2013.06.11 0 0 21506

Off: Aki mindig csak robbantgat, az nem tud meglenni excel nélkül. Igazam van? On:

Törölt nick Creative Commons License 2013.06.11 0 0 21505

Ne búsulj, biztos meg lehet oldani. Csak az a baj, hogy nem értem :) 

De ha elküldöd privátba, megszakértem.

Előzmény: Delila10 (21503)
Eredő Vektor Creative Commons License 2013.06.11 0 0 21504

Aha.

HÉT.SZÁMA("2012.12.31";2) + HÉT.SZÁMA("2013.12.01";2)

 

Úgy értettem, hogy egy olyan riport elkészítése életszerű lehet, ahol az előző évvel együtt folytatólagosan kérik a hetek megszámozását. Ahogy például a hónapokkal is megteszik az annuitásos törlesztőszámításnál. Ott sem 1-12 hónap van, 1-60 hónap pl. az 5 éves hitelnél. Persze hétnél ez nem jellemző, de találkoztam én már mindenféle váratlan dologgal.

Az említett pédához természetesen nem illik, kizárólag azzal példálóztam, hogy mivan, ha mégis... alapon kerüljük már meg, hogy bal() fgv helyett minden eshetőségre egy arra valót használunk, ami szépen megformázza azt a számot (szöveg())

 

 

Előzmény: Törölt nick (21499)
Delila10 Creative Commons License 2013.06.11 0 0 21503

Köszönöm. Mint kiderült, sajnos az én feladatomhoz nem jó.


Van 10+1 lapom. A +1 tartalmazza a hónap első napjának adatait. Agyba-főbe formázott, hétköznap, szombat, vasárnap, és ünnepnap oszlopai különböző háttérszínekkel a megadott dátum szerint.


Egy makró bekéri az évet és hónapot. A 11. lapból annyit másol a füzet végére, ahány nap szükséges az adott hónaphoz, pl. nem szökőévben februárnál 27-et.


A napok lapjai a füzet első lapjáról vesznek adatokat, ezért lett volna jó, ha az mindig az aktuális lap mellett van. Az n-edik lapra állva az első lap az n-1-edik helyre lép. Viszont ha rálépek az elsőre, az előre szalad, és ott vagyok, ahol voltam.

 

Kihagyhatnám az előre fuss utasítást, marad az első lap az n-1-edik helyen. Akkor meg más hiba lesz. Egy másik makró az elsőről irányított beillesztéssel másol oszlopokat a napok lapjaira. Itt a For lap% = 11 To Worksheets.Count bolondul meg, mert a korpa közé keveredett a disznó.


Szomorú vagyok, nagyon jó lett volna.

Előzmény: Törölt nick (21497)
mimi_bacsi Creative Commons License 2013.06.11 0 0 21502

Köszönöm a válaszokat, ezeknek a figyelembe vételével sikerült megoldanom a feladatomat!

Törölt nick Creative Commons License 2013.06.11 0 0 21501

Annyi csak az osszefugges hogy nem vagyok annyira jartas a szovegformazos fuggvenyekben :)

Előzmény: Eredő Vektor (21495)
Törölt nick Creative Commons License 2013.06.11 0 0 21500

Nem ertem :)

Evente 52 het van. Ha masik evrol beszelunk annak meg az eleje lesz mas (2012.01 vs 2013.01) igy nincs utkozes.

Előzmény: Eredő Vektor (21496)
Törölt nick Creative Commons License 2013.06.11 0 0 21499

El tudod képzelni, hogy a HÉT.SZÁMA függvény 99-nél nagyobb értéket adjon vissza?

Előzmény: Eredő Vektor (21496)
Törölt nick Creative Commons License 2013.06.11 0 0 21498

Olyasmire gondoltam, hogy ha pl. Munka1-en egy képlet munkalapokon átívelő összeadást tartalmaz (pl. lásd itt: http://www.officearticles.com/excel/sum_the_same_cell_in_multiple_microsoft_excel_worksheets.htm),  akkor a lapok átrendezése rögtön körkörös hivatkozást fog okozni, ami beláthatatlan következményekkel járhat. Nekem pl. teszteléskor felugrott a körkörös hivatkozás című ablak, és azóta sem tudom bezárni :-)

Pedig a lapok sorrendjét már helyreállítottam.

 

Előzmény: pimre (21494)
Törölt nick Creative Commons License 2013.06.11 0 0 21497

Nemtom, talán valami ilyesmi:

 

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    Application.EnableEvents = False
    Application.ScreenUpdating = False
    If Sh.Name <> "Munka1" Then
        If Sh.Index > 5 Then
            ThisWorkbook.Worksheets("Munka1").Move before:=Sh
        Else
            ThisWorkbook.Worksheets("Munka1").Move before:=ThisWorkbook.Worksheets(1)
        End If
        Sh.Activate
    End If
    Application.ScreenUpdating = True
    Application.EnableEvents = True
End Sub

Előzmény: Delila10 (21492)
Eredő Vektor Creative Commons License 2013.06.11 0 0 21496

pl. a right-es megoldás működik 99-ig, de utána már nem. (A példánál maradva: 2 évben lehet 99-nél több hét is - hisz életszerű lehet)

Előzmény: Törölt nick (21493)
Eredő Vektor Creative Commons License 2013.06.11 0 0 21495

az összefüggést nem annyira értem - egyébként az említett függvények tulajdonsága, hogy használatuk során egy számból szöveg lesz

Előzmény: Törölt nick (21493)
pimre Creative Commons License 2013.06.11 0 0 21494

"Persze ha valami miatt fontos a lapok sorrendje, akkor ez a megközelítés nem jó."

 

Feltételezem, hogy ha fontos is a lapok sorrendje, az nem az adatbevitel közben érdekes. Ezért el tudom képzelni, hogy elegendő a munkafüzetből való kilépéskor helyreállítani:

 

Private Sub Workbook_BeforeClose(Cancel As Boolean)

    Application.EnableEvents = False

    Application.ScreenUpdating = False

    ThisWorkbook.Worksheets("Munka1").Move before:=Worksheets(1)

    Application.ScreenUpdating = True

    Application.EnableEvents = True

End Sub

 

Előzmény: Törölt nick (21484)
Törölt nick Creative Commons License 2013.06.11 0 0 21493

Igaz, en jellemzoen szamokkal dolgozom ezert a RIGHT/LEFT/MID-et gyakrabban hasznalom. Vegulis mindegy :)

Előzmény: Eredő Vektor (21491)
Delila10 Creative Commons License 2013.06.11 0 0 21492

Ez klassz!

 

Mit kellene a feltételhez fűzni, hogy pl. max az 5. lap kiválasztásáig tegye elé a Munka1 lapot?

Előzmény: Törölt nick (21484)
Eredő Vektor Creative Commons License 2013.06.11 0 0 21491

RIGHT("0"&Hét.száma("dátum";2),2)

helyett

 

inkább így: 

szöveg(Hét.száma("dátum";2);"00")

 

(persze az eredmény ugyanaz, csak azt akartam megmutatni, hogy erre is van jól célzott függvény)

 


Előzmény: Törölt nick (21490)
Törölt nick Creative Commons License 2013.06.11 0 0 21490

A lenti kepletet kell modositani:

 

=ÉV("dátum") &". "&RIGHT("0"&Hét.száma("dátum";2),2)

 

Ez azt csinalja, hogy minden hét ele berak egy nullat, majd jobbrol (azaz a vegerol visszafele) 2 szamjegyet mutat. Ergo 1-bol 01 lesz es 01 latszik, 12bol 012 lesz de szinten csak 12 latszik.

 

Megj.: a RIGHT-ot nemtom mi magyarul, majd az okosok megmondjak :)

Előzmény: mimi_bacsi (21488)
mimi_bacsi Creative Commons License 2013.06.11 0 0 21489

 

Így néz ki...:-(

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!