Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1352to1356
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
Vba zeilen kopieren
10.03.2014 22:29:21
Chris
Begrüße Euch!
Ich habe folgendes Problem und hoffe Ihr könnt mir helfen!
Möchte mit Excel einen Seriendruck erstellen: Habe 2 Tabellenblätter Sammelrechnungen und Druck. Im Tabellenblatt Sammelrechnungen stehen die benötigten Daten in Spalte a, b, c, g, h, i -> die werden in die TextBox1, 2 und 3 übergeben und ausgedruckt. Das Blatt Druck ist ein Zahlschein. Jetzt hat sich aber das Format des Zahlscheins geändert. Es sind jetzt 3 Zahlscheine auf einem A4 Blatt.
Jetzt brauche ich den code so geändert, dass er mir die ersten 3 Zeilen aus den Sammelrechnungen entnimmt und ausdruckt, dann die nächsteten 3 usw.
Folgender code funktioniert nur für eine Zeile:

Private Sub CommandButton4_Click()   'Drucken
Dim a As Integer
If Sheets("Sammelrechnungen").Range("B2") = "" Then Exit Sub
Unload Me
For a = 2 To Sheets("Sammelrechnungen").Cells(1, 1).End(xlDown).Row
Application.ScreenUpdating = False
Sheets("Sammelrechnungen").Activate
Sheets("Druck").TextBox1.Value = CStr(Sheets("Sammelrechnungen").Cells(a, 8))
Sheets("Druck").TextBox2.Value = CStr(Sheets("Sammelrechnungen").Range("J2") & " " & Cells(  _
_
_
_
a, 7).Value & "          " & Cells(a, 9).Value)
Sheets("Druck").TextBox3.Value = CStr(Sheets("Sammelrechnungen").Cells(a, 1).Value & " " &   _
_
_
_
Cells(a, 2).Value & " " & Cells(a, 3).Value)
Application.ScreenUpdating = False
Sheets("Druck").Activate
Sheets("Druck").TextBox1 = Format(Sheets("Druck").TextBox1, "0.00")
Application.Dialogs(xlDialogPrint).Show
'ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Next a
Sheets("Druck").TextBox1.Value = ""
Sheets("Druck").TextBox2.Value = ""
Sheets("Druck").TextBox3.Value = ""
Sheets("Sammelrechnungen").Activate
userform1.Show
End Sub

Für eure Hilfe oder Vorschläge wäre ich sehr dankbar.
mit freundlichen und nächtlichen Grüßen
Chris

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Vba zeilen kopieren
11.03.2014 13:43:17
fcs
Hallo Chris,
etwa wie folgt.
Gruß
Franz
Private Sub CommandButton4_Click()   'Drucken
Dim a As Long, b As Integer, aL As Long
Dim wksDruck As Worksheet, wksSammel As Worksheet
Dim strText1 As String, strText2 As String, strText3 As String
Set wksDruck = ActiveWorkbook.Sheets("Druck")
Set wksSammel = ActiveWorkbook.Sheets("Sammelrechnungen")
If wksSammel.Range("B2") = "" Then Exit Sub
Unload Me
aL = wksSammel.Cells(1, 1).End(xlDown).Row
wksDruck.Activate
For a = 2 To aL Step 3
For b = 0 To 2
If a + b 

AW: Vba zeilen kopieren
11.03.2014 20:01:14
Chris
Danke Franz!
Funktioniert mit ein paar Abänderungen hervorragend!
Das einzige Problem für mich ist, dass das Makro immer nur die ersten drei Zeilen nimmt (hab mich schlecht ausgedrückt!). Es soll nachdem die ersten drei zeilen abgehandelt sind die nächsten drei nehmen und dann die nächsten drei usw... und am Ende kann es sein, dass nur mehr eine oder zwei Zeilen übrig sind, die soll er natürlich auch noch drucken.
Es sind in der Tabelle Sammelrechnungen mehrere hundert Zeilen die nacheinander auf Zahlscheine gedruckt werden sollen!
Für deine weitere Hilfe wäre ich dir sehr dankbar
schöne Grüße Chris
Private Sub CommandButton4_Click()   'Drucken
Dim a As Long, b As Integer, aL As Long
Dim wksDruck As Worksheet, wksSammel As Worksheet
Dim strText1 As String, strText2 As String, strText3 As String
Set wksDruck = ActiveWorkbook.Sheets("Druck")
Set wksSammel = ActiveWorkbook.Sheets("Sammelrechnungen")
If wksSammel.Range("B2") = "" Then Exit Sub
Unload Me
aL = wksSammel.Cells(1, 1).End(xlDown).Row
wksDruck.Activate
For a = 2 To aL Step 3
For b = 0 To 2
If a + b 

Anzeige
AW: Vba zeilen kopieren
12.03.2014 07:28:27
fcs
Hallo Chris,
ich hab das Makro mit 4 bis 6 Zeilen getestet und es funktionierte.
Ohne eine Testdatei kann ich dir nicht sagen warum es nicht funktioniert.
Gruß
Franz

AW: Vba zeilen kopieren
12.03.2014 14:22:00
chris
Hallo Franz
Vorerst ein sehr großes Dankeschön!
Ich stelle heute abend meine Datei online.
Es funktioniert bei mir ja auch aber nur wenn ich es in visual basic Schritt für Schritt ausführe.
Sobald ich es mit commandbutton auf rufe nimmt er leider immer nur die ersten drei Zeilen
Grüße Chris

AW: Vba zeilen kopieren
12.03.2014 19:58:41
Chris
Hallo Franz
Im Anhang meine Datei zum Testen!
Schritt für Schritt Auswertung funktionierts, aber bei Zahlschein drucken druckt er mir nur die ersten drei Datensätze!
https://www.herber.de/bbs/user/89650.xlsm
Für deine Hilfe und Zeit wäre ich dir sehr sehr dankbar!
Gruß Chris

Anzeige
AW: Aktualisieren von Textboxen und drucken
13.03.2014 07:40:49
Textboxen
Hallo Chris,
zunächst einmal musste ich mich mit deinem Zertifikat für das VBA-Projekt rumschlagen; letztendlich hab ich die Datei einfach ohne Zertifikat gespeichert
Das Phänomen ist schon sehr merkwürdig. Beim Drucken mit Seitenvorschau werden die einzelnen Seiten korrekt aktualisiert. Ebenso wenn man mit F8 das Makro in Schritten abarbeitet.
Aus irgendeinem mir unbekanten Grund funktioniert die Aktualisierung der Textbox mit neu zugewiesenen Texten nicht wenn der Druck ohne Seitenvorschau nach jedem 3. Datensatz erfolgt. Es bleiben die Daten der 1. Seite in den Textboxen angezeigt.
Ich hab verschiedenes probiert. Bildschirmaktualisierung, Neuberechnung, Zellenselektion, Umschalten der Ansicht zwischen Normal und Seitenumbruch waren alle ohne Erfolg. Nur bei einem zwischengeschobenen PageSetup-Befehl vor jedem Druck erfolgte eine Aktualisierung mit den neuen Werten.
Ich hab das jetzt mal so eingebaut.
Gruß
Franz
Private Sub CommandButton4_Click()   'Drucken
Dim a As Long, b As Integer, aL As Long
Dim wksDruck As Worksheet, wksSammel As Worksheet
Dim strText1 As String, strText2 As String, strText3 As String
Set wksDruck = ActiveWorkbook.Sheets("Druck")
Set wksSammel = ActiveWorkbook.Sheets("Sammelrechnungen")
If wksSammel.Range("B2") = "" Then Exit Sub
Unload Me
aL = wksSammel.Cells(1, 1).End(xlDown).Row
wksDruck.Activate
For a = 2 To aL Step 3
For b = 0 To 2
If a + b 

Anzeige
AW: Aktualisieren von Textboxen und drucken
13.03.2014 14:00:40
Textboxen
Hallo Franz
Entschuldigung fürs Zertifikat, hatte ich zum Entfernen vergessen!
Habs jetzt bei mir eingebaut und hat auf Anhieb super funktioniert!!
Tausend Dank und noch einen schönen Tag!
Grüße
Chris

311 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige