Keresés

Részletes keresés

wawabagus Creative Commons License 2011.08.19 0 0 15883

Respect :-D.

Köszi ezredszerre is :-)!!!

Előzmény: Törölt nick (15879)
Törölt nick Creative Commons License 2011.08.19 0 0 15882

Próbáltad a 3. lehetőséget?

Előzmény: Tündi2003 (15881)
Tündi2003 Creative Commons License 2011.08.19 0 0 15881

Ó, roppant szomorú vagyok, de köszönöm a válaszod! :(

 

A nyomtató is "új", most telepítették Eddig saját nyomtatója volt mindenkinek, de most inkább költséghatékonyak leszünk, és közös, a folyosón elhelyezett hálózati nyomtatónk lett. Eddig ki kellett nyomtatni a fájlt A4-ben, és abból nagyítottam fénymásolón A3-ra, kétoldalasra. Most annyival lett könnyebb, hogy az új nyomtató tud A3-ra nyomtatni, ezt akartam még tovább egyszerűsíteni a makróval, hogy ne kelljen mindennap ennek a fájlnak a nyomtatási beállításaival vacakolni, hanem "írok" egy makrót, hozzárendelek egy gombot az eszköztáron, és csak egy gombnyomás, és kész a kétoldalas, A3-as nyomtatás. De hát ezek szerint marad a naponkénti molyolás a nyomtatóbeállítással.

 

Azért ez gáz, hogy nem lehet Word/Excelben beállítani a nyomtatást makróval... de hát ez van.

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

Excel és Word környezetben nincs lehetőség a nyomtató parmétereinek makróval történő beállítására. Access-ben viszont van. Ha van a gépeden telepítve Access, akkor az alábbi kód lehet, hogy működni fog:

 

Sub Nyomtatás()
    Const acPRDPSimplex = 1
    Const acPRDPHorizontal = 2
    Const acPRDPVertical = 3

    Dim AC As Access.Application, P As Access.Printer
    Set AC = New Access.Application
    AC.Visible = True
    Set P = AC.Printer

    With Options
        .UpdateFieldsAtPrint = False
        .UpdateLinksAtPrint = False
        .DefaultTray = "A nyomtató beállításaival"
        .PrintBackground = True
        .PrintProperties = False
        .PrintFieldCodes = False
        .PrintComments = False
        .PrintHiddenText = False
        .PrintXMLTag = False
        .PrintDrawingObjects = True
        .PrintDraft = False
        .PrintReverse = False
        .MapPaperSize = True
        .PrintOddPagesInAscendingOrder = True
        .PrintEvenPagesInAscendingOrder = True
        .PrintBackgrounds = False
    End With
    With ActiveDocument
        .PrintPostScriptOverText = False
        .PrintFormsData = False
    End With
    P.Duplex = acPRDPVertical
    Application.PrintOut FileName:="", Range:=wdPrintRangeOfPages, Item:= _
        wdPrintDocumentContent, Copies:=1, Pages:="1;4", PageType:= _
        wdPrintAllPages, ManualDuplexPrint:=False, Collate:=True, Background:= _
        True, PrintToFile:=False, PrintZoomColumn:=0, PrintZoomRow:=0, _
        PrintZoomPaperWidth:=16839, PrintZoomPaperHeight:=23814
    P.Duplex = acPRDPSimplex
    Application.PrintOut FileName:="", Range:=wdPrintRangeOfPages, Item:= _
        wdPrintDocumentContent, Copies:=1, Pages:="2-3", PageType:= _
        wdPrintAllPages, ManualDuplexPrint:=False, Collate:=True, Background:= _
        True, PrintToFile:=False, PrintZoomColumn:=0, PrintZoomRow:=0, _
        PrintZoomPaperWidth:=16839, PrintZoomPaperHeight:=23814
    AC.Quit
End Sub

 

A kék sorok állítják be elvileg az egy- illetve kétoldalas nyomtatást. Ha az acPRDPVertical nem jó, próbáld meg acPRDPHorizontal beállítással is.

A Tools->References menüben a Microsoft Access Object Library-t be kell ikszelni.

 

Na most a helyzet az, hogy nekem a fenti kód nem működött. Viszont lehet ennek az is az oka, hogy itt nálunk a rendszergazda jogosultaságot igénylő beállítások le vannak tiltva. Talán admin joggal működik. Nem tudom, próbálkozz vele. Ha nem megy, akkor két további lehetőséget látok.

 

1) Olyan makrót írni, amely meghívja a megfelelő Windows rendszerfüggvényeket, és ezáltal állítja be a duplex paramétert. Nem biztos, hogy az itt jelenlévők tudása együttesen elegendő ehhez.

 

2) Telepíteni még egy ugyanolyan nyomtatót, mint az első. Ehhez nyugodtan lehet a már telepített printer drivert használni, és a nyomtatóport is legyen ugyanaz. Így tehát van egy db. fizikai nyomtató, de a Telepített nyomtatók listájában két bejegyzés szerepel hozzá. Az egyik neve legyen mondjuk "HP LJ akármi duplex", a másiké pedig "HP LJ akármi simplex". Mindkettőn be kell állítani az alapértelmezett nyomtatási módot (két- ill. egyoldalas nyomtatás), a makrót pedig úgy átalakítani, hogy az első és negyedik oldalt az egyikre küldja, a 2-3 oldalt pedig a másikra.

 

A második megoldást kivitelezhetőnek tartom.

 

 

Előzmény: Tündi2003 (15878)
Törölt nick Creative Commons License 2011.08.19 0 0 15879

Valami ilyesmi lesz a megoldás (nem teszteltem):

 

Function Open_Excel()
    Dim appexcel As Object, WB As Object, Month_Lee As String
    
    wNum = IsoWeekNumber(Now()) - 1
    Set appexcel = CreateObject("Excel.Application")
    appexcel.Visible = True
    Set WB = appexcel.Workbooks.Open("D:Weekly_Template_ChannelKnowledge_SuppliesInvalidPNs.xlsx")
    Month_Lee = WB.Sheets(1).Range("A1").Value
    WB.SaveAs "D:ChannelKnowledge_InvalidPNs W" & wNum & ".xls"
    Set WB = appexcel.Workbooks.Open("D:Monthly_Template_ChannelKnowledge_SuppliesInvalidPNs.xlsx")
    WB.SaveAs "D:ChannelKnowledge_InvalidPNs " & Month_Lee & ".xls"
End Function

Előzmény: wawabagus (15876)
Tündi2003 Creative Commons License 2011.08.19 0 0 15878

Segítségül, ezt a kódot alkottam eddig (illetve alkotta a Word Rögzítés üzemmódban), látszik, hogy az 1;4 és a 2-3 oldalak nyomtatási parancsai egyformák, sehol nem szerepel az 1;4-nél a kétoldalas nyomtatásra utasító rész. Ami azt illeti, az A3-as méretre utaló sem, pedig az is be van pipálva. Gondolom, ha más doksit nyomtatnék A4-re, akkor onnantól ez a makró is csak A4-re nyomtatna.

 

ActivePrinter = "nyomtatóneve"
    With Options
        .UpdateFieldsAtPrint = False
        .UpdateLinksAtPrint = False
        .DefaultTray = "A nyomtató beállításaival"
        .PrintBackground = True
        .PrintProperties = False
        .PrintFieldCodes = False
        .PrintComments = False
        .PrintHiddenText = False
        .PrintXMLTag = False
        .PrintDrawingObjects = True
        .PrintDraft = False
        .PrintReverse = False
        .MapPaperSize = True
        .PrintOddPagesInAscendingOrder = True
        .PrintEvenPagesInAscendingOrder = True
        .PrintBackgrounds = False
    End With
    With ActiveDocument
        .PrintPostScriptOverText = False
        .PrintFormsData = False
    End With
    Application.PrintOut FileName:="", Range:=wdPrintRangeOfPages, Item:= _
        wdPrintDocumentContent, Copies:=1, Pages:="1;4", PageType:= _
        wdPrintAllPages, ManualDuplexPrint:=False, Collate:=True, Background:= _
        True, PrintToFile:=False, PrintZoomColumn:=0, PrintZoomRow:=0, _
        PrintZoomPaperWidth:=16839, PrintZoomPaperHeight:=23814
    ActivePrinter = "nyomtatóneve"
    Application.PrintOut FileName:="", Range:=wdPrintRangeOfPages, Item:= _
        wdPrintDocumentContent, Copies:=1, Pages:="2-3", PageType:= _
        wdPrintAllPages, ManualDuplexPrint:=False, Collate:=True, Background:= _
        True, PrintToFile:=False, PrintZoomColumn:=0, PrintZoomRow:=0, _
        PrintZoomPaperWidth:=16839, PrintZoomPaperHeight:=23814

Tündi2003 Creative Commons License 2011.08.19 0 0 15877

Sziasztok!

 

A kérdésem csak részben kapcsolódik az Excelhez, merthogy Word-ös. :) Mivel azonban nyomtatásról van szó, a problémám univerzálisnak érzem. :)

 

Van egy hálózati nyomtatónk, ami tud A3-asra kétoldalasan nyomtatni. Erre én "írni" szándékozom egy makrót, hogy az adott fájlnak az első és a negyedik oldalát egymás hátára nyomtassa, míg a másodikat és a harmadikat csak simán egyoldalasra, és persze mindet A3-asban. Nem akarom minden nyomtatásnál kézzel állítgatni a paramétereket, ezért kellene a makró. Makróírási tudományom odáig terjed, hogy "Feljegyzés" üzemmódban (vagy minek hívják) tudom megcsinálni a makrót, majd tudom értelmezni a kapott kódot.

 

A probléma ott van, hogy a kétoldalas beállítást a makró nem jegyzi fel, azaz kinyomtatja a fájlt, de minden oldalt külön lapra.

 

Kpróbáltam azt a beállítást külön "feljegyezni", ami a kétoldalas nyomtatásra vonatkozik, de a makró egyszerűen nem jegyez fel semmit. Az adott nyomtató Tulajdonságainál lehet bepipálni a kétoldalas nyomtatásra vonatkozó részt, de a makró ezt úgy veszi, mintha nem csináltam volna semmit. Hogyan, milyen paranccsal tudnám kézzel beleírni a makróba, hogy az első és a negyedik oldalt egymás hátára, míg a másodikat és a harmadikat külön lapra nyomtassa?

wawabagus Creative Commons License 2011.08.19 0 0 15876

Sziasztok!

Access és excel jóbarátságáról szeretnék tőletek kérdezni.

Ez szuper egyszerű dolgot, de már annyél megragadtam.

 

Íme a kód, amit segítségetekkel hoztam létre. Accessből kinyit excel, lement stb.

Esküszöm szégyelem is magam, hogy nem tudok rájönni, de valahogy ez az accessből dolgozás fura nekem.

Csak annyit szeretnék, hogy a második fájl mentésénél a névbe tegyen bele egy nevet, ami MINDIG a sheet1!A1-en található.

Lehetne hivatkozni named rangel is. Próbálkoztam saját logika szerint, de nem ment :-(...

 

Ti tudjátok a megoldást esetleg?

Nagyon köszönöm!!!

 

 

Public Function IsoWeekNumber(d1 As Date) As Integer
    Dim d2 As Long
   
    d2 = DateSerial(Year(d1 - Weekday(d1 - 1) + 4), 1, 3)
    IsoWeekNumber = Int((d1 - d2 + Weekday(d2) + 5) / 7)
End Function

 

Function Open_Excel()
Dim appexcel As Object

wNum = IsoWeekNumber(Now()) - 1
Set appexcel = CreateObject("Excel.Application")
appexcel.Workbooks.Open "D:Weekly_Template_ChannelKnowledge_SuppliesInvalidPNs.xlsx"
appexcel.Visible = True
appexcel.ActiveWorkbook.SaveAs "D:ChannelKnowledge_InvalidPNs W" & wNum & ".xls"
appexcel.Workbooks.Open "D:Monthly_Template_ChannelKnowledge_SuppliesInvalidPNs.xlsx"

'ide kéne hogy olvassa ki a monthly fájl nevét, ami mindig a "sheet1!A1 -n van. A fent említett template fájlban"

appexcel.ActiveWorkbook.SaveAs "D:ChannelKnowledge_InvalidPNs " & a & ".xls"

End Function

tt65 Creative Commons License 2011.08.18 0 0 15875

menni fog. szólj ha elakadtál!

Előzmény: muszakiellenor (15874)
muszakiellenor Creative Commons License 2011.08.18 0 0 15874

Köszönöm szépen, megprószálom :)

Előzmény: tt65 (15873)
tt65 Creative Commons License 2011.08.18 0 0 15873

Persze, csak fordítva kell a lóra ülni! :-)

A formanyomtatvány szöveg nagyon jól van wordben, mert azt arra találták ki.

Excelben pedig a változó adatokat tárolod, onnan a word emeli be az adatot a megefelelő helyre.

Ezt körlevélnek hívják.

lsg. gugli: word körlevél készítés adatok excelben pl.: http://office.microsoft.com/hu-hu/excel-help/word-korlevel-letrehozasa-excel-adatokkal-HP005203760.aspx

Előzmény: muszakiellenor (15872)
muszakiellenor Creative Commons License 2011.08.18 0 0 15872

Sziasztok!

 

Excelben szeretnék olyat megoldani, hogy bizonyos nyomtatványokat- közigazgatási határozatokat, végzéseket- vinnék fel egy-egy munkalapra. Lenne egy alap munkalap, ahova az ügyfél nevét, címét, iktatószámot, építési helyet, helyrajzi számot csak egyszer kellene begépelnem és a  =munkalap1!a..... hivatkozással ezek az alapadatok átkerülnének az eljárási cselekmények végzéseibe, határozataiba.

Nagyjából ezek sikerülnek is, csak a wordmen meglévő sablon dokumentumait soronként kell az excel cellákba "áthordanom" és a külalak elég gyatra lett eddig. Próbáltam cellaegyesítés után bemásolni, de az nem lehetséges. Az lenne a tiszteletteljes kérdésem, hogy van-e szalonképesebb megoldás erre az excelben ?

A segítséget előre is köszönöm !

muszakiellenor Creative Commons License 2011.08.18 0 0 15871

Kösz szépen !

Előzmény: tt65 (15870)
tt65 Creative Commons License 2011.08.17 0 0 15870
Előzmény: muszakiellenor (15865)
pimre Creative Commons License 2011.08.17 0 0 15869

Persze így jó, de a munkalap nevének bepötyögése helyett biztosabb módszer az = jel beírása után átmenni a másik munkalapra, ott kiválasztani a megfelelő cellát, és az enter után ott lesz a megfelelő képlet. Bonyolultabb esetben minden műveleti jel után ki lehet választani ilyen módon a megfelelő munkalap megfelelő celláját. 

Előzmény: muszakiellenor (15868)
muszakiellenor Creative Commons License 2011.08.17 0 0 15868
Koszi , zarojel nelkul ok!
Előzmény: tt65 (15866)
tt65 Creative Commons License 2011.08.17 0 0 15867

vagy esetleg ctrl C + ctrl V ill. ctrl M + ctrl V ? :-)

Előzmény: muszakiellenor (15865)
tt65 Creative Commons License 2011.08.17 0 0 15866

esetleg zárójel nélkül?

pl.: =Munka1!C3

Előzmény: muszakiellenor (15865)
muszakiellenor Creative Commons License 2011.08.17 0 0 15865

Sziasztok mexállottak!

 

Szeretném megkérdezni, hogyan tudok egy munkalap egy cellájából egy másik munkalap cellájába adatot eljuttatni? Próbáltam a =(munka!C3) formációt, de valami nem stimmel. A választ előre is köszönöm! üdv.

Sznida Creative Commons License 2011.08.17 0 0 15864

Ezeken felbuzdúlva keresgéltem a súgóban, megtalaláltam a timer-t. Erre volt szükségem. Ezzel tudok időlimiteket beállítani.

A súgóban teljesen érhető a példa, az alapján lehet használni!

 

Üdv: Sznido

Előzmény: Sznida (15863)
Sznida Creative Commons License 2011.08.17 0 0 15863

Köszönöm szépen!

Tényleg baromira egyszerű. El voltam terelve,  mert az ABB robot nyelven el lehet indítani egy változót, pl. "clkstart ido" . Ez elindít egy ido nevű változót, és már csak ezt a változó kell figyelni hol tart, és beavatkozni, ha meghaladt már egy bizonyos értéket.

Valami ilyesmit szeretem volna, de a Te megoldásoddal is jó lehet.

Megpróbálom kivonni az End_time-ot a Start_time-ból, és akkor megtudom mennyi idő telt el, ua mintha elindítottam volna egy számlálót! :)

 

Köszi!

 

Üdv: Sznido

Előzmény: wawabagus (15855)
wawabagus Creative Commons License 2011.08.16 0 0 15861

:-DDD...

Nem makró az kell, de csak a fő template fájlban és mivel eddig SaveCopyAs-t használtam a makró is klonozódott.

Ami tök feleseleges ugye.

 

De a te módszereddel csak a sheetek copizódnak...

Szóval szuper :-).

 

Előzmény: Delila10 (15860)
Delila10 Creative Commons License 2011.08.16 0 0 15860

Ez a zseniális és elegáns kód így született:

 

Bekapcsoltam a makrórögzítést,  lapfülön jobb klikk, Másolás vagy áthelyezés, Új munkafüzetbe, Legyen másolat.

Makrórögzítés vége.

 

Ezt a kódot kaptam. Kétszer kipróbáltam, és láttam, hogy jó.

Ennyit a zsenialításomról.

 

Mi az, hogy már makró nélkül is megy? Nem olyasmiről volt szó, hogy több füzetet akarsz sorban megnyitni, és 1-1 lapjukat kimásolni új füzetbe?

Előzmény: wawabagus (15859)
wawabagus Creative Commons License 2011.08.16 0 0 15859

Delila...szuper a módszered!!!!

Végül ezt használtam

 

Sheets.copy

 

és csak ez létre hozza a klónt, de már a makró NÉLKÜL!!

Zseniális vagy!

 

Köszi ezt az elegáns megoldást!!!!!!!!!!

Előzmény: Delila10 (15818)
tt65 Creative Commons License 2011.08.16 0 0 15858

megoldottam ...

Előzmény: tt65 (15828)
mafikám Creative Commons License 2011.08.16 0 0 15857

Ja, azt elfelejtettem írni, hogy a data fülön a subtotal melletti "hide detail"-re rámentem és akkor elmúlt a probléma, viszont egy másik szakaszon nem működött a subototal. Aztán megnyitottam a fájlt újra, de akkor már ez sem segített...

Előzmény: mafikám (15856)
mafikám Creative Commons License 2011.08.16 0 0 15856

Sziasztok!

 

A segítségeteket szeretném kérni. A subtotal (?) funkció nem működik egy bizonyos szakaszon, az összes többi helyen működik.

 

Ezt az anyagot találtam a témában, de nem látok sehol olyan cellát, ami objektumot tartalmazna… http://support.microsoft.com/kb/211769

 

Mi lehet a gond, hogyan találhatnám meg a hibát? Arra is gondoltam, hogy leszedem a subtotalokat és visszateszem (nem én tettem rá, így kaptam), de azzal sem boldogulok!:( Tudnátok segíteni, hogy hogyan oldhatnám ezt meg?

 

Le szeretném fagyasztani az első (A) oszlopot és az első három sort egyszerre, ezt hogyan tudnám megoldani? Külön-külön megy, de egyszerre nem...

 

Köszi szépen a segítséget!!

 

wawabagus Creative Commons License 2011.08.16 0 0 15855

Hello,

Végre én is tudok valami újat mondani :-D

Persze íme szuper időmérőt :-DDD

 

Baromi egyszerű

 

 

-----------------------------

Dim Start_time, End_time, RunTime as date

 

Start_time = now()

 

itt már fut a makród :-)

 

End_time = now()

 

Msgbox RunTime(datefid("s",Start_time, End_time)

 

 

Én azt is csináltam, hogy több helyre betettem a mérőt és kiirattam a végén egy cellába

...így pl megtudtam, hogy melyik fájlt mennyi idő alatt kreálta, sőt azt is melyik fázis volt a leghosszabb.

 

Nagyon hasznos és jót szórakoztam vele :-).

 

Előzmény: Sznida (15854)
Sznida Creative Commons License 2011.08.16 0 0 15854

Szia,

 

Ne haragudj, de ahogy olvastam, hogy "tettem bele időmérőt", akkor felcsillant a szemem.

Én is akartam már haszni VBA-ban is, (mert ABB robot nyelven használtam már) nem sikerült.

El tudnád küldeni ezt az időmérőt?

Bocsánat, hogy nem a Te problémáddal foglalkozok, ne haragudj!

 

Szép napot!

 

Üdv: Sznido

Előzmény: wawabagus (15853)
wawabagus Creative Commons License 2011.08.16 0 0 15853

Sziasztok!

Írtam egy makrót, ami riport fájlokat kreál több országra /egy fájl 17MB kb...elég nagy/.

4 országra kb 50 másodperc alatt fut le.

 

Tettem bele időmérőt, hogy lássam melyik fázis a lassú és úgy látom hogy a fájl mentése.

 

Én 2007-es excelen dolgozom, de a fájl 2003-as....

Lehet ez az ok?

 

Mit tehetek, hogy ne vegyen ennyi időt igénybe?

 

Persze az egy naphoz képest az 1 perc nem sok :-)))...de mégis szeretném tökéletesíteni a dolgot, ha lehet.

 

Köszi a tippeket!!

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