Az „Excel” fórum célja, hogy keretet adjon az Excel felhasználók széles táborának tapasztalataik megosztására, és lehetőséget a segítséget kérőknek. Az alábbi összefoglaló azért készült, hogy segítse a helyes kérdésfeltevést.
– Írd le szabatosan a problémát. Úgy fogalmazz, hogy ne csak te magad, de a szakértő is megértse, mire szeretnél választ kapni.
– Írd le, hogy milyen verziójú Excellel dolgozol. (Vagy ha nem – ill. nem csak – Excel, akkor micsoda?)
– Írd le, hogy milyen úton indultál el, és hol akadtál el rajta.
– A kérdés megértése szempontjából sokat segíthet, ha feltölteszt egy képet, amin látszik, hogy mit szeretnél, vagy illusztrálja azt.
– Még jobb, ha feltöltesz egy minta munkafüzetet valahová (pl. data.hu). Feltöltés előtt távolítsd el belőle a nem publikus adatokat.
– Ha a feladat jellege olyan, célszerű az "előtte" és "utána" állapotokat bemutatni. (Miből kellene csinálni mit?)
– Ha VBA kódon kell javítani, másold be a releváns kódrészt. Rövid kód mehet hozzászólásba, hosszú kód inkább ide: http://pastebin.com/
– Ha valami nem úgy működik, ahogy kellene, add meg a rendellenes viselkedés jellemzőit, a hibaüzenetet, és a hibát okozó programsort.
A Microsoft Office Excel 2003-ban, hogy lehet számokhoz a négyzetméter mértékegységet beállítani úgy, hogy a 2-es felső indexben legyen? Így próbálkoztam: kijelöltem a számokat, Formátum-->Cellák-->Egyéni Normál" m^2".
Akkor a másik oldalon egy OFFSET (magyar verziója OFFSZET)-be beraknám ezt:
=ADDRESS(SUM(--(A1:A9=B20)*ROW(A1:A9)),2,,,"sheet1") (angol excel-em van, szóval ezt még át kell alakítsd magyar függvényekre (SUM=SZUM, ROW=SOR, ADDRESS=?)
Ha nincs biztonsági mentésed, akkor szerintem sehogy.
Ha céges környezetben dolgoztál, akkor lehet van automatikus archiválás, ekkor hálózati rendszergazda, illetve az intézőben megnézheted, hogy vannak-e előző verziók az adott könyvtárhoz.
Excelben dolgoztam, nagyon fontos adatokkal napok óta. Egy másik mappában ennek mintájára akartam egy másik excel fájt, de másolás helyett véletlenül parancsikont hoztam létre. Az új excel fájlban is dolgoztam, lementettem, de ezzel ugye felülírtam az eredeti fájt, amiből eltűntek a nagyon fontos adatok. Amatőr hiba, tudom... Hogyan tudom visszahozni az eredeti állaptot?
Az utolsó válasz volt a legszimpatikusabb, és szerintem a legegyszerűbb is, mert az én kódom is úgy nézett ki, csak nem volt benne az Application.ExecuteExcel4Macro("GET.DOCUMENT(50)") parancs, ami tökéletesen összeszámolja 2003-ban is az összes oldalt! :)
A többit nem próbáltam, mert ez már megfelelő eredmény hozott.
A kód, hátha szüksége van rá valakinek: :)
Sub Minden_második_oldal_nyomtatás() dim i, TotalPages as integer
TotalPages = Application.ExecuteExcel4Macro("GET.DOCUMENT(50)") 1: k = CVar(InputBox("Add meg a első oldal számát!", "Első oldalszám megadása")) If k <> "" Then On Error GoTo Hiba k = k / 1 On Error GoTo 0 For i = k To TotalPages Step 2 'ActiveWindow.SelectedSheets.PrintOut From:=i, To:=i, Copies:=1, _ ' ActivePrinter:="PDFCreator a(z) Ne00: kimeneten", Collate:=True ActiveSheet.PrintOut From:=i, To:=i, Copies:=1, Collate:=True Next i End If Exit Sub Hiba: If Err.Number = 13 Then MsgBox ("Csak számot adhatsz meg!") Resume 1 End If End Sub
Van olyan nyomtatóbeállítás, hogy manuális-duplex-et nyomtasson, ez azt jelenti, hogy először (azt hiszem) a páros, utána a páratlan lapokat nyomtatja ki (asszem az utolsó lapot először és így visszafele).
Ha ezt akarod elérni, akkor lehet egyszerűbb ezt a property-t beállítani.
Ismét egy kérdéssel fordulok nagy publikum elé! :)
Meg szeretném tudni annak a változónak a nevét, amely megmondja, hogy egy munkalapon az éppen aktuális nyomtató-, illetve oldalbeállítással hány oldalas a munkafüzeztem.
Ha ezt tudom, akkor egy for ciklussal ki tudom nyomtatni a páros illetve a páratlan oldalakat az excel 2003-ban.
Szerintem a Munkafüzet2 fájl Open és Close eseményébe kellene betenni egy olyan kódot, ami a Munkafüzet1 megfelelő celláiba beírja az aktuális pontos időt.
A következő probléma megoldásában kérem a segítségeteket:
Adott két munkafüzet (Munkafüzet1.xlsm; Munkafüzet2.xlsm) . A feladat az lenne, hogy a Munkafüzet1-ből kell megnyitni a Munkafüzet2-t, és mérni kellene valahogy azt, amikor a megnyitás megtörtént, illetve amikor bezárták a Munkafüzet2 fájlt (a két időpont lenne a lényeg). A mérés eredményét pedig be kellene írni a Munkafüzet1-be.
A megoldásra az alábbiakat próbálgatom, de valamiért nem működik.
A Munkafüzet2 megnyitása és a mérés indítása a Munkafüzet1.xlsm – Munka1 munkalapján történt dupla kattintással történik:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
A Munkafüzet2.xlsm bezárása a Munkafüzet2.xlsm - Munka2 munkalapjára kattintással történik:
Private Sub Worksheet_Activate()
ActiveWorkbook.Close
End Sub
A mérés leállítása a Munkafüzet2.xlsm bezárása után a Munkafüzet1.xlsm újbóli aktiválásakor történik:
Private Sub Workbook_WindowActivate(ByVal Wn As Window)
’mérés leállítása
MsgBox "Munkafüzet1 - Workbook_WindowActivate"
End Sub
A problémám az, hogy ha a Munkafüzet2.xlsm fájlt nem „hagyományosan” a Bezárás menüponttal vagy az ablak bezáró „X”-re kattintással zárom be, hanem a fenti Munka2 munkalapra kattintással, (ActiveWorkbook.Close paranccsal) akkor nem aktiválódik a Munkafüzet1.xlsm „WindowActivate” eseménykezelője.