Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1624to1628
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

mehrere Arbeitsblätter ansprechen

mehrere Arbeitsblätter ansprechen
28.05.2018 09:35:45
alex_de_souza
Hallo,
ich verwende folgenden Code, damit beim öffnen des Excl Files die Geburtstage von "heute" via Pop-Up angezeigt werden. Das ist der Code - funktioniert wunderbar:
Private Sub Workbook_Open()
Dim rngZelle As Range
Dim wks As Worksheet
Set wks = ThisWorkbook.Worksheets("Blatt1")
For Each rngZelle In wks.Range("D9:D18")
If Month(rngZelle.Value) = Month(Date) And Day(rngZelle.Value) = Day(Date) Then
MsgBox rngZelle.Offset(, -1).Value & " hat heute Geburtstag!", vbInformation, " _
Geburtstag!"
End If
Next rngZelle
Set wks = Nothing
End Sub

Meine Frage: Ich habe auf Blatt 2, Blatt 3 auch Geburstage eingetragen(auch in den Tabellen D9:D18), die ich in diesen Code mit aufnehmen möchte.
Kann mir da jemand bitte weiterhelfen?

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

Betreff
Datum
Anwender
Anzeige
AW: mehrere Arbeitsblätter ansprechen
28.05.2018 09:47:35
Steven
Wie wäre es mit einem Tabellenblatt in der alle sind?
Beim Worksheet_Activate alle nötigen Ranges auf das eine Tabellenblatt kopieren lassen und mit dem Blatt dann weiterarbeiten.
AW: mehrere Arbeitsblätter ansprechen
28.05.2018 09:54:03
alex_de_souza
Hallo,
vielen Dank für die Antwort.
Die Arbeitsblätter werden von unterschiedlichen Personen genutzt und ständig aktualisiert. Heißt, es werden laufend neue Personen(mit Geburtsdatum) eingefügt bzw. gelöscht. Es wäre echt cool, wenn man genau diese Range in diesen bestimmten Arbeitsblättern ansprechen kann.
Ich habe versucht, an diesem Code rumzubasteln und "Blatt2", "Blatt3" einzufügen. Jedoch funktioniert es einfach nicht. :(
LG
Anzeige
AW: mehrere Arbeitsblätter ansprechen
28.05.2018 09:51:10
ChrisL
Hi
Private Sub Workbook_Open()
Dim rngZelle As Range, arrBlätter() As Variant
Dim wks As Worksheet, i As Integer
arrBlätter = Array("Blatt1", "Blatt2", "Blatt3")
For i = LBound(arrBlätter) To UBound(arrBlätter)
Set wks = ThisWorkbook.Worksheets(arrBlätter(i))
For Each rngZelle In wks.Range("D9:D18")
If Month(rngZelle.Value) = Month(Date) And Day(rngZelle.Value) = Day(Date) Then
MsgBox rngZelle.Offset(, -1).Value & " hat heute Geburtstag!", vbInformation, " _
Geburtstag! """
End If
Next rngZelle
Next i
Set wks = Nothing
End Sub
cu
Chris
Anzeige
AW: mehrere Arbeitsblätter ansprechen
28.05.2018 10:27:44
alex_de_souza
Hallo Chris,
danke für die Hilfe. Folgende Zeile wird bei mir rot angezeigt:
MsgBox rngZelle.Offset(, -1).Value & " hat heute Geburtstag!", vbInformation, " _
Geburtstag! """
bzw. in weiterer Folge kommt ein Fehler. Ich habe ein " gelöscht. Bringt nichts. Wird wahrscheinlich eine Kleinigkeit sein, jedoch finde ich es nicht.
Vielen Dank für die Hilfe
AW: mehrere Arbeitsblätter ansprechen
28.05.2018 10:32:47
ChrisL
Hi
Lass die Zeile einfach wie sie war, ich habe nichts daran geändert.
Hängt mit der Darstellung im Forum zusammen...
MsgBox rngZelle.Offset(, -1).Value & " hat heute Geburtstag!", vbInformation, "Geburtstag!"
cu
Chris
Anzeige
AW: mehrere Arbeitsblätter ansprechen
28.05.2018 10:39:06
alex_de_souza
Hallo Chris,
danke, das hat wunderbar funktioniert. Gibt es hierbei eine Beschränkung wie viele Arbeitsblätter man ansprechen kann?
Ich habe 8 Arbeitsmappen eingetragen. Bis zur 5ten Arbeitsmappe funktioniert es wunderbar. Dann scheint die Fehlermeldung: Laufzeitfehler '13': Typen unverträglich auf.
LG
AW: mehrere Arbeitsblätter ansprechen
28.05.2018 10:54:51
ChrisL
Hi
Nein, eine Beschränkung gibt es nicht resp. erst vielleicht bei 256 Blätter (müsste nachschauen). Es muss ein anderes Problem sein. Typenfehler gibt es z.B. wenn eine Zahl erwartet ist, aber ein Text eingegeben wurde.
Ja nach Ausgangssituation kann man pauschal alle Blätter ansprechen (ohne zu benennen) oder Ausschlüsse definieren.
cu
Chris
Anzeige
AW: mehrere Arbeitsblätter ansprechen
28.05.2018 10:59:24
alex_de_souza
Ah, verstehe. Ich schau mir mal die Formatierungen an.
Heißt das, man könnte definieren, dass D9 bis D18 bei allen Arbeitsblättern angesprochen werden sollen?
Somit müsste ich auch keine Namen der Arbeitsblätter eingeben.
AW: mehrere Arbeitsblätter ansprechen
28.05.2018 11:02:53
ChrisL
Heißt das, man könnte definieren, dass D9 bis D18 bei allen Arbeitsblättern angesprochen werden sollen?
Ja
Der Vorschlag von Werner geht in die Richtung.
Dim rngZelle As Range, wks As Worksheet
For Each wks In ThisWorkbook.Worksheets
For Each rngZelle In wks.Range("D9:D18")
If Month(rngZelle.Value) = Month(Date) And Day(rngZelle.Value) = Day(Date) Then
MsgBox rngZelle.Offset(, -1).Value & _
" hat heute Geburtstag!", vbInformation, "Geburtstag! """
End If
Next rngZelle
Next wks

Anzeige
AW: mehrere Arbeitsblätter ansprechen
28.05.2018 11:43:00
alex_de_souza
Vielen Dank für deine Hilfe Chris. Das hat mich sehr weitergebracht.
LG
Danke....
28.05.2018 10:21:30
Werner
Hallo Chris,
...da bin ich ja wohl nicht so ganz im richtigen Beitrag gewesen, völlig verpeilt.
Gruß Werner

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige