Keresés

Részletes keresés

toccata Creative Commons License 2007.12.02 0 0 6418
Sajnos mind a Word-nek, mind az Excel-nek sajátossága, hogy sok szemetett is elment a fájlokba.
Nálam már sok alkalommal segített, hogy egy M$ fájlt OOo-val (OpenOffice.org-gal) nyitottam meg, aztán vele ismét elmentettem open document formátumban is, és M$ formátumban is. Mindenféle változtatás nélkül.
Az open document formátum eleve tömörített, így kisebbek a fájlméretek, csakhogy a M$ programok nem tudják kezelni őket. :(
Ám a legtöbb esetben a M$ formátunban is lecsökkentek a fájlméretek. Volt, amikor kevesebb, mint a fele lett. A szemét nem lett elmentve.
Próbáld ki!
Előzmény: maagnes (6412)
Delila669 Creative Commons License 2007.12.02 0 0 6417

Megér egy próbát, mentsd el más néven a dokumentumot.

 

A Wordnek megvan az a sajátossága, hogy a doc eltárolja a benne végzett módosításokat, amik növelik a méretét. Ha az új fájl mérete kicsi, OK. Ha nem, akkor egy újonnan megnyitott doc-ba másold át a régi szövegét, mentsd el, ezután csatolj.

 

Mivel sok diagramot kell csatolnod, érdemes az első csatolást makróra rögzíteni, billentyű kombinációt rendelni hozzá, és a többit már ezzel csatolni.

byszka11 Creative Commons License 2007.12.01 0 0 6416
Sziasztok!

Egy kis segítséget szeretnék kérni.

Adott egy Form, melyen van egy Combobox, melynek a Text-e alap állapotban üres. Labelekben megjelennek különböző adatok, melyek a Combobox értékétől függnek. Gombnyomásra megnyílik egy másik Form, ahol a Labelekben megjelenő értékeket lehet módosítani a "Lezárás" gombbal. Amennyiben a Combobox üres, nincs is baj, de ha nem akkor a Combobox folyamatában hibát jelez. A probléma az, hogy egy olyan munkalapon próbálja végrehajtani a feladatot ami nem is szerepel a Combobox eseményében. A konkrét kérdés igazából az, hogy a Combobox Click eseménye miért fut le amikor nem is történik benne változás és nem is kattintok rá csak egy másik Form bezárul, vagy ha ez mindenképpen lefut, hogyan lehet, hogy olyan munkalapra megy, ami nem is szerepel az eseményben.

Előre is köszönöm.
maagnes Creative Commons License 2007.12.01 0 0 6415
Nagyon köszi, a csatolás tényleg jó lenne (elvileg így próbálom csinálni), de mégsem csökken a fájl mérete - nem tudom, miért.
Előzmény: Delila669 (6414)
Delila669 Creative Commons License 2007.12.01 0 0 6414

A csatolásnak még is az előnye a beillesztéssel szemben, hogy ha az Excelben módosítod a diagramot, a Wordben is annak megfelelően változik.

 

Ha némelyik diagramnál azt akarod, hogy a Wordben a mostani érték maradjon, akkor azokat ne csatold, hanem illeszd be.

Előzmény: maagnes (6412)
Delila669 Creative Commons License 2007.12.01 0 0 6413

Ezt ajánlom:

 

Az Excelben kijelölöd a diagramot, Ctrl+C-vel másolod.

Átváltasz a Wordbe, Szerkesztés/Irányított beillesztés/Csatolás.

 

Így nem a képet (diagramot), hanem csak az útvonalát menti a docba, de az ábrák megjelennek.

 

Ha másik gépre átviszed, ugyanolyan útvonalon legyenek elérhetőek az ábrák.

Előzmény: maagnes (6412)
maagnes Creative Commons License 2007.12.01 0 0 6412

Sziasztok!

 

Számomra rejtélyes ügyben szeretnék segítséget kérni. Excelből Wordbe másoltam át sok diagramot, az eredmény egy 16 MB-os doc lett, nekem pedig kisméretű fájl kellene. Már rájöttem, hogy képként kellett volna átmásolni a diagramokat Irányított beillesztéssel, nem pedig sima vágólappal. Nekiálltam kitörölni az ábrákat és az említett módon újra beilleszteni, de a doc fájl mérete nem változott  - még akkor is 16 MB maradt, amikor minden létező ábrát és szöveget kitöröltem belőle. Meg tudná mondani valaki, hogy hogyan tudnám csökkenteni a méretet úgy, hogy csak az ábrákat cserélem?

 

Előre is köszi!

Törölt nick Creative Commons License 2007.11.29 0 0 6411
Passz. De közben rájöttem, hogy az én megoldásom se jó.
:(
Előzmény: Delila669 (6409)
Delila669 Creative Commons License 2007.11.29 0 0 6410

Igen, beszedi.

Talán ez úgy-ahogy elfogadható:

 

    Selection.FormatConditions.Delete
    Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlBetween, _
        Formula1:="100", Formula2:="500"
    Selection.FormatConditions(1).Interior.ColorIndex = 3
    Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlBetween, _
        Formula1:="=""A""", Formula2:="=""z"""
    Selection.FormatConditions(2).Interior.ColorIndex = 3

 

Ha nem is tökéletes, de legalább az üres cellákat nem színezi.

Előzmény: Törölt nick (6408)
Delila669 Creative Commons License 2007.11.29 0 0 6409

Egy a baj az adatérvényesítéssel. Makróból történő feltöltésnél bármit elfogad.

Vajon miért?

Előzmény: Törölt nick (6405)
Törölt nick Creative Commons License 2007.11.29 0 0 6408
Ezzel az a probléma, hogy a

Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, _
Formula1:="=""chr(64)"""

szűrő mindent átenged, aminek az első karaktere chr(64)-nél kisebb.
Pl. "#", " ", "3vnsfgder"
Ezek mind átmennek. Attól függően, hogy az 1-2. feltételben beállított számhatárok micsodák, ezek a karaktersorozatok átmehetnek mind 3 szűrőn, és nem lesznek pirosak.
Előzmény: Delila669 (6407)
Delila669 Creative Commons License 2007.11.29 0 0 6407
Sajnos, ezt nem tudom, azt viszont igen, hogy a második feltételnél nem chr(65), hanem chr(64) kell (A betű).
Előzmény: Törölt nick (6402)
Törölt nick Creative Commons License 2007.11.29 0 0 6406
Igen, ez is egy jó megoldás lehet. A helyzet az, hogy kezdő vagyok, most tanulgatom az excel és a makrózás fortélyait...
Előzmény: Jozsef (6403)
Törölt nick Creative Commons License 2007.11.29 0 0 6405
Bingó!
Van még köztünk, aki gondolkodik is :))
Előzmény: Jozsef (6403)
Törölt nick Creative Commons License 2007.11.29 0 0 6404
Köszönöm szépen! Tökéletesen működik, de az üres cellát ez is kipirosozza.
Előzmény: Törölt nick (6401)
Jozsef Creative Commons License 2007.11.29 0 0 6403
Cells(2,2).Value = 3 ), majd a makró futása után (a táblázat felhasználásakor) "jelezzen a cella", ha esetleg valaki szám helyett szöveget írna ide.

Bocs, de nem inkább érvényességi feltételt kellene beállítani erre cellára, nem feltételes formázást?! Ilyenkor a szöveget be sem engedné írni a cellába. (Normál Excelben Adat/Érvényesítés menüpont, de le is makrózható)
Üdv
József
Előzmény: Törölt nick (6399)
Törölt nick Creative Commons License 2007.11.29 0 0 6402
Köszönöm, már csak az a probléma, hogy ez a megoldás az üres (érték nélküli) cellát is pirosozza. Lehet ezen finomítani?
Előzmény: Delila669 (6400)
Törölt nick Creative Commons License 2007.11.29 0 0 6401
Az én megoldásom ugyanerre:


Dim Rng As Range, AlsoHatar As Single, FelsoHatar As Single

Set Rng = Cells(2, 2) 'itt állítod be, hogy melyik celláról van szó
AlsoHatar = 1
FelsoHatar = 100

With Rng
.FormatConditions.Delete
.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=""<>SZÁM(" & Rng.Address & ")""" 'itt vizsgálja, hogy szám-e
.FormatConditions(1).Interior.ColorIndex = 3
.FormatConditions.Add Type:=xlCellValue, Operator:=xlNotBetween, _
Formula1:=CStr(AlsoHatar), Formula2:=CStr(FelsoHatar) 'itt vizsgálja, hogy a határok között van-e
.FormatConditions(2).Interior.ColorIndex = 3
End With

Előzmény: Törölt nick (6399)
Delila669 Creative Commons License 2007.11.29 0 0 6400

Makrórögzítéssel vittem be. A 100 alatti, az 500 fölötti, és a szöveges értékek hátterét pirosítja ki.  Ha a betűt akarod színezni, az Interior helyett írj Font-ot.

 

    Selection.FormatConditions.Delete
    Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlLess, _
        Formula1:="100"
    Selection.FormatConditions(1).Interior.ColorIndex = 3
    Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, _
        Formula1:="500"
    Selection.FormatConditions(2).Interior.ColorIndex = 3
    Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, _
        Formula1:="=""chr(65)"""
    Selection.FormatConditions(3).Interior.ColorIndex = 3

Előzmény: Törölt nick (6393)
Törölt nick Creative Commons License 2007.11.29 0 0 6399
Úgy gondoltam, hogy makróból beírok egy számot egy adott cellába ( mondjuk Cells(2,2).Value = 3 ), majd a makró futása után (a táblázat felhasználásakor) "jelezzen a cella", ha esetleg valaki szám helyett szöveget írna ide.
Előzmény: Törölt nick (6397)
toccata Creative Commons License 2007.11.29 0 0 6398
Köszi.
Ki fogom próbálni.
Előzmény: Törölt nick (6395)
Törölt nick Creative Commons License 2007.11.29 0 0 6397
Úgy érted, hogy beállítani a feltételes formátumát egy olyan cellának, ami eme beállítás pillanatában még nem létezik?
Bajos lesz...
Előzmény: Törölt nick (6393)
toccata Creative Commons License 2007.11.29 0 0 6396
Minden lehet.
Nézegettem a beállításokat, de nem emléxom olyanra, hogy sorok vagy oszlopok védelme. Most nincs nálam excel, csak OOo Calc, abban nincs ilyen opció. Majd holnap megnézem a munkahelyemen. De nem is ez a fontosabb, mert ez csak nagyon ritkán fordul elő.
A cella elmozgatás az ami rendszeresen megtörténik, aminek a következtében egy csomó számolás hibát ereményez, és eléggé macerás a visszakeresés, hogy hol kefélődött el a dolog.
Szóval minden ötlet érdekel.
Előzmény: Törölt nick (6392)
Törölt nick Creative Commons License 2007.11.29 0 0 6395
Jajj.
Az első Sub-ból a
Sheets("Munka2").Range("A1") = Sheets("Munka2").Range("A1") + 1
sor törölhető.
Ez csak egy ellenőrző/tesztelő szerepet játszott. Nincs rá szükség.
Előzmény: Törölt nick (6394)
Törölt nick Creative Commons License 2007.11.29 0 0 6394
Szóval valami ilyesmire gondoltam:

Standard kód modulra:

Public ChangedAreas As Long

Sub ChangedAreasInit()
ChangedAreas = 0
Sheets("Munka2").Range("A1") = Sheets("Munka2").Range("A1") + 1
End Sub

Munkalap modulra
Private Sub Worksheet_Change(ByVal Target As Range)
ChangedAreas = ChangedAreas + 1
If ChangedAreas = 2 Then
Application.Undo
MsgBox "Nono. Ne húzgáld a cellákat."
End If
Application.OnTime Now + 1 / 864000, "ChangedAreasInit"
End Sub

Azon alapszik az egész, hogy ha cellamozgatás van, akkor a Worksheet_change esemény 2x hajtódik végre. Egyszer az elmozgatott, egyszer pedig a felülírt cella váltja ki. Ha minden kiváltott eseménynél eggyel növelem a változások számlálóját, akkor a cellahúzás során a számláló értéke kettővel nő. Vagyis, ha az érték 2, akkor cellamozgatás történt. Ekkor a kód végrehajt egy visszavonás (Undo, Ctrl+Z) műveletet. És minden változás után 0.1 másodperccel nullázom a számlálót.

Időzítés problémák esetleg lehetnek.

A cellamozgatás során a 2 change esemény egymás után gyorsan lefut, nincs közte 0.1 másodperc, tehát a számláló eléri a 2 értéket, és a kód figyelmeztet, illetve visszavonja a húzást. A felhasználó viszont valószínűleg nem fog 0.1 másodpercen belül 2 különböző cellát módosítani, ezért a számláló sosem éri el a 2-t, és nem fog a kód téves risztást küldeni.

Ha meg a felhasználó villámgyors, akkor sem történik katasztrófa, legfeljebb egy művelete visszavonódik, és nem érti, hogy miért ne húzgálja a cellákat.
:)

Kísérleteim szerint a sorbarendezés meg a képleteket tartalmazó cellák automatikus frissülése nem zavar be. Más probléma persze előfordulhat, sosem lehet tudni.

Előzmény: Törölt nick (6392)
Törölt nick Creative Commons License 2007.11.29 0 0 6393

Sziasztok!

 

A kérdésem az lenne, hogy makróból be lehet-e állítani egy adott cella (Cells(i,t)) feltételes formátumát, mégpedig azt, hogy az adott cella színe legyen mondjuk piros, ha a futtatás után létrehozott táblázaban valaki szám helyett szöveget vagy adott számtartományon kívüli számot írt a cellába?

 

Előre is köszönöm.

Törölt nick Creative Commons License 2007.11.29 0 0 6392
A sor- és oszlop-törlést nem tudtam reprodukálni. Még ha egy egész oszlopra is megszüntetem a zárolást, akkor sem tudom törölni a védett munkalapon. Viszont a munkalap levédésekor meg lehet határozni, hogy mit tehet és mit nem tehet az, aki nem tudja a jelszót. Itt olyan is van, hogy oszlopok, sorok törlése. Nem lehet, hogy ez van rosszul beállítva nálad?

A cellamozgatás letiltásán még gondolkodom. Van egy tippem, csak még nem tudom, működik-e...
Előzmény: toccata (6390)
Törölt nick Creative Commons License 2007.11.29 0 0 6391
"Egyébként ugyanezt írja a DJCarlos által javasolt link is, amiben nagyon helyesen ajánlja a más formátumú oszlopok azonos formátumúvá konvertálását, viszon az, hogy nem egészíti ki azonos hosszúságúra az egyes oszlopok adatait, hibát okozhat."

Csatlakozom az előttem szólóhoz. Ez az összefűzős módszer az oszlopok adatainak összefűzésével nagyon jó találmány, én is sikerrel alkalmaztam több esetben. Nem csak makróval, hanem képlettel is használható, és egy kis furfanggal megspékelve hihetetlenül egyszerűen meg lehet oldani vele viszonylag bonyolult problémákat.

Amit hozzátennék még 6330-hoz:
1) Nem szükséges különválasztani a feladatot 2 rendezési lépésre. Össze elhet fűzni az F oszlopban A-tól E-ig mind az öt oszlopot, aztán egy lépésben sorbarendezni. Az összefűzés sorrendje az legyen, ami az oszlopok prioritása a sorbarendezésben.
2) A számértékek szöveggé alakítására ezt a javaslatot kaptuk:
=BAL(A1&" ";20)
Ezzel az a probléma, hogy a számok sorrendje így megváltozik. Pl. ha 1-től 10-ig vannak a számok, akkor a sorrend ez lesz: 1, 10, 2, 3, 4, 5, 6, 7, 8, 9. Ez azért van, mert ha jobbra teszem a számok mellé a szóközöket, aztán egyforma méretűre vágom a kapott sztringeket, akkor a számjegyek helyiértéke megváltozhat.
Ha viszont balra teszem a szóközöket, akkor nem. Ezért szerintem a következő képletet kellene alkalmazni a szám sztringgé való alakításakor:
=JOBB(" "&A1;20)


Előzmény: Delila669 (6389)
toccata Creative Commons License 2007.11.29 0 0 6390
Ara tudtok-é valami megoldást, hogy egy munkalap - mely jelszóval védett, de tartalmaz módosítható cellákat is, hogy fel lehessen tölteni adatokkal - celláit az egységsugarú felhasználók ne tudják "elmozgatni" a helyükről?
Illetve, sorokat, oszlopokat ne lehessen törölni? Mert sajnos ez is előfordult már. :(
Delila669 Creative Commons License 2007.11.29 0 0 6389

Az biztos, hogy kissé nehézkes, de jól működik. Sok adattal kipróbáltam, jó az, amit a #6330-ban, és az azt kijavított #6332-ben leírtam.

Egyébként ugyanezt írja a DJCarlos által javasolt link is, amiben nagyon helyesen ajánlja a más formátumú oszlopok azonos formátumúvá konvertálását, viszon az, hogy nem egészíti ki azonos hosszúságúra az egyes oszlopok adatait, hibát okozhat.

Miért gond a makró? A rendezések előtt bekérheted az oszlopok sorszámát.

Előzmény: ndrv (6386)

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