Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
744to748
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
744to748
744to748
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Blatt mit "Aufkleber" füllen

Blatt mit "Aufkleber" füllen
16.03.2006 15:06:25
Thorsten
Hallo,
ich möchte gern ein Blatt mit einem Aufkleber füllen. Dazu habe ich ein Vorlagen Tabellenblatt erstellt und da den Aufkleber-Text (unformatiert) und die Anzahl von Aufklebern die ich brauche eingetragen.
Leider kenn ich mich noch nicht all zu gut mit VBA aus. Ich habe aber schon eine grobe Richtung für mein vorhaben als Makro erstellt in meine Excel-Mappe.
Jetzt komme ich leider nichtmehr weiter in meiner For-Schleife. Ich muss nun den Aufkleber-Text von meiner Vorlage in mein Druck-Tabellenblatt bekommen und dabei so Formatieren wie es auf dem Druck Tabellenblatt als Beispiel schon ist.
Ihr könnt euch hier (

Die Datei https://www.herber.de/bbs/user/31963.xls wurde aus Datenschutzgründen gelöscht

)ein Bild meines vorhabens runterladen.
Ich hoffe ich habe es einigermaßen verständlich erklärt und ihr könnt mir dabei weiterhelfen.
Gruß Thorsten

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Blatt mit "Aufkleber" füllen
16.03.2006 15:17:49
Reinhard
Hi Thorsten,
ich würde da grundsätzlich erstmal Word--Etikettendruck benutzen.
Gruß
Reinhard
AW: Blatt mit "Aufkleber" füllen
16.03.2006 15:33:25
Thorsten
Hallo Reinhard,
ich will ja keine Etiketten von Zweckform bedrucken, sondern einfach nur ein Blatt das dann irgendwo aufgeklebt wird. Außerdem würde ich es halt gern mit VBA lösen, zudem dürfte das doch kein Problem darstellen es so zu machen. Auch wenn es nicht der idealste Weg sein mag.
Gruß Thorsten
AW: Blatt mit "Aufkleber" füllen
16.03.2006 15:33:32
Thorsten
Hallo Reinhard,
ich will ja keine Etiketten von Zweckform bedrucken, sondern einfach nur ein Blatt das dann irgendwo aufgeklebt wird. Außerdem würde ich es halt gern mit VBA lösen, zudem dürfte das doch kein Problem darstellen es so zu machen. Auch wenn es nicht der idealste Weg sein mag.
Gruß Thorsten
Anzeige
AW: Blatt mit "Aufkleber" füllen
16.03.2006 16:23:55
Reinhard
Hi Torsten,
In G2 noch die Spaltenanzahl angeben
Option Explicit
Sub Copy()
Dim Anzahl As Integer, n As Integer, wsV As Worksheet, wsD As Worksheet
Dim Spalten As Byte, zei As Long, spa As Byte, nn As Byte
Application.ScreenUpdating = False
On Error GoTo ende:
Set wsD = Worksheets("Druck")
Set wsV = Worksheets("Vorlage")
With wsD
Anzahl = wsV.Range("F2") 'Anzahl vom Tabellenblatt "Vorlage" holen
Spalten = wsV.Range("G2") 'Anzahl Spalten nach rechts festlegen für die For-Schleife
.UsedRange.Clear
For n = 1 To Anzahl
zei = Int((n - 1) / Spalten) * 3
spa = n - Int((n - 1) / Spalten) * Spalten
wsV.Range("B2").Copy Destination:=.Cells(zei + 1, spa)
wsV.Range("B3").Copy Destination:=.Cells(zei + 2, spa)
With .Cells(zei + 3, spa)
.Value = Right("000" & n, 3) & " - F01"
.HorizontalAlignment = xlCenter
.Font.Bold = True
End With
With Range(.Cells(zei + 1, spa), .Cells(zei + 3, spa))
For nn = 7 To 10
With .Borders(nn)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
Next nn
End With
Next n
End With
ende:
Application.ScreenUpdating = True
End Sub

Gruß
Reinhard
ps: Ich freue mich über eine Rückmeldung ob diese Antwort hilfreich war oder nicht..
Anzeige
AW: Blatt mit "Aufkleber" füllen
17.03.2006 12:18:59
Thorsten
Danke für deine Antwort, der Code sieht auf jedenfall besser aus als meiner :)
Aber da kommt nichts bei raus. Ich erhalte auch keine Fehlermeldung, vermutlich weil du n = 1 hast und dann n - 1 in einigen berechnungen verwendest. Aber selbst lösen hab ich es noch nicht können.
Gruß Thorsten
AW: Blatt mit "Aufkleber" füllen
17.03.2006 12:52:55
Reinhard
Hi Thorsten,
mein Code läuft einwandfrei, je nach Vorgaben in F2 und G2 in Blatt Vorlage wird Blatt Druck erstellt.
https://www.herber.de/bbs/user/31986.xls

Gruß Reinhard ps: Ich freue mich über eine Rückmeldung ob diese Antwort hilfreich war oder nicht..
Anzeige
AW: Blatt mit "Aufkleber" füllen
20.03.2006 09:03:35
Thorsten
Du hast Recht. Mit Excel 2000 Funktioniert es, aber nicht mir Excel 97 :)
Danke
AW: Blatt mit "Aufkleber" füllen
16.03.2006 15:19:05
Klaus
Hallo Thorsten,
da ist kein Makro ...
Ich nehm an es geht um die fortlaufenden Nummern? Was spricht denn gegen deine "Formel"lösung?
Gruß,
Klaus M.vdT.
AW: Blatt mit "Aufkleber" füllen
16.03.2006 15:30:13
Thorsten
Sorry, da scheint was schief gelaufen zu sein hier nochmal und ich bekomm es auch nicht hin das auf der hochgeladenen Mappe das Makro erscheint, komisch. Ich schreib es weiter unten hin.
Ich möchte mich etwas mehr mit VBA beschäftigen und wenn ich ab und an ein Beispiel bekomme wär das eine echte Hilfe. Zumal das ja ein Problem ist das ich damit einfach lösen könnte würde ich mich etwas mehr mit VBA auskennen.
Makro:

Private Sub Copy()
Dim counter As Integer 'counter für Zelleninhalt
Dim row As Integer 'Zeile für die For-Schleife
Dim column As Integer 'Spalte für die For-Schleife
Dim rows As Integer 'Anzahl Zeilen die benötigt werden
Dim columns As Integer 'Anzahl Spalten die benötigt werden
Dim quantity As Integer 'benötigte Anzahl von fertigen Objekten
counter = 0 'counter mit 0 initialisieren
quantity = Worksheets("Vorlage").Range("F2") 'Anzahl vom Tabellenblatt "Vorlage" holen
columns = 6 'Anzahl Spalten nach rechts festlegen für die For-Schleife
rows = quantity / columns * 3 'Anzahl Zeilen nach unten festlegen für die For-Schleife
'letzte Objekte erstellen mit: quantity - rows * columns
For row = 1 To rows
For column = 1 To columns
Next column
row = row + 2
Next row
End Sub

Gruß Thorsten
Anzeige
AW: Blatt mit "Aufkleber" füllen
16.03.2006 16:05:52
UweD
Hallo
hier schon mal das hochzählen usw...
die Konstanten bau bitte selber ein.

Private Sub Copy()
Dim counter As Integer 'counter für Zelleninhalt
Dim row As Integer 'Zeile für die For-Schleife
Dim column As Integer 'Spalte für die For-Schleife
Dim rows As Integer 'Anzahl Zeilen die benötigt werden
Dim columns As Integer 'Anzahl Spalten die benötigt werden
Dim quantity As Integer 'benötigte Anzahl von fertigen Objekten
Dim Teil1%, Teil2$
Teil1 = Worksheets("Vorlage").Range("B4")
Teil2 = Worksheets("Vorlage").Range("D4")
counter = 0 'counter mit 0 initialisieren
quantity = Worksheets("Vorlage").Range("F2") 'Anzahl vom Tabellenblatt "Vorlage" holen
columns = 6 'Anzahl Spalten nach rechts festlegen für die For-Schleife
rows = quantity / columns * 3 'Anzahl Zeilen nach unten festlegen für die For-Schleife
'letzte Objekte erstellen mit: quantity - rows * columns
For row = 1 To rows
For column = 1 To columns
If counter >= quantity Then Exit Sub
Cells(row * 3, column) = Format(Teil1, "000") & " - " & Teil2
Teil1 = Teil1 + 1
counter = counter + 1
Next column
Next row
End Sub

Gruß UweD
(Rückmeldung wäre schön)
Anzeige
AW: Blatt mit "Aufkleber" füllen
17.03.2006 09:56:39
Thorsten
Danke UweD,
habs bis jetzt sehr gut mit dem Makro-Recorder ergänzen können. Ich hab jetzt nurnoch ein Problem. Wie kann ich mit Cells(row bis row + 3) 3 Zellen markieren?
Der bisherige Code der auch ganz gut funktioniert, wohl aber nicht der effektivste sein sollte :) schreib ich mal hier her:

Private Sub Copy()
Dim counter As Integer 'counter für Zelleninhalt
Dim row As Integer 'Zeile für die For-Schleife
Dim column As Integer 'Spalte für die For-Schleife
Dim rows As Integer 'Anzahl Zeilen die benötigt werden
Dim columns As Integer 'Anzahl Spalten die benötigt werden
Dim quantity As Integer 'benötigte Anzahl von fertigen Objekten
Dim Teil1%, Teil2$
Teil1 = Worksheets("Vorlage").Range("B4")
Teil2 = Worksheets("Vorlage").Range("D4")
counter = 0 'counter mit 0 initialisieren
quantity = Worksheets("Vorlage").Range("F2") 'Anzahl vom Tabellenblatt "Vorlage" holen
columns = 6 'Anzahl Spalten nach rechts festlegen für die For-Schleife
rows = quantity / columns * 3 'Anzahl Zeilen nach unten festlegen für die For-Schleife
'letzte Objekte erstellen mit: quantity - rows * columns
Sheets("Druck").Select
For row = 1 To rows
For column = 1 To columns
If counter >= quantity Then Exit Sub
With Cells(row, column)
.Value = Worksheets("Vorlage").Range("B2")
.Font.Name = "Arial"
.Font.Size = 11
.HorizontalAlignment = xlCenter
.Font.Italic = True
End With
With Cells(row + 1, column)
.Value = Worksheets("Vorlage").Range("B3")
.Font.Name = "Arial"
.Font.Size = 8
.HorizontalAlignment = xlCenter
.WrapText = True
.ShrinkToFit = True
End With
With Cells(row + 2, column)
.Value = Format(Teil1, "000") & " - " & Teil2
.HorizontalAlignment = xlCenter
.Font.Bold = True
End With
Cells(column).columns.AutoFit
With Cells(row * 3, column)
.Borders(xlEdgeLeft).LineStyle = xlContinuous
.Borders(xlEdgeLeft).Weight = xlThin
.Borders(xlEdgeLeft).ColorIndex = xlAutomatic
.Borders(xlEdgeTop).LineStyle = xlContinuous
.Borders(xlEdgeTop).Weight = xlThin
.Borders(xlEdgeTop).ColorIndex = xlAutomatic
.Borders(xlEdgeBottom).LineStyle = xlContinuous
.Borders(xlEdgeBottom).Weight = xlThin
.Borders(xlEdgeBottom).ColorIndex = xlAutomatic
.Borders(xlEdgeRight).LineStyle = xlContinuous
.Borders(xlEdgeRight).Weight = xlThin
.Borders(xlEdgeRight).ColorIndex = xlAutomatic
End With
Teil1 = Teil1 + 1
counter = counter + 1
Next column
Cells(row).rows.AutoFit
Cells(row + 1).rows.AutoFit
Cells(row + 2).rows.AutoFit
row = row + 2
Next row
End Sub

Anzeige
AW: Blatt mit "Aufkleber" füllen
17.03.2006 10:19:38
Thorsten
Hier nochmal mein Code, vielleicht kann jemand nochmal drüber schaun und das mit den Bordern Optimieren. Anders hab ichs nich hinbekommen.
Gruß Thorsten

Private Sub Copy()
Dim counter As Integer 'counter für Zelleninhalt
Dim row As Integer 'Zeile für die For-Schleife
Dim column As Integer 'Spalte für die For-Schleife
Dim rows As Integer 'Anzahl Zeilen die benötigt werden
Dim columns As Integer 'Anzahl Spalten die benötigt werden
Dim quantity As Integer 'benötigte Anzahl von fertigen Objekten
Dim Teil1%, Teil2$
Teil1 = Worksheets("Vorlage").Range("B4")
Teil2 = Worksheets("Vorlage").Range("D4")
counter = 0 'counter mit 0 initialisieren
quantity = Worksheets("Vorlage").Range("F2") 'Anzahl vom Tabellenblatt "Vorlage" holen
columns = 6 'Anzahl Spalten nach rechts festlegen für die For-Schleife
rows = quantity / columns * 3 'Anzahl Zeilen nach unten festlegen für die For-Schleife
'Tabellenblatt Druck Löschen um ein Jungfräuliches Blatt zu erhalten
Application.DisplayAlerts = False
Sheets("Druck").Delete
Sheets.Add.Name = "Druck"
Application.DisplayAlerts = True
Sheets("Druck").Select
For row = 1 To rows
For column = 1 To columns
If counter >= quantity Then Exit Sub
With Cells(row, column)
.Value = Worksheets("Vorlage").Range("B2")
.Font.Name = "Arial"
.Font.Size = 11
.HorizontalAlignment = xlCenter
.Font.Italic = True
End With
With Cells(row + 1, column)
.Value = Worksheets("Vorlage").Range("B3")
.Font.Name = "Arial"
.Font.Size = 8
.HorizontalAlignment = xlCenter
.WrapText = True
.ShrinkToFit = True
End With
With Cells(row + 2, column)
.Value = Format(Teil1, "000") & " - " & Teil2
.HorizontalAlignment = xlCenter
.Font.Bold = True
End With
Cells(column).columns.AutoFit
With Cells(row, column)
.Borders(xlEdgeLeft).LineStyle = xlContinuous
.Borders(xlEdgeLeft).Weight = xlThin
.Borders(xlEdgeLeft).ColorIndex = xlAutomatic
.Borders(xlEdgeTop).LineStyle = xlContinuous
.Borders(xlEdgeTop).Weight = xlThin
.Borders(xlEdgeTop).ColorIndex = xlAutomatic
.Borders(xlEdgeRight).LineStyle = xlContinuous
.Borders(xlEdgeRight).Weight = xlThin
.Borders(xlEdgeRight).ColorIndex = xlAutomatic
End With
With Cells(row + 1, column)
.Borders(xlEdgeLeft).LineStyle = xlContinuous
.Borders(xlEdgeLeft).Weight = xlThin
.Borders(xlEdgeLeft).ColorIndex = xlAutomatic
.Borders(xlEdgeRight).LineStyle = xlContinuous
.Borders(xlEdgeRight).Weight = xlThin
.Borders(xlEdgeRight).ColorIndex = xlAutomatic
End With
With Cells(row + 2, column)
.Borders(xlEdgeLeft).LineStyle = xlContinuous
.Borders(xlEdgeLeft).Weight = xlThin
.Borders(xlEdgeLeft).ColorIndex = xlAutomatic
.Borders(xlEdgeBottom).LineStyle = xlContinuous
.Borders(xlEdgeBottom).Weight = xlThin
.Borders(xlEdgeBottom).ColorIndex = xlAutomatic
.Borders(xlEdgeRight).LineStyle = xlContinuous
.Borders(xlEdgeRight).Weight = xlThin
.Borders(xlEdgeRight).ColorIndex = xlAutomatic
End With
Teil1 = Teil1 + 1
counter = counter + 1
Next column
Cells(row).rows.AutoFit
Cells(row + 1).rows.AutoFit
Cells(row + 2).rows.AutoFit
row = row + 2
Next row
End Sub

Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige