Johan van der Vliet wrote:
D. Ouwerkerk [Bettewaarde BV] schreef:Hallo Johan, Ik heb een macro gevonden en aangepast om mijn facturen als een apart bestand op te slaan. Notes: -De macro leest de naam die het nieuwe bestand moet krijgen uit een cel van mijn factuurwerkblad, cel D82 van het blad "invoer", om precies te zijn. (cel D82 is bij mij een TEKST.SAMENVOEGEN-cel van [padnaam] + [factuurnummer] + [extensie]) -Ik werk op linux, dus hoef geen padnamen te converteren, voor windows moet dat wel geloof ik. -Ik ben bepaald geen prof, dus het kan goed zijn dat dit niet de beste manier is om het te doen. De macro is vrij lelijk, dwz hij doet er vrij lang over (relatief gezien dan) en er flitst van alles over je scherm als je hem uitvoert. Misschien dat iemand anders hier wat over kan zeggen? -Als je blad formules bevat worden die gecopiëerd en niet de waarden, wat je een blad vol #REF! cellen oplevert. Ik heb dat opgelost door een andere macro op te nemen die met "plakken speciaal" de waarden van m'n invoerveld naar een apart blad copieerd (saver), deze macro schrijft ze vervolgens van dat blad naar een apart bestand. (Een houtje-touwtje oplossing, maar het werkt) -Een macro die je andere macro's op volgorde uitvoert moet je zelf schrijven, de recorder vertikt 't. -Padnamen moeten (hier althans) voorafgegaan worden door "file:///", als je dat niet weet kun je zomaar 2 uur zoekende zijn :-( -Ik heb wat je moet veranderen om hem bij jou te laten werken vet gemaakt, ik hoop dat het klopt. Sidenote: -De macrorecorder zuigt! (ik had een soorgelijk factuurblad in Excel '97, in een dag gemaakt incl macro's (opgenomen), deze heeft me 2.5 dagen gekost. Maar ik weet wel wat meer over VB-script nu...) Ik hoop dat je hier wat aan hebt. Groeten, Douwe Ouwerkerk Bettewaarde BV 'het copieer gedeelte Sub SaverNaarBestand Dim Eigbestand() firstDoc = ThisComponent selectSheetByName(firstDoc, "saver") 'het blad dat gecopieerd moet worden dispatchURL(firstDoc,".uno:SelectAll") dispatchURL(firstDoc,".uno:Copy") secondDoc = StarDesktop.loadComponentFromUrl("file:///home/johan/sjabloonvooropgeslagenfactuur.sxc","_blank",0,dimArray()) secondDoc.getSheets().insertNewByName("inserted",0) selectSheetByName(secondDoc, "inserted") dispatchURL(secondDoc,".uno:Paste") 'naam bepalen, opslaan als die naam, bestand sluiten. DeBladen = firstDoc.Sheets MijnBlad = DeBladen.getByName("invoer") EenCel = MijnBlad.getCellByPosition(3,81) ' cel D82 NaamvanBestand = EenCel.String secondDoc.storeAsURL(NaamvanBestand, EigBestand) secondDoc.Dispose End Sub 'subroutine van het copieergedeelte, geen idee wat t doet. sub selectSheetByName(document, sheetName) document.getCurrentController.select(document.getSheets().getByName(sheetName)) end sub ' nog een subroutine van het copieergedeelte, ook geen idee wat t doet. Sub dispatchURL(document, aURL) Dim noProps() Dim URL as new com.sun.star.util.URL frame = document.getCurrentController().getFrame() URL.Complete = aURL transf = createUnoService("com.sun.star.util.URLTransformer") transf.parseStrict(URL) disp = frame.queryDispatch(URL, "", com.sun.star.frame.FrameSearchFlag.SELF) disp.dispatch(URL, noProps()) End Sub --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] |
- Re: [gebruikers] Factuurwerkblad. D. Ouwerkerk [Bettewaarde BV]
- Re: [gebruikers] Factuurwerkblad. Bert Meersma
