Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1404to1408
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

Druck Makro abändern

Druck Makro abändern
26.01.2015 14:40:04
Karel
Hallo zusammen,
Ich habe ein Arbeitsblatt mit Tabelle Daten, Transportlabel und Transportliste
In Tabelle Daten sind Kundendaten erhalten je Zeile und am Enden steht ein Kontrollkästchen
Über unterstehende Makro kann ich Manuel ein Transportlabel mehrfach Drücken, WICHTIG ist das beim Druck der Zusatz gemacht wird Packstück 1 von 4 etc.
Meine Fragen ist wie kann dieses Makro geändert werden sodass der Druck als Schliefe lauft wenn Kontrollkästchen True dann aus Spalte M anzahl der Etiketten auslesen und Anzahl Drucken beim neue Zeile Sollte dann auch noch die richtige adressdaten ausgelesen werden dies mach ich im Moment Manuel durch in Tabelle Transportabel in Zelle A1 Zahl zu ändern (indexformeln)
Habe beispiel Mappe zu bessere Erklärung dazu gefügt.
https://www.herber.de/bbs/user/95280.xlsm
Option Explicit
Sub Druck()
Application.ScreenUpdating = False
Dim wks As Worksheet, lngBeleg As Long, strBeleg As String, strBeleg_1 As String, lngKopien  _
As Variant
Dim intI As Integer
Dim ZelleBelNr As Range
lngKopien = Application.InputBox(Prompt:="Anzahl Ausdrucke?", _
Title:="Ausdruck mit Belegnummernzählung", _
Default:=1, _
Type:=2)
If lngKopien  False Then
Set wks = Worksheets("Transportlabel")
With wks
Set ZelleBelNr = .Range("A20") 'Zelle mit Belegnummer
'Text zeichen Belegnummer
strBeleg = " von "
strBeleg_1 = "Packstück:"
'letzte Belegnummer ermitteln, Inhalt nach Text in Zahl verwandeln
If IsEmpty(ZelleBelNr) Then
lngBeleg = 0
'Else
'lngBeleg = CInt(Mid(ZelleBelNr.Text, Len(strBeleg) + 1))
End If
'Kopieen drucken
For intI = 1 To lngKopien
'neue Belegnummer berechnen
lngBeleg = lngBeleg + 1
'neue Belegnummer eintragen, ggf. Zahlenformat anpassen
ZelleBelNr.Value = strBeleg_1 + Format(lngBeleg, " 0 ") + strBeleg + lngKopien
'Blatt drucken
.PrintOut
'.PrintPreview 'zum Testen
Next
Worksheets("Transportlabel").Range("A20").Value = 0
Application.ScreenUpdating = True
End With
End If
End Sub
mfg
Karel

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Druck Makro abändern
26.01.2015 15:58:40
Rudi
Hallo,
teste mal.
Sub aaa()
Dim objSHP As Shape, i As Integer, lRow As Long
Dim Sendung As Long, AnzPackStck As Long
With Sheets("Daten")
For Each objSHP In .shapes
If objSHP.FormControlType = xlCheckBox Then
If objSHP.ControlFormat.Value = 1 Then
lRow = objSHP.TopLeftCell.Row
Sendung = .Cells(lRow, 3)
AnzPackStck = .Cells(lRow, 13)
With Sheets("Transportlabel")
.Range("A1") = Sendung
For i = 1 To AnzPackStck
.Cells(20, 1) = "Pckstück " & i & " / " & AnzPackStck
.PrintOut
Next i
End With
End If
End If
Next
End With
End Sub

Gruß
Rudi

Anzeige
AW: Druck Makro abändern
26.01.2015 16:17:53
Karel
Hallo Rudi,
Bei diese Zeile kommt ein Fehler
For Each objSHP In .shapes
liegt dass an der Kontrollkästchen ?
Gruß
Karel

AW: Druck Makro abändern
26.01.2015 16:28:01
Rudi
Hallo,
hab ich vergessen zu erwähnen:
Im Modul des Blatts Daten gibt es ein Makro "Shapes". Lösch das unbedingt oder benenne es um.
Verwende niemals VBA Schlüsselwörter (Objektnamen, Eigenschaften, Methoden, ...) als Prozedur- oder Variablenbezeichnungen.
Gruß
Rudi

AW: Druck Makro abändern
27.01.2015 18:58:57
Karel
Hallo Rudi,
lauft einwandfrei viele Dank
Habe aber noch gerne einmal dein Hilfe wenn's geht.
Im unterstehenden code muss folgende Zeile angepasst werden
wksQuelle.Rows(rngQuelle.Row).ClearContents 'shift:=xlShiftUp
Er sollte nur bereich je zeile von C bis Q Kopieren in Transportliste und bei Daten Löschen.
Sub ZeilenKopieren()
Dim wksQuelle As Worksheet, objShapeQuelle As Shape, wksZiel As Worksheet, objShape As Shape
Dim rngQuelle As Range, lngZeileLetzte As Long
'Sicherheitsabfrage
If MsgBox("Zeilen kopieren und löschen?", vbQuestion + vbYesNo) = vbNo Then Exit Sub
Set wksQuelle = Worksheets("Daten")
Set wksZiel = Worksheets("Transportliste")
For Each objShapeQuelle In wksQuelle.shapes
If objShapeQuelle.TopLeftCell.Column = 29 Then 'Spalte AC ggf. anpassen!!
If objShapeQuelle.Type = msoFormControl Then
If objShapeQuelle.FormControlType = xlCheckBox Then
If objShapeQuelle.ControlFormat.Value = 1 Then
'Linke obere Zelle des Kontrollkästchens einem Range-Object zuweisen
'Diese Zelle ist der Bezugspunkt für die Kopieraktionen
Set rngQuelle = objShapeQuelle.TopLeftCell
With wksZiel
'letzte Zeile mit Daten in Spalte A der Zieltabelle ermitteln
lngZeileLetzte = .Cells(.Rows.Count, 1).End(xlUp).Row
'Zeile aus Quelle nach Ziel kopieren
wksQuelle.Rows(rngQuelle.Row).Copy Destination:=.Cells(lngZeileLetzte + 1, 1)
'kopiertes Kontrollkästchen im Ziel löschen
.shapes(.shapes.Count).Delete
End With
'Kontrollkästchen in Quelle löschen
'objShapeQuelle.Delete
'Wert Kontrolkäschten wieder auf null setzen
objShapeQuelle.ControlFormat.Value = 0
'Zeile in Quelle löschen
wksQuelle.Rows(rngQuelle.Row).ClearContents 'shift:=xlShiftUp
End If
End If
End If
End If
Next
End Sub
Grüß
Karel

Anzeige
AW: Druck Makro abändern
27.01.2015 19:45:35
Rudi
Hallo,
wksQuelle.cells(rngQuelle.Row,3).resize(,15).ClearContents
Gruß
Rudi

AW: Druck Makro abändern
29.01.2015 11:42:12
Karel
Hallo Rudi,
Lauft einwandfrei danke dir
Grüße
Karel

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige