295 Aufrufe
Gefragt in Tabellenkalkulation von
Hallo habe mal wieder ein Anliegen.

Nach Makro Start.

Abfrage Fenster einblenden Text (Sind Kunde, Pal.-Nr. & Kg aktualisiert) Ja für weiter mit Makro nein um Daten zu aktualisieren und Makro manuell neu zu starten.

Wert aus z.B. Tabelle 1 (Blatt wurde umbenannt auf (Etiketten) / z.B. F1 kopieren +1 berechnen

 Blattschutz für Tabelle 2 (Blatt wurde umbenannt auf (PP Bico Bunt) aufheben Passwort= (neinnein)

und den Wert in Tabelle 2 z.B. in Spalte A in die erste leere Zelle einfügen, in der Zelle daneben das aktuelle Datum. (Datum einfügen, möchte ich falls nötig im Makro deaktivieren können)

Weiteren Wert aus Tabelle 1 (Blatt wurde umbenannt auf (Etiketten) / z.B C9 kopieren -

und den Wert in Tabelle 2 (Blatt wurde umbenannt auf (PP Bico Bunt)  z.B. in Spalte C in die erste freie Zelle einfügen

Blattschutz für Tabelle 2 aktivieren Passwort= (neinnein)

und wieder auf Tabelle 1 in z.B. Zelle C9 gehen, speichern -Tabelle 1 möchte ich mit folgenden Makro ausdrucken.

Makro am Anfang von folgenden Mako einfügen!

Option Private Module

Sub Etikett_N()

'Standarddrucker merken

StdDrucker = Application.ActivePrinter

'Neuen Drucker bestimmen

Application.ActivePrinter = "Zebra Z160 auf Ne00:"

'Drucken

ActiveSheet.PrintOut From:=1, To:=1, Copies:=ActiveSheet.Range("c11"), Collate _

:=True, IgnorePrintAreas:=False

'Wieder Standarddrucker einstellen

ActivePrinter = StdDrucker

End Sub

Beste Grüße & Dank an Euch!

9 Antworten

0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)

Hallo Hans,

wenn du mal eine Beispieltabelle mit ein paar Dummy-Daten hier im Form einstellen könntest (Anleitung), dann könnte man sich das mal anschauen und vielleicht auch besser verstehen, was du willst.

Gruß

M.O.

0 Punkte
Beantwortet von

Hallo,

zum besseren Verständnis hier die

entsprechende Beispieldatei.

Gruß

Hans

0 Punkte
Beantwortet von
Hallo,

Habe grade einen Fehler in meiner Beschreibung bemerkt.

Poste sie bei der nächsten Gelegenheit, bin auf der Arbeit.

Hans
0 Punkte
Beantwortet von

Hallo,
hier nochmal eine neue Beschreibung meines Anliegens, hoffe es ist verständlich

Nach Makro Start..
Abfrage Fenster einblenden Text (Sind Kunde, Pal.-Nr. & Kg aktualisiert) Ja für weiter mit Makro nein um Daten zu aktualisieren und Makro manuell neu zu starten.
Wert aus Tabelle 1 (Blatt wurde umbenannt auf (Etiketten) /  F1 kopieren +1 berechnen
 Blattschutz für Tabelle 2 (Blatt wurde umbenannt auf (PP Bico Bunt) aufheben Passwort= (neinnein)
und den Wert in Tabelle 2  in Spalte A in die erste leere Zelle einfügen, in der Zelle daneben das aktuelle Datum.

In die gleiche Zeile den Wert aus Tabelle 1 Zelle D9 - in Spalte D kopieren ( Spalte D möchte ich anpassen können da ich das Makro kopieren wollte um Werte in Spalte E-F-G zu kopieren
Blattschutz für Tabelle 2 aktivieren Passwort= (neinnein)
und wieder auf Tabelle 1 in z.B. Zelle C9 gehen, speichern – Ausdruck mit vorhandenen Makro starten, Beispieldatei.

Gruß

Hans

0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)

Hallo Hans,

ich hoffe, ich habe dich richtig verstanden:

Sub drucken()
Dim Antwort
Dim lngNr As Long
Dim lngLetzte As Long

'Frage ob Daten aktualisiert wurden
Antwort = MsgBox("Sind Kunde, Pal.-Nr. & Kg aktualisiert?", 36, "Frage")

'falls nicht, dann Makro verlassen
If Antwort = vbNo Then
   MsgBox "Bitte aktualisieren Sie die Daten und starten Sie danach das Makro neu!", 48, "Abbruch!"
   Exit Sub
End If

With Worksheets("Etiketten").Range("F1")
  'lfd. Nr. einlesen und um 1 eröhen
  lngNr = .Value + 1
  'und neue lfd. Nr. zurückschreiben
  .Value = lngNr
End With

With Worksheets("PP Bico Bunt")
  'Blattschutz aufheben
  'erst einmal prüfen, ob Blattschutz überhaupt vorhanden ist
   If .ProtectContents = True Then
      'falls ja, dann aufheben
      .Unprotect "neinnein"
   End If
   'letzte beschriebene Zeile ermitteln und um 1 erhöhen
   lngLetzte = .Cells(Rows.Count, 1).End(xlUp).Row + 1
   'lfd Nr in Spalte A schreiben
   .Cells(lngLetzte, 1) = lngNr
   'aktuelles Datum in Spalte B schreiben
   .Cells(lngLetzte, 2) = Date
   'kg aus Zelle C9/D9 im Tabellenblatt Etiketten kopieren nach Spalte D kopieren
   .Cells(lngLetzte, 4) = Worksheets("Etiketten").Range("C9").Value
   'Blattschutz aktivieren
   .Protect "neinnein"
 End With
 
 'Datei speichern
 ThisWorkbook.Save
 
 'Tabellenblatt Etiketten aktivieren
 Worksheets("Etiketten").Activate
 
'Ausdruck starten
Call Etikett_N

End Sub

Gruß

M.O.

0 Punkte
Beantwortet von

Halo & sorry.

Habe mich wohl an mehreren Stellen unverständlich ausgedrückt. 

Das zweite Abfrage Fenster ist nicht nötig.

Im Ersten Fenster soll ein Ja das Makro starten, ein Klick auf nein soll nur das Abfragefenster schließen und das Makro nicht starten.

Makro stoppt und kennzeichnet folgenden Bereich gelb …

With Worksheets("Etiketten").Range("F1")

'lfd. Nr. einlesen und um 1 eröhen

  lngNr = .Value + 1

  'und neue lfd. Nr. zurückschreiben

  .Value = lngNr

End With

Wert aus Tabellenblatt Etikett F1 soll kopiert werden und im Tabellenblatt PP Bico Bunt in Spalte A

in die erste leere Zelle eingefügt und dann um eins erhöht werden, daneben das Aktuelle Datum.

In der selben Zeile in Spalte D der Wert aus Tabellenblatt Etikett C9 kopiert und eingefügt.

Ich möchte das Makro einer Schaltfläche zuweisen.

Gruß

Hans

0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Hans,

in deiner Beispieldatei war im Tabellenblatt das Feld F1 leer. Daher habe ich hier einfach mal eine Zahl eingefügt und bin davon ausgegangen, dass diese mit jedem Druckvorgang erhöht werden soll (daher auch das zurückschreiben). Steht hier in deiner Originaldatei eine laufende Nummer drin? Wird diese per Hand eingefügt?

Im Tabellenblatt Etikett steht in Zelle C9 (verbunden mit D9) das Gewicht. Das wird entsprechenden deinen Wünschen in das andere Blatt kopiert. Oder weicht auch hier deine Originaldatei von deiner Beispieldatei ab?

Gruß

M.O.
0 Punkte
Beantwortet von

Hallo M.O.,

Ja in der Originaldatei steht dort eine Zahl, über eine = Max() Abfrage.

Gewicht in C9:D9 das ist auch in der Original Datei so.

Danke für deine Geduld.

Hans

0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)

Hallo Hans,

ich habe das Makro entsprechend deinen Wünschen geändert. Den Fehler kann ich leider nicht nachvollziehen.

Sub drucken()
Dim Antwort
Dim lngNr As Long
Dim lngLetzte As Long

'Frage ob Daten aktualisiert wurden
Antwort = MsgBox("Sind Kunde, Pal.-Nr. & Kg aktualisiert?", 36, "Frage")

'falls nicht, dann Makro verlassen
If Antwort = vbNo Then Exit Sub

With Worksheets("Etiketten").Range("F1")
  'lfd. Nr. einlesen und um 1 eröhen
  lngNr = .Value + 1
End With

With Worksheets("PP Bico Bunt")
  'Blattschutz aufheben
  'erst einmal prüfen, ob Blattschutz überhaupt vorhanden ist
   If .ProtectContents = True Then
      'falls ja, dann aufheben
      .Unprotect "neinnein"
   End If
   'letzte beschriebene Zeile ermitteln und um 1 erhöhen
   lngLetzte = .Cells(Rows.Count, 1).End(xlUp).Row + 1
   'lfd Nr in Spalte A schreiben
   .Cells(lngLetzte, 1) = lngNr
   'aktuelles Datum in Spalte B schreiben
   .Cells(lngLetzte, 2) = Date
   'kg aus Zelle C9/D9 im Tabellenblatt Etiketten kopieren nach Spalte D kopieren
   .Cells(lngLetzte, 4) = Worksheets("Etiketten").Range("C9").Value
   'Blattschutz aktivieren
   .Protect "neinnein"
 End With
 
 'Datei speichern
 ThisWorkbook.Save
 
 'Tabellenblatt Etiketten aktivieren
 Worksheets("Etiketten").Activate
 
'Ausdruck starten
Call Etikett_N

End Sub


Gruß

M.O.

...