Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1348to1352
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
Inhaltsverzeichnis

Pflichtfelder über mehrere Arbeitsblätter

Pflichtfelder über mehrere Arbeitsblätter
24.02.2014 08:09:05
ExcelAnfänger
Hallo Ihr,
Ich soll in einer Excel Datei (Excel2010) die aus 6 Arbeitsblätten besteht vor dem Schließen einige Felder überprüfen lassen. Falls eines der Felder nicht ausgefüllt ist, soll es einen Hinweis geben.
Für Tabelle 1 (name des ersten Arbeitsblatts) habe ich das auch geschafft und es funktioniert auch. Wie kann ich das Verändern, sodass alle Tabellen (Tabelle1-6) überprüft werden?
Kann ich die Tabellen mit der Namens Definition alle zusammen ansprechen?
hier mein bisheriger Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim c As Range
For Each c In Worksheets("Tabelle_1").Range("CheckAbfrage") 'Pflichtfelder aus Tabelle 1 -->  _
soll auf alle Tabellen erweitert werden,
If c = "" Then
MsgBox c.Address & " muss noch ausgefüllt werden"
c.Parent.Select
c.Activate
Exit For
End If
Next
End Sub

Vielen Dank schonmal!

20
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Pflichtfelder über mehrere Arbeitsblätter
24.02.2014 08:40:40
EtoPHG
Hallo Namenloser,
Zitat:Kann ich die Tabellen mit der Namens Definition alle zusammen ansprechen? Nein, kannst du nicht. Per Definitionem kann sich ein Name nicht auf Zellen/Bereich mehrerer Blättter beziehen. Du kannst aber in jedem Blatt ein Name "CheckAbfrage" haben, der sich auf die jeweiligen Zellen/Bereiche in dem Blatt bezieht, in dem der Name definiert ist.
Zitat::Wie kann ich das Verändern, sodass alle Tabellen (Tabelle1-6) überprüft werden?
Indem du um den ersten For Each c einen zweiten baust, der sich auf alle Blätter bezieht:
Dim ws As Worksheet
Dim c As Range
For Each ws In ThisWorkbook.Worksheets
For Each c In ws.Range("CheckAbfrage")
If c = "" Then
End If
Next c
Next ws
Gruess Hansueli

Anzeige
AW: Pflichtfelder über mehrere Arbeitsblätter
24.02.2014 08:52:13
ExcelAnfänger
Hallo Hansueli,
vielen Dank erstmal für die schnelle Antwort.
Ich habe jetzt probiert, den Code so umzuändern, leider kommt dann: Laufzeitfehler '1004'
Die Methode 'Range' für das Objekt '_Worksheet' ist fehlgeschlagen
Hast du eine Idee, was ich falsch gemacht habe? Ich selbst hab leider gar keine Ahnung.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim ws As Worksheet
Dim c As Range
For Each ws In ThisWorkbook.Worksheets
For Each c In ws.Range("CheckAbfrage")
If c = "" Then
MsgBox c.Address & " muss noch ausgefüllt werden"
c.Parent.Select
c.Activate
Exit For
End If
Next c
Next ws
End Sub

Anzeige
AW: Pflichtfelder über mehrere Arbeitsblätter
24.02.2014 08:53:50
Hajo_Zi
du kannst kein select auf eine nicht active Tabelle machen.

AW: Pflichtfelder über mehrere Arbeitsblätter
24.02.2014 08:55:37
ExcelAnfänger
Dankeschön,
wie muss ich das dann verändern? Leider kenne ich mich damit nicht aus.

AW: Pflichtfelder über mehrere Arbeitsblätter
24.02.2014 09:23:16
Hajo_Zi
in Deinem ersten Code ging es um eine Tabelle, im letzten über alle
vor Select
ws.select
Gruß Hajo

AW: Pflichtfelder über mehrere Arbeitsblätter
24.02.2014 10:00:43
ExcelAnfänger
Da ich mich gar nicht auskenne weiß ich nicht wo ich ws.select einfügen muss.
Meinst du: c.Parent.ws.Select ?

Anzeige
AW: Pflichtfelder über mehrere Arbeitsblätter
24.02.2014 10:29:50
Hajo_Zi
in deinem Code den ich nicht sehe steht irgendwo Select und in die Zeile davor.

AW: Pflichtfelder über mehrere Arbeitsblätter
24.02.2014 12:29:22
ExcelAnfänger
weiß leider immernochnicht genau, was du meinst. Aber inzwischen funktionierts auch so. ALso trotzdem vielen Dank für deine Mühe!

AW: Pflichtfelder über mehrere Arbeitsblätter
24.02.2014 09:23:43
Uwe
Hallo Namenloser,
worauf bezieht sich "Checkabfrage"? Habe das durch Range("A1") ersetzt und dann funktionierts.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim ws As Worksheet
Dim c As Range
For Each ws In ThisWorkbook.Worksheets
For Each c In ws.Range("A1")
If c = "" Then
MsgBox ws.Name & " " & c.Address(False, False) & " muss noch ausgefüllt werden"
c.Parent.Select
c.Activate
Exit For
End If
Next c
Next ws
End Sub

Gruß Uwe

Anzeige
AW: Pflichtfelder über mehrere Arbeitsblätter
24.02.2014 09:39:52
ExcelAnfänger
Hallo Uwe,
CheckAbfrage bezieht sich auf die Pflichtfelder aus Tabelle1, habe da einen Namen definiert für die Felder, die ausgefüllt sein müssen. Leider bisher nur für Tabelle1. Aber die weiteren Tabellen müssen auf überprüft werden, leider weiß ich nicht wie das am besten geht.
Vielen dank

AW: Pflichtfelder über mehrere Arbeitsblätter
24.02.2014 09:26:36
EtoPHG
Hallo Namenloser,
Der Fehler tritt auf, wenn in einem der Blätter kein Namens-definierter Bereich "CheckAbfrage" existiert. Siehe dazu meine 1. Antwort. Wende dich ggf. an den Ersteller des Blatts, in dem dein Code funktioniert hat und stelle sicher, dass alle anderen die gleichen Namensdefinitionen haben!
Gruess Hansueli

Anzeige
AW: Pflichtfelder über mehrere Arbeitsblätter
24.02.2014 09:38:01
ExcelAnfänger
Bisher habe ich nur die Felder aus Tabelle1 benannt. Habe jetzt versucht, die gleichen Felder aus Tabelle2 auch CheckAbfrage zu nennen, das geht aber nicht. Wenn ich den Feldern aus Tabelle2 einen anderen Namen gebe, kann ich den Name und die Namen von den Tabellen bis Tabelle6 in den Code einbinden`
Vielen Dank für deine Mühen!

AW: Pflichtfelder über mehrere Arbeitsblätter
24.02.2014 09:45:46
EtoPHG
Hallo,
Dann hast du den Namen "CheckAbfrage" als gültig für die ganze Arbeitsmappe definiert, statt nur für das Arbeitsblatt! Namensmanager - Bereich: [Dropdown v]
Vielleicht solltest du dich erstmal gründlich mit den Standard-Funktionalitäten von XL beschäftigen, bevor du mit VBA an diesen rumschrauben willst ;-)
Gruess Hansueli

Anzeige
AW: Pflichtfelder über mehrere Arbeitsblätter
24.02.2014 09:57:37
ExcelAnfänger
Vielen Dank für deine Geduld.
Ich habe jetzt in jeder Tabelle den Namen CheckAbfrage vergeben, jeweils nur gültig für die einzelne Tabelle. Trotzdem kommt noch der gleiche Laufzeitfehler.
Falls du eine Lösung ohne VBA kennst wäre das noch besser, ich hab aber leinder keine Ahnung wie man das sonst machen könnte aber ich muss das machen.
Viele Grüße

AW: Pflichtfelder über mehrere Arbeitsblätter
24.02.2014 10:05:50
EtoPHG
Hallo,
Lade eine anonymisierte Beispielmappe ins Forum. Was heisst "aber ich muss das machen." Wenn das eine Forderung deines Vorgesetzten ist, dann lass dir vorher einen XL-Kurs von ihm sponsern.
Gruess Hansueli

Anzeige
AW: Pflichtfelder über mehrere Arbeitsblätter
24.02.2014 10:18:22
ExcelAnfänger
Habe gerade eine Beispielmappe erstellt und alles funktioniert ohne Probleme.
Werde es jetzt einfach noch eine Weile rumprobieren, am Code kanns also nichtmehr liegen.
Es ist eine Forderung eines Vorgesetzten, allerdings habe ich viel Zeit und soll das im Selbststudium lernen, was ich relativ schwierig finde.
Vielen Dank für deine Hilfe und Geduld!

AW: schon gelöst?
24.02.2014 12:28:28
ExcelAnfänger
ja, dankeschön. funktioniert

AW: Pflichtfelder über mehrere Arbeitsblätter
24.02.2014 10:17:54
hary
Moin
Hier mit Makro, das kannst ja umaendern.
https://www.herber.de/bbs/user/89398.xlsm
gruss hary

Anzeige
AW: Pflichtfelder über mehrere Arbeitsblätter
24.02.2014 12:30:04
ExcelAnfänger
hallo Hary,
vielen Dank, hab es inzwischen geschafft.

315 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige