Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Daten Übertragung mit Dialogfenster und Abfrage
#81
Andre kannst du bitte auch hier rein schauen.

Danke
Antworten Top
#82
Hallo Andre,

das Problem mit mehrer labels wurde gelöst. Jetzt habe ich aber ein weiteres Problem. 
Ich lasse die Label ja in der anderen Tabelle erstellen, dazu habe ich Vorlage erstellt, da ich nicht weiß wie viele Labels benötigt werden habe ich die Vorlagen für 160 Labels erstellt.
Das sind dann 20 seiten (8 Labels pro Seite, ist eine Etikette Vorlage)

Das Problem ist jetzt wie folgt: wenn ich jetzt nur sagen wir mal 24 Labels brauche, dann bekomme ich ja die Daten für 30 Label aus der Listbox in die Label vorlagen gefüllt. 
Wenn ich jetzt blind auf drucken gehe, dann bekomme ich, wegen der Vorlage keine. keine 3 Seiten ausgedruckt, sonder alle 20. Das möchte ich natürlich nicht. 
Ich dachte wenn ich mit PrintPreview mir anzeige lasse was ich drucke, dann blättere ich durch und sobald ich die leere vorlage sehen dann weiß ich ja das ich bis zu diese Seite drucken soll.
Aber bei PrintPreview wird mir nur die erste Seite angezeigt und ich kann leider nicht durchblättern.

hier ist meine Code für die Bettfüllung der Vorlagen bis zu Löschung der Inhalte in der Vorlage:

Code:
If druck = vbYes Then
      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
        'End If
        End If
    'Ende mit der ersten lleren Zelle (anhand Spalte 30)
    End With
  'Ende Mit dem Zielblatt
  End With
'Ende Wenn Zeileneintrag gewaelt wurde, dann
End If
Next
Unload Me
      Tabelle1.PrintPreview
      Dim labelrange As Range
      Set labelrange = sheet.Range("B1:D100,G1:I100")
      labelrange.ClearContents

Der Rage des 1ten labels ist A1 bis D1 und A7 bis D7 (Gelb)
Die Werte von der ListBox werden in B1 bis B7 und dann noch in C7 geschrieben.

Der Rage des 2ten labels ist F1 bis I1 und F7 bis I7 (Grün)

Die Werte von der ListBox werden in G1 bis G7 und dann noch in I7 geschrieben

Der Rage des 3ten labels ist A8 bis D8 und A14 bis D14 (Grün)
Die Werte von der ListBox werden in B81 bis B14 und dann noch in D14 geschrieben


Und so weiter (zum besseren Verständnis habe ich eine excel als Bsp)

Wie kann ich es so einstellen, das wenn ich blind auf drucken gehen, nur die Labels ausgedruckt werden wo wirklich die Daten von der ListBox stehen?

Vielen Dank


Angehängte Dateien
.xlsx   LabelBsp.xlsx (Größe: 62,56 KB / Downloads: 4)
Antworten Top
#83
Andre kannst du nochmal hier schauen. Danke
Antworten Top
#84
Hallo,

Du könntest das über den Druckbereich lösen. Dazu kann man ein Makro aufzeichnen. Ich hatte schon einen Druckereich, den habe ich dazu gelöscht.

Code:
Sub Makro1()
'
' Makro1 Makro
'

'
    ActiveWorkbook.Names("Print_Area").Delete
    Range("A2:D7").Select
    ActiveWorkbook.Names.Add Name:="Print_Area", RefersToR1C1:= _
        "='Label Bsp'!R2C1:R7C4"
End Sub

Bisschen abgeändert könnt1e man das so lösen. Der Druckbereich wäre dann variabel anhand des letzten Eintrages in Spalte B. Du müsstest dann immer die "nebeneinanderliegenden" Labels ausfüllen.

Code:
Sub Makro1()
'
' Makro1 Makro
'

'
    Application.Goto Reference:="Print_Area"
    ActiveWorkbook.Names("Print_Area").Delete
    Range("A2:D7").Select
    ActiveWorkbook.Names.Add Name:="Print_Area", RefersToR1C1:= _
        "='Label Bsp'!R2C1:R7C4"
End Sub

Das Makro rufst Du dann vor dem Drucken auf.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#85
ehrlich gesagt verstehe ich das nicht mit aufzeichnen.


Zitat:Das Makro rufst Du dann vor dem Drucken auf.


Also ich setze das Makro in meine bestehenden Code oder, weil es soll ja automatisch alles ablaufen.
Wo setze ich das Makro ein nach PrintPreview ? oder brauche ich PrintPreview  nicht mehr
Antworten Top
#86
Hallöchen,

irgendwie war STRG+C nicht korrekt. Der zweite Code wäre

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

Statt der Zeile mit dem PrintPreview schreibst Du dann

Call Druckbereich

oder fügst den code anstelle der Zeile ein.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#87
aber die ActiveWorkbook.Names muss ich in "Label" ändern richtig?


Code:
Sub DruckBereich()
    ActiveWorkbook.Names("Label").Delete
    ActiveWorkbook.Names.Add Name:="Label", RefersToR1C1:= _
        "='Label Bsp'!R2C1:R" & Cells(Rows.Count, 2).End(xlUp).Row & "C4" --> und was sagt diese Zeile aus?
End Sub

Danke
Antworten Top
#88
Hallöchen,

nein, es geht ja um den Druckbereich. Nur wenn Du es auf einen anderen Blattnamen anwenden willst, musst Du Label Bsp entsprechend ändern.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#89
Nur dieser Code reicht schon:

Code:
Sub M_snb()
    Sheet1.PageSetup.PrintArea = Sheet1.Range("A1:K10").Address
End Sub
oder z.B.
Code:
Sub M_snb()
    Sheet1.PageSetup.PrintArea = Sheet1.cells(1).Currentregion.offset(1,4).Address
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#90
@ snb,

Currentregion geht dann nicht, wenn die Spalte A, wie ich annehme, vorausgefüllt ist. Ist sie es nicht, passt es natürlich Smile
Ein fester Bereich dürfte nicht gehen, weil die Länge des ausgefüllten Bereichs laut Aufgabe variabel ist

@ pirat

Zitat:"='Label Bsp'!R2C1:R" & Cells(Rows.Count, 2).End(xlUp).Row & "C4" --> und was sagt diese Zeile aus?

R2C1 ist z.B. eine absolute Adressierung. Der Druckbereich würde damit in Zeile 2 (R2 / Row 2) und Spalte A (C1 / Spalte 1 = A) losgehen.

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.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste