Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Hilfe bei Arbeitsauftrag (evtl. VAB)

Forumthread: Hilfe bei Arbeitsauftrag (evtl. VAB)

Hilfe bei Arbeitsauftrag (evtl. VAB)
08.10.2008 08:47:30
Matthias
Hallo zusammen,
ich arbeite noch nicht sehr lange mit Excel und beherrsche das Nötigste. Nun habe ich einen Arbeitsauftrag erhalten ,der meine Kenntnisse um Dimensiononen übersteigt :D
Hier meine 2 Aufträge:
1. )Das Dokument kann nicht gedruckt werden wenn z.B. A12 B13 C17 nicht ausgefüllt wurden
2.)Wenn in einem Feld ein bestimmtest Wort auftaucht, sollen gewisse zeilen ein bzw ausgeblendet werden z.B wenn im Feld C81 das Wort "Umzug" steht, sollen zeile 22,23,31,47 ausgeblendet werden.
Da es sich wohl um eine Lösung in VAB handelt, bitte ich um eine idiotensichere Beschreibung, weil ich sowas noch nie gamcht haben. Danke im vorraus
Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Hilfe bei Arbeitsauftrag (evtl. VAB)
08.10.2008 08:53:56
Hajo_Zi
Hallo Matthias,
starte den VBA Editor (Alt+F11), Bild sollte zweigeteilt sein ansonsten Strg+R, gehe auf Deine Datei, Doppelklick, Doppelkilck auf Diese Arbeitsmappe und Code ins rechte Fenster kopieren.

Option Explicit
Private Sub Workbook_BeforePrint(Cancel As Boolean)
If Range("A12") = "" Or Range("B13") = "" Or Range("C17") = "" Then Cancel = True
End Sub


schon ist das Problem Druck gelöst.

Anzeige
AW: Hilfe bei Arbeitsauftrag (evtl. VAB)
08.10.2008 09:07:00
Matthias
Danke Hajo. Kann ich diese Or Range beliebig erweitern, zb auf 5 Felder?
AW: Hilfe bei Arbeitsauftrag (evtl. VAB)
08.10.2008 09:09:06
Hajo_Zi
Hallo Matthias,
bis in gewissen Grenzen ja. Wo die liegen habe ich jetzt nicht parat.
Gruß Hajo
AW: Hilfe bei Arbeitsauftrag (evtl. VAB)
08.10.2008 09:36:00
Luschi
Hallo
Du kannst die Überprüfung auf leere Zellen auch so machen :

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim rg1 As Range, rg2 As Range
'hier alle Zelladressen angeben, die überprüft werden sollen
Set rg1 = ActiveSheet.Range("A12,B13,C14,K19,Z100,AA5,AG3")
For Each rg2 In rg1
If rg2.Value = "" Then
Cancel = True
MsgBox "Drucken nicht möglich, da " & rg2.Address(False, False) & " leer ist!", 16, " _
Pflichtfeld nicht gefüllt"
Exit For
End If
Next rg2
Set rg2 = Nothing
Set rg1 = Nothing
End Sub

Gruß von Luschi
aus klein-Paris

Anzeige
AW: Hilfe bei Arbeitsauftrag (evtl. VAB)
08.10.2008 10:00:00
Matthias
Deine Lösung gefällt mir Luschi, da ich ca 50-60 Felder eintragen muss.
Ich habe deinen Code bei alt+11 doppelklick arbeitsmappe eingefügt und danach nen testlauf gestartet.
ich erhalte den fehler : fehler beim kompilieren, Synthaxfehler
AW: Hilfe bei Arbeitsauftrag (evtl. VAB)
08.10.2008 10:12:00
Luschi
Hallo Matthias,
Du mußt ja nur in dieser Zeile
Set rg1 = ActiveSheet.Range("A12,B13,C14,K19,Z100,AA5,AG3")
die richtigen Zelladressen angeben. Entweder Du hast statt dem Komma ein Semikolon (wie in Formeln üblich) verwendet, oder irgend eine Zelladresse ist falsch geschrieben, gibt es deshalb nicht und est kommt zum Fehler beim Kompilieren.
Beachte aber auch, das dieser Vba-Code in 'DieseArbeitsmappe' reingehört' und nicht in irgendein Tabellen-Modul!
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Hilfe bei Arbeitsauftrag (evtl. VAB)
08.10.2008 10:22:00
Matthias
ich hab da evtl ne theorie warum es bei mir nicht funktioniert angenommen ich habe a1 b1 c1 zu einem feld zusammengefügt reicht da noch a1 in der klammer oder müssen alle 3 rein ?
AW: Hilfe bei Arbeitsauftrag (evtl. VAB)
08.10.2008 11:16:00
Luschi
Hallo Matthias,
ich hab's getestet, an den verbundenen Zellen stört sich das Programm nicht.
Da es ein Kompilierungsfehler ist, stimmt also die Syntax des Vba-Codes nicht.
Gruß von Luschi
aus klein-Paris
PS: stell doch einfach die Vba-Routine hier noch mal rein!
Anzeige
AW: Hilfe bei Arbeitsauftrag (evtl. VAB)
08.10.2008 11:34:00
Matthias

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim rg1 As Range, rg2 As Range
'hier alle Zelladressen angeben, die überprüft werden sollen
Set rg1 = ActiveSheet.Range("A3,B3")
For Each rg2 In rg1
If rg2.Value = "" Then
Cancel = True
MsgBox "Drucken nicht möglich, da " & rg2.Address(False, False) & " leer ist!", 16, "  _
_
Pflichtfeld nicht gefüllt"
Exit For
End If
Next rg2
Set rg2 = Nothing
Set rg1 = Nothing
End Sub


da hast du es nochmal, falls du das meintest ?!

Anzeige
AW: Hilfe bei Arbeitsauftrag (evtl. VAB)
08.10.2008 09:29:00
frank
ne ich glaube du hast mich falsch verstanden oder ich habe mich blöde ausgedrückt. gggg
ich möchte kein printdate haben.
ich möchte es so haben das ich oben ein datum von hand eingebe und sich alle anderen datumsfelder auf dem blatt nach diesem datum richten und alle anderen daten passend hochzählen.
so das ich auch schon für die nächsten wochen meinem plan fertig machen kann. aber mit druckdatum geht das ja nur ab dem heutigen tage gerechnet. oder habe ich was flsch dabei verstanden?
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige