Registriert seit: 03.10.2018
Version(en): 2016
Also ich habe jetzt den Code in den Modul rein geschrieben und in code " call DruckBereich" abgeändert jetzt bekomme ich folgende fehler:
"anwendung oder Objekt defenierter fehler"
Hier die zwei Codes
Code in Module
Code: Sub DruckBereich()
ActiveWorkbook.Names("Print_Area").Delete
ActiveWorkbook.Names.Add Name:="Print_Area", RefersToR1C1:= _
"='Label Bsp'!R2C1:R" & Cells(Rows.Count, 2).End(xlUp).Row & "C4"
End Sub
Dazu noch eine Frage was bedeutet das; ActiveWorkbook.Names.Add Name:="Print_Area", RefersToR1C1:= und das "C4"
Haupt Code
Zitat:Code: druck = True
Set sheet = ActiveWorkbook.Sheets("Label")
'label zellen
sheet.Cells(Rowmultier + 1, multiplier) = ListBox1.List(icnt1, 12)
sheet.Cells(Rowmultier + 2, multiplier) = ListBox1.List(icnt1, 1)
sheet.Cells(Rowmultier + 3, multiplier) = ListBox1.List(icnt1, 2)
sheet.Cells(Rowmultier + 4, multiplier) = ListBox1.List(icnt1, 3)
sheet.Cells(Rowmultier + 5, multiplier) = ListBox1.List(icnt1, 14)
sheet.Cells(Rowmultier + 6, multiplier) = ListBox1.List(icnt1, 11)
sheet.Cells(Rowmultier + 7, multiplier) = ListBox1.List(icnt1, 9)
sheet.Cells(Rowmultier + 7, multiplier + 2) = ListBox1.List(icnt1, 10)
If colCounter < 1 Then
colCounter = colCounter + 1
multiplier = multiplier + 5
Else
RowCounter = RowCounter + 1
colCounter = 0
multiplier = 2
Rowmultier = Rowmultier + 7
End If
'Ende mit der ersten lleren Zelle (anhand Spalte 6)
End With
'Ende Mit dem Zielblatt
End With
'Ende Wenn Zeileneintrag gewaelt wurde, dann
End If
Next
Unload Me
Call DruckBereich
Danke
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
ich hatte geschrieben, dass ich einen Druckbereich definiert hatte. Ich hatte ihn beim Aufzeichnen gelöscht, bevor ich ihn neu definiert hatte. Wenn Du noch keinen hast, kommt der Fehler. Muss man aber nicht machen, die Zeile kann raus.
C4:
ich hatte es zu "C1" erklärt:
Spalte A (C1 / Spalte 1 = A) l
Wenn 1 = A ist wäre 4 dann ?
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 03.10.2018
Version(en): 2016
Sorry aber ich checke es nicht was ich schreiben soll.
könntest du mir den Code schreiben.
Meine Rage sind A1:D7, label2 ist F1:I7, Label3 A8:D14, Label4 F8:I14 und so weiter.
Danke dir
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
also, zur Erklärung. C4 bedeutet Colum 4 bzw. Spalte 4 bzw. Spalte D
Hier sollst Du die Zeile zum Löschen weglassen.
Code: Sub DruckBereich()
ActiveWorkbook.Names("Print_Area").Delete
ActiveWorkbook.Names.Add Name:="Print_Area", RefersToR1C1:= _
"='Label Bsp'!R2C1:R" & Cells(Rows.Count, 2).End(xlUp).Row & "C4"
End Sub
Das wäre dann
Code: Sub DruckBereich()
ActiveWorkbook.Names.Add Name:="Print_Area", RefersToR1C1:= _
"='Label Bsp'!R2C1:R" & Cells(Rows.Count, 2).End(xlUp).Row & "C4"
End Sub
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 03.10.2018
Version(en): 2016
und das hier
Code: "='Label Bsp'!R2C1:R"
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
das ist aber auch nicht schwer ...
Label Bsp
ist der Blattname. Der wird von Hochkommas eingeschlossen, ist so geregelt.
'Label Bsp'
Das Ausrufezeichen
!
trennt den Blattname von der Zelladressangabe
R2C1:R
Die zum zweiten R gehörende Zeilennummer wird ermittelt mit
Cells(Rows.Count, 2).End(xlUp).Row
und die & verbinden die Zeichenketten.
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 03.10.2018
Version(en): 2016
ich verzweifle mit diesen Thema.
Ich habe das jetzt so angepasst:
Code: Sub DruckBereich()
ActiveWorkbook.Names.Add Name:="Label", RefersToR1C1:= _
"='Label'R2C1:R" & Cells(Rows.Count, 2).End(xlUp).Row & "C4"
End Sub
es passiert nichts und hier wird der Wert Cells(Rows.Count, 2) = 1048576 angezeigt, was bedeute das.
Registriert seit: 11.04.2014
Version(en): Office 2007
Hallo,
(16.06.2020, 09:42)Pirat2015 schrieb: ich verzweifle mit diesen Thema.
es passiert nichts und hier wird der Wert Cells(Rows.Count, 2) = 1048576 angezeigt, was bedeute das.
Wieviele Zeilen hat deine Exceltabelle zur Verfügung?
Und wahrscheinlich ist bei der Codeausführung das Tabellenblatt Label1 nicht aktiv.
Code: Sub DruckBereich()
ActiveWorkbook.Names.Add Name:="Label", RefersToR1C1:= _
"='Label'R2C1:R" & Worksheets("Label1").Cells(Worksheets("Label1").Rows.Count, 2).End(xlUp).Row & "C4"
End Sub
Gruß Stefan
Win 10 / Office 2016
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
passiert denn wirklich nix bzw. was erwartest Du an der Stelle? Hast Du Daten in Spalte B hinzugefügt oder am Ende gelöscht und dann den Druckbereich auf dem Blatt geprüft? Wenn sich an den Daten nix ändert, ändert sich auch der Druckbereich nicht. Geprüft wird hier, wie ich irgendwo schon schrieb, anhand der Eintragungen in Spalte 2 (B)
Zitat:Cells(Rows.Count, 2).End(xlUp).Row stellt anhand des ausgefüllten Bereiches von Spalte B fest, wo die letzte ausgefüllte Zelle (Zeilennummer) ist. Das ist die VBA-Variante von STRG+Up aus der letzten Zeile heraus
Du kannst zum Test auch einen pdf-Drucker auswählen und die Datei als pdf ausdrucken, das verschwendet weder Papier noch Tinte
Problematisch wäre es, wenn Du die Daten in Spalte B per Formel einträgst oder inzwischen auf eine Liste umgestellt hast. Das war in Deinem Beispiel in #84 beides noch nicht der Fall.
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 03.10.2018
Version(en): 2016
Code: roblematisch wäre es, wenn Du die Daten in Spalte B per Formel einträgst
ich fülle die Labels Vorlage mit einen VBA code, also den welchen wir zusammen erstellt haben:). Ich habe diesen etwas verändert:)
Code: Private Sub CommandButton1_Click()
'Variablendeklarationen - Integer (%)
Dim icnt1%
Dim sheet As Worksheet
Dim colCounter As Long
Dim RowCounter As Long
Dim multiplier As Long
Dim Rowmultier As Long
multiplier = 2
colCounter = 0
RowCounter = 0
Rowmultier = 0
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
'Zieldate oeffnen
Workbooks.Open Filename:="Pfad"
'Qelldatei wieder aktivieren
Windows("Tabelle1.xlsm").Activate
'Schleife ueber Listeneintraege - Zaehlung beginnt bei 0!
Dim druck As Variant
druck = MsgBox("Please print Label", vbYes)
For icnt1 = 0 To ListBox1.ListCount - 1
'Wenn Zeileneintrag gewaelt wurde, dann
If ListBox1.Selected(icnt1) Then
'Mit dem Zielblatt
With Workbooks("Tabelle1").Sheets("Test1")
'mit der ersten lleren Zelle (anhand Spalte 7)
With .Cells(.Cells(.Rows.Count, 7).End(xlUp).Row + 1, 7)
'Eintraege der Listbox uebernehmen, Spalten 4 bis 7 - Zaehlung beginnt bei 0!
.Value = ListBox1.List(icnt1, 0)
.Offset(, 1) = ListBox1.List(icnt1, 1) '2
.Offset(, 4) = ListBox1.List(icnt1, 2) '3
'.Offset(, 12) = ListBox1.List(icnt1, 3) '4
.Offset(, 12).Value = CInt(Split(ListBox1.List(icnt1, 3))(0)) / 1
.Offset(, 12 + 1).Value = Split(ListBox1.List(icnt1, 3))(1)
.Offset(, 28) = ListBox1.List(icnt1, 4) '5
.Offset(, 6) = ListBox1.List(icnt1, 5) '6
.Offset(, 29) = ListBox1.List(icnt1, 6) '7
.Offset(, 30) = ListBox1.List(icnt1, 7) '8
.Offset(, 31) = ListBox1.List(icnt1, 8) '9
.Offset(, 23) = ListBox1.List(icnt1, 9) '10
.Offset(, 38) = ListBox1.List(icnt1, 9) '10
.Offset(, 24) = ListBox1.List(icnt1, 10) '11
.Offset(, 22) = ListBox1.List(icnt1, 11) '12
If InStr(.Cells(.Rows.Count, 62), "PF80...") > 0 Then
.Offset(, 1) = ListBox1.List(icnt1, 13) '13
Else
.Offset(, 1) = ListBox1.List(icnt1, 12) '12
End If
'.Offset(, 1) = ListBox1.List(icnt1, 12) '13
'.Offset(, 1) = ListBox1.List(icnt1, 13) '14
'beginnt bei Zelle 7 = 0
.Cells(.Rows.Count, -4) = "9"
.Cells(.Rows.Count, 40) = "-"
.Cells(.Rows.Count, 38) = "local"
.Cells(.Rows.Count, 37) = "local"
.Cells(.Rows.Count, 41) = Format(Date, "dd.mm.yyyy")
'mit diesen Code Abschnitt wird der Label bzw. Labels gefüllt
druck = True
Set sheet = ActiveWorkbook.Sheets("Label")
'label zellen
sheet.Cells(Rowmultier + 1, multiplier) = ListBox1.List(icnt1, 12)
sheet.Cells(Rowmultier + 2, multiplier) = ListBox1.List(icnt1, 1)
sheet.Cells(Rowmultier + 3, multiplier) = ListBox1.List(icnt1, 2)
sheet.Cells(Rowmultier + 4, multiplier) = ListBox1.List(icnt1, 3)
sheet.Cells(Rowmultier + 5, multiplier) = ListBox1.List(icnt1, 14)
sheet.Cells(Rowmultier + 6, multiplier) = ListBox1.List(icnt1, 11)
sheet.Cells(Rowmultier + 7, multiplier) = ListBox1.List(icnt1, 9)
sheet.Cells(Rowmultier + 7, multiplier + 2) = ListBox1.List(icnt1, 10)
If colCounter < 1 Then
colCounter = colCounter + 1
multiplier = multiplier + 5
Else
RowCounter = RowCounter + 1
colCounter = 0
multiplier = 2
Rowmultier = Rowmultier + 7
End If
'Ende mit der ersten lleren Zelle (anhand Spalte 6)
End With
'Ende Mit dem Zielblatt
End With
'Ende Wenn Zeileneintrag gewaelt wurde, dann
End If
Next
Unload Me
Call DruckBereich
Tabelle1.PrintPreview
Dim labelrange As Range
Set labelrange = sheet.Range("B1:D1000,G1:I100")
labelrange.ClearContents
'Zieldatei aktivieren
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
Windows("Tabelle1").Activate
Unload Me
MsgBox "Done"
End Sub
vielleicht liegt ja hier der fehler.
|