Live-Forum - Die aktuellen Beiträge
Datum
Titel
23.04.2024 14:59:21
23.04.2024 14:47:39
23.04.2024 14:23:45
Anzeige
Archiv - Navigation
1428to1432
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makro erweiterung

Makro erweiterung
31.05.2015 15:34:49
Thomas
Hallo
ich benutze seid einiger Zeit das unten- stehende Makro zur Serienbrief- Erstellung.
Kann mir jemand dies so erweitern das ich mir vor jedem Druck den Drucker aussuchen kann?
Liebe Grüsse Thomas
Sub Seriendruckohnevorschau()
On Error Resume Next
Dim Serientabelle As Worksheet
Dim Datentabelle As Worksheet
Dim Datenbereich As String
Dim Dbereich As Range
Dim Sbereich As Range
Dim Anzahl As Long
Dim Quellzelle As Range, Zielzelle As Range
Dim Datenname As String
Dim Serienname As String
Application.ScreenUpdating = False
'Hier legen Sie Ihre Einstellungen fest
'Alle Variablen definieren
Datenname = "Datentabelle"
Serienname = "Serientabelle"
Datenbereich = "gelbendrucken"  'der Name druckbereich ist im namensmanager definiert bereich  _
wird in zelle a1 alt angegeben.
Serienbereich = "d26,e27,i28,g29,g32,f32,b35,b39,b44,g33,f33"
'Die folgenden 4 Zeilen müssen Sie anpassen
Set Serientabelle = ActiveWorkbook.Worksheets(Serienname)
Set Datentabelle = ActiveWorkbook.Worksheets(Datenname)
Set Dbereich = Datentabelle.Range(Datenbereich)
Set Sbereich = Serientabelle.Range(Serienbereich)
'Tabellen adressieren
For Anzahl = 1 To Dbereich.Rows.Count
Spalte = 1
'Schleife starten
For Each Zielzelle In Sbereich
Set Quellzelle = Dbereich.Cells(Anzahl, Spalte)
Spalte = Spalte + 1
'Alle variablen Zellen pro Datensatz durchlaufen
Zielzelle.Formula = Quellzelle.Value
Next Zielzelle
'Daten aus Datensatz in Serientabelle übernehmen
Serientabelle.PrintOut
'Serientabelle.PrintPreview zum ansehen     PrintOut  zum drucken  PrintPreview
Next Anzahl
'Tabelle drucken
Application.ScreenUpdating = True
A = MsgBox("Es wurden " & CStr(Anzahl - 1) & " Tabellen ausgedruckt.", vbOKOnly, "Druckbericht") _
On Error GoTo 0
End Sub

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro erweiterung
31.05.2015 15:51:14
Nepumuk
Hallo,
teste mal:
If Application.Dialogs(xlDialogPrinterSetup).Show Then Serientabelle.PrintOut

Gruß
Nepumuk

AW: Makro erweiterung
31.05.2015 16:58:10
Thomas
Hallo Nepumuk
es funktioniert schon mal super. Nur ein kleines problemchen ist noch. Ich muss jeden Druck einzeln bestätigen.
Bekommst Du dies noch hin? oder habe ich es an der falschen Stelle plaziert?
Sub Seriendruckohnevorschau()
On Error Resume Next
Dim Serientabelle As Worksheet
Dim Datentabelle As Worksheet
Dim Datenbereich As String
Dim Dbereich As Range
Dim Sbereich As Range
Dim Anzahl As Long
Dim Quellzelle As Range, Zielzelle As Range
Dim Datenname As String
Dim Serienname As String
Application.ScreenUpdating = False
'Hier legen Sie Ihre Einstellungen fest
'Alle Variablen definieren
Datenname = "Datentabelle"
Serienname = "Serientabelle"
Datenbereich = "gelbendrucken"  'der Name druckbereich ist im namensmanager definiert bereich  _
wird in zelle a1 alt angegeben.
Serienbereich = "d26,e27,i28,g29,g32,f32,b35,b39,b44,g33,f33"
'Die folgenden 4 Zeilen müssen Sie anpassen
Set Serientabelle = ActiveWorkbook.Worksheets(Serienname)
Set Datentabelle = ActiveWorkbook.Worksheets(Datenname)
Set Dbereich = Datentabelle.Range(Datenbereich)
Set Sbereich = Serientabelle.Range(Serienbereich)
'Tabellen adressieren
For Anzahl = 1 To Dbereich.Rows.Count
Spalte = 1
'Schleife starten
For Each Zielzelle In Sbereich
Set Quellzelle = Dbereich.Cells(Anzahl, Spalte)
Spalte = Spalte + 1
'Alle variablen Zellen pro Datensatz durchlaufen
Zielzelle.Formula = Quellzelle.Value
Next Zielzelle
'Daten aus Datensatz in Serientabelle übernehmen
If Application.Dialogs(xlDialogPrinterSetup).Show Then Serientabelle.PrintOut
'Serientabelle.PrintPreview zum ansehen     PrintOut  zum drucken  PrintPreview
Next Anzahl
'Tabelle drucken
Application.ScreenUpdating = True
A = MsgBox("Es wurden " & CStr(Anzahl - 1) & " Tabellen ausgedruckt.", vbOKOnly, "Druckbericht") _
On Error GoTo 0
End Sub

Vielen Dank schon mal
Liebe Grüsse Thomas

Anzeige
AW: Makro erweiterung
31.05.2015 17:09:37
Nepumuk
Hallo,
so ok?
Option Explicit

Sub Seriendruckohnevorschau()
    
    Dim Serientabelle As Worksheet
    Dim Datentabelle As Worksheet
    Dim Datenbereich As String
    Dim Dbereich As Range
    Dim Sbereich As Range
    Dim Anzahl As Long, Spalte As Long
    Dim Quellzelle As Range, Zielzelle As Range
    Dim Datenname As String
    Dim Serienname As String, Serienbereich As String
    
    If Application.Dialogs(xlDialogPrinterSetup).Show Then
        
        Application.ScreenUpdating = False
        '
        'Hier legen Sie Ihre Einstellungen fest
        'Alle Variablen definieren
        
        Datenname = "Datentabelle"
        Serienname = "Serientabelle"
        Datenbereich = "gelbendrucken"
        'der Name druckbereich ist im namensmanager definiert bereich wird in zelle a1 alt angegeben.
        
        Serienbereich = "d26,e27,i28,g29,g32,f32,b35,b39,b44,g33,f33"
        'Die folgenden 4 Zeilen müssen Sie anpassen
        
        Set Serientabelle = ActiveWorkbook.Worksheets(Serienname)
        Set Datentabelle = ActiveWorkbook.Worksheets(Datenname)
        Set Dbereich = Datentabelle.Range(Datenbereich)
        Set Sbereich = Serientabelle.Range(Serienbereich)
        'Tabellen adressieren
        
        For Anzahl = 1 To Dbereich.Rows.Count
            Spalte = 1
            'Schleife starten
            
            For Each Zielzelle In Sbereich
                Set Quellzelle = Dbereich.Cells(Anzahl, Spalte)
                Spalte = Spalte + 1
                'Alle variablen Zellen pro Datensatz durchlaufen
                
                Zielzelle.Formula = Quellzelle.Value
            Next Zielzelle
            'Daten aus Datensatz in Serientabelle übernehmen
            
            Serientabelle.PrintOut
            'Serientabelle.PrintPreview zum ansehen PrintOut zum drucken PrintPreview
        Next Anzahl
        'Tabelle drucken
        Application.ScreenUpdating = True
        
        MsgBox "Es wurden " & CStr(Anzahl - 1) & " Tabellen ausgedruckt.", vbOKOnly, "Druckbericht"
    End If
End Sub

Gruß
Nepumuk

Anzeige
gelöst beste Dank an Nepumuk
31.05.2015 17:29:26
Thomas
Hallo Nepumuk,
grosse klasse ich bedanke mich bei Dir recht herzlich.
Es arbeitet super.
Auch für die sau schnelle Lösung.
Liebe Grüsse Thomas

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige