• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Huidig document in macro

Status
Niet open voor verdere reacties.

yourservice

Gebruiker
Lid geworden
22 jan 2009
Berichten
35
Hallo,

Hoe kan ik mijn huidige document "noemen" bij het kopieren/plakken van 2 werkmappen?

Ik bewerk een werkmap Factuur XXX, ik laat de macro een werkmap openen met de naam Testfactuur.xlsx.

Dan verwijder ik 21 regels vanaf cel A9 (dit is altijd zo) en switch terug naar Factuur XXX.xlsx.

Deze laatste werkmap verschilt altijd van naam.

Ik heb dit opgenomen:

Code:
Sub PDFbriefpapier()
'
' PDFbriefpapier Macro
' Afdrukken als .pdf op briefpapier
'

'
    Workbooks.Open Filename:= _
        "C:\pathname\Testfactuur.xlsx"
    Range("A9").Select
    ActiveWindow.SmallScroll Down:=21
    Range("A9:F49").Select
    Selection.EntireRow.Delete
    Range("A9").Select
    Windows("Factuur XXX.xlsx").Activate
    Range("A9").Select
    ActiveWindow.SmallScroll Down:=21
    Range("A9:F49").Select
    Selection.Copy
    Windows("Testfactuur.xlsx").Activate
    ActiveSheet.Paste
    Range("A9").Select
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
        IgnorePrintAreas:=False
    ActiveWindow.Close
    ActiveWindow.SmallScroll Down:=-30
End Sub

Ik wil dus van Windows("Factuur XXX.xlsx").Activate, Windows("Huidig document dat ook open is.xlsx").Activate maken.

Greetz,

Wilfred
 
Het document waarin je VBA code draait kan je altijd aanspreken met ThisWorkbook.
Dus wat je vraag betreft zou dat zo kunnen:
ThisWorkbook.Activate
 
Dankjewel edmoor maar ThisWorkbook.Activate is op dat moment natuurlijk de Testfactuur.

Kan ik de werkmap waar vanuit ik de macro opstart ook opslaan?

Code:
Dim strCurrentWorkBook As String
strCurrentWorkBook = ActiveWindow ' stores the current active window

Hier krijg ik een foutmelding op maar is er zoiets mogelijk?

Ja, dat lukt dus op deze manier:

Code:
Dim strCurrentWorkBook As String
strCurrentWorkBook = ActiveWorkbook.Name ' stores the current active window

Windows(strCurrentWorkBook).Activate
 
Laatst bewerkt:
ThisWorkbook is het document waar de VBA code in staat.

Je kan ook dit doen:
Code:
Dim wbCurrent As Workbook
Set wbCurrent = ActiveWorkbook
[COLOR="#008000"]'Open een ander document[/COLOR]
.
.
.
[COLOR="#008000"]'Terug naar je eerdere document.[/COLOR]
wbCurrent.Activate
 
Laatst bewerkt:
Sorry voor de late reactie maar alles werkt in Excel naar behoren.

Als ik dit in Word ook wil gebruiken gelden dan dezelfde opdrachten?

Of werkt Word met andere termen? Sheet is typisch Excel lijkt mij.
 
Word is een totaal ander object, maar de instructies lijken wel op elkaar:
Code:
Dim wdCurrent As Document
Set wdCurrent = ActiveDocument
[COLOR="#008000"]'Open een ander document
.
.
.
'Terug naar je eerdere document.[/COLOR]
wdCurrent.Activate
 
Laatst bewerkt:
Ik heb nu dit en krijg een foutmelding op IgnorePrintAreas:=False

Screen Shot 123.JPG

Code:
Dim wdCurrent As Document
Set wdCurrent = ActiveDocument
Dim strCurrentPrinter As String
strCurrentPrinter = Application.ActivePrinter ' stores the current active (default) printer

Application.ActivePrinter = "Microsoft Print to PDF op Ne00:" ' change what is in quotes as per appropriate printer name in the Print Dialog Box
ActiveDocument.ActiveWindow.PrintOut Copies:=1, Collate:=True, _
        IgnorePrintAreas:=False

Application.ActivePrinter = strCurrentPrinter 'Returns printer output to your default printer
 
Dat is een optie die Word kennelijk niet heeft en dient dus te worden verwijderd.
 
Nog even ter aanvulling, dit werkt goed!

Code:
Sub PrintToPDF()
'
' PrintToPDF
' Print a document to a .pdf
'

Dim strCurrentPrinter As String
strCurrentPrinter = Application.ActivePrinter ' stores the current active (default) printer

    ActivePrinter = "Microsoft Print to PDF"
    Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _
        wdPrintDocumentWithMarkup, Copies:=1, Pages:="", PageType:= _
        wdPrintAllPages, Collate:=True, Background:=True, PrintToFile:=False, _
        PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
        PrintZoomPaperHeight:=0

    Application.ActivePrinter = strCurrentPrinter 'Returns printer output to your default printer
    
End Sub
 
Hallo,

Ik heb nog een vraagje, gerelateerd aan de Excel oplossing.

Ik gebruik een testfactuur mét mijn briefpapier als achtergrond (image toegevoegd in de koptekst).

Iedere keer als ik nu de macro uitvoer laat Excel in het tweede bestand dat ik open, dit is de testfactuur mét de juiste opmaak die leeg is, voor het printen naar een .pdf printer de laatste twee regels zien van de te printen factuur.

Deze laatste twee regels staan op verschillende bladrijen.

Het printen gaat echter prima, dat is nogal verwarrend omdat je ineens een ander, leeg beeld voor je hebt met alleen het eindbedrag.

Als ik de macro echter stap voor stap uitvoer gebeurt dit niet, dan zie ik de totale factuur op het scherm in testfactuur verschijnen.

Is dit uit te zetten?

Wilfred
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan