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

MsgBox Worksheet_Activate...

MsgBox Worksheet_Activate...
25.07.2015 14:31:30
Malte
...bei überschrittenen Daten in Range.
Hallo ihr Lieben!
Ich möchte, dass eine Tabelle bei Aktivierung eine MsgBox ausgibt, falls in bestimmten Zellen das Datum älter ist als 90 Tage.
Folgendes habe ich geschrieben:
Private Sub Worksheet_Activate(ByVal Target As Range)
If Intersect(Range("C11:AB11,C13:AB13,C15:AB15,C17:AB17,C19:AB19,C21:AB21,C23:AB23,C25:AB25, _
_
C27:AB27,C29:AB29"), Target) Is Nothing Then Exit Sub
If Target.Value 

Folgendes ist die Fehlermeldung:
Fehler beim Kompilieren:
Deklaration der Prozedur entspricht nicht der Beschreibung eines Ereignisses oder eine Prozedur mit demselben Namen.
lg
Malte

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: MsgBox Worksheet_Activate...
25.07.2015 14:36:29
Sepp
Hallo Malte,
die Sub Worksheet_Activate() hat keine Parameter!
Private Sub Worksheet_Activate()
  Dim rng As Range
  
  For Each rng In Range("C11:AB11,C13:AB13,C15:AB15,C17:AB17,C19:AB19,C21:AB21,C23:AB23,C25:AB25,C27:AB27,C29:AB29")
    If rng.Value <= (Date - 90) Then
      MsgBox ThisWorkbook.ActiveSheet.Name
    End If
  Next
End Sub


Gruß Sepp

Anzeige
AW: MsgBox Worksheet_Activate...
25.07.2015 16:39:37
Malte
Danke, das hat super funktioniert!
Kurze Folgefrage:
Die Range im oberen Beitrag ist nur ein Auszug, und ich weiß bei dieser Art und Weise die Ranges aufzuschreiben nicht genau, wie ich die Bezüge in der MsgBox deklarieren kann:
Was ich machen wollte, ist folgendes:
Für alle ungeraden Zellen in den Spalten C bis AB soll die MsgBox einen anderen Text ausgeben.
Also die MsgBox für die Range "Alle ungeraden Zellen in Spalte C von C11 bis C91" soll den Inhalt der Zelle C7 wiedergeben, die MsgBox für die selben Zeilen in Spalte D soll den Inhalt der Zelle D7 wiedergeben.
Ihr braucht mir nicht alles zu verraten, ich bräuchte nur Hilfe bei der Formulierung der Ranges. Also wie schreibe ich auf "Alle ungeraden Zellen von C11 bis C91" ohne jede Zelle einzeln zu formulieren?
Vielen Dank für deine Hilfe Sepp,
liebe Grüße
Malte

Anzeige
AW: MsgBox Worksheet_Activate...
25.07.2015 16:51:33
Sepp
Hallo Malte,
willst du im Extremfall wirklich über 1000 MsgBoxes wegklicken?
' **********************************************************************
' Modul: Tabelle2 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Worksheet_Activate()
  Dim lngCol As Long, lngRow As Long
  
  On Error Resume Next
  
  For lngCol = 3 To 28
    For lngRow = 11 To 91 Step 2
      If Cells(lngRow, lngCol).Value <= (Date - 90) Then
        MsgBox Cells(7, lngCol).Text
      End If
    Next
  Next
  
End Sub


Gruß Sepp

Anzeige
AW: MsgBox Worksheet_Activate...
25.07.2015 16:58:51
Malte
Das Problem habe ich vorhin auch schon bemerkt :D
Die Tabelle wird von mir gefüllt werden, sodass nur im Sonderfall Daten vorkommen sollten, die die Bedingung erfüllen. Zum testen benutze ich nur kleinere Ranges oder deaktiviere den Code.
Hätte nicht erwartet, dass der Code so kurz wird!
Ich probiere mal kurz rum und komme bei Fragen wieder zurück!
Vielen Dank für deine Hilfe!
Liebe Grüße Malte

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige