Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Fehlermeldung mit Match(CDbl) | Herbers Excel-Forum


Betrifft: Fehlermeldung mit Match(CDbl) von: CaOs1979
Geschrieben am: 28.10.2008 10:27:44

Hallo zusammen,

bekomme folgende Fehlermeldung beim Öffnen meiner Excel-Datei, seit ich eine Funktion eingebaut habe, die dazu dient, von vier Tabellenblättern in der Mappe auf den ersten zwei Tabellenblättern die Spalte mit dem aktuellen Datum bei öffnen automatisch auszuwählen:

Laufzeitfehler 1004:
Die Match-Eigenschaft des WorksheetFunction-Objektes kann nicht zugeordnet werden.

Was mache ich falsch bzw. weiß jemand Rat?

Hier mein Code:


Private Sub Workbook_Open()

''#Alle Arbeitsblätter zur Benutzung wieder freigeben
'For Each ws In Worksheets
'    ws.Unprotect Password:=("?_?")
'    ws.EnableAutoFilter = True 'ermöglicht Autofilter
'    ws.EnableOutlining = True 'ermöglicht Gruppierung/Gliederung
'Next ws
'
''#Prozedur zum Spalten ausblenden
'For Each ws In Worksheets
'    ws.Columns("GN").EntireColumn.Hidden = True
'    ws.Columns("GP").EntireColumn.Hidden = True
'    ws.Columns("GR").EntireColumn.Hidden = True
'    ws.Columns("GT").EntireColumn.Hidden = True
'    ws.Columns("GV").EntireColumn.Hidden = True
'    ws.Columns("GX").EntireColumn.Hidden = True
'Next ws
'
''#Prozedur für Blattschutz setzen und das Ermöglichen von Gruppierungen und Autofiltern
'For Each ws In Worksheets
'    ws.EnableAutoFilter = True 'ermöglicht Autofilter
'    ws.EnableOutlining = True 'ermöglicht Gruppierung/Gliederung
'    ws.Protect Password:=(?_?"), userinterfaceonly:=True, DrawingObjects:=False, Contents:= _
True, AllowFormattingCells:=True
'Next ws
'
''#Blendet die Zeilen- und Spaltenbeschriftungen aus
'ActiveWindow.DisplayHeadings = False
''#Blendet die Bearbeitungsleiste aus
'Application.DisplayFormulaBar = False

'#aktiviert die Spalte mit dem aktuellen Datum
Dim aktuell As Integer
With Worksheets(IIf(Month(Date) > 6, 2, 1) & ". HJ " & Year(Date))
    aktuell = WorksheetFunction.Match(CDbl(Date), .Rows(2), 0)
    Application.GoTo .Cells(5, aktuell), True
End With

End Sub



Danke für jede, schnelle Hilfe!
Carsten

  

Betrifft: AW: Fehlermeldung mit Match(CDbl) von: Peter Feustel
Geschrieben am: 28.10.2008 10:35:48

Hallo Carsten,

gerade beim Match kommt es darauf an, den NICHT GEFUNDEN Fall abzufangen.

Hast du einmal geprüft, ob das, was du suchst vorhanden ist?

Normalerweise sollte ein On Error GoTo Fehler helfen.

Gruß Peter


  

Betrifft: AW: Fehlermeldung mit Match(CDbl) von: CaOs1979
Geschrieben am: 28.10.2008 10:41:26

Hallo Peter,

erstmal danke für Deinen Hinweis. Allerdings muss ich zugeben, dass ich damit jetzt doch überfordert bin a.G. meiner bsiherigen Erfahrungen.
Wie bzw. wo baue ich diesen "on error goto" ein? als festen codebaustein? Könntest Du mir hier evtl. weiterhelfen?
Viele Dank schon vorab!

Carsten


  

Betrifft: AW: Fehlermeldung mit Match(CDbl) von: Beverly
Geschrieben am: 28.10.2008 11:29:22

Hi Carsten,

versuche es mal so

With Worksheets(IIf(Month(Date) > 6, 2, 1) & ". HJ " & Year(Date))
    On Error Resume Next
    aktuell = WorksheetFunction.Match(CDbl(Date), Rows(2), 0)
    Application.Goto Cells(5, aktuell), True
    On Error GoTo 0
End With




GrußformelBeverly's Excel - Inn


  

Betrifft: AW: Fehlermeldung mit Match(CDbl) von: Peter Feustel
Geschrieben am: 28.10.2008 11:35:15

Hallo Carsten,

als Beispiel nur das Suchen mit Match:

Option Explicit

Public Sub MatchMuster()

Dim aktuell As Integer

  On Error GoTo NichtGefunden
  
  'MsgBox IIf(Month(Date) > 6, 2, 1) & ". HJ " & Year(Date)

  With Worksheets(IIf(Month(Date) > 6, 2, 1) & ". HJ " & Year(Date))
      aktuell = WorksheetFunction.Match(CDbl(Date), .Rows(2), 0)
      Application.Goto .Cells(5, aktuell), True
  End With

  Exit Sub
  
NichtGefunden:

  MsgBox "Die Fehler-Nummer ist:  " & Err.Number & Chr(10) & Chr(10) & _
     "Die Beschreibung sagt:  " & Err.Description, _
     48, "   Hinweis für " & Application.UserName

End Sub



Gruß Peter


  

Betrifft: AW: Fehlermeldung mit Match(CDbl) von: CaOs1979
Geschrieben am: 28.10.2008 13:12:08

Hallo KArin, hallo Peter,

vielen Dank, habe es ausprobiert: jetzt überspringt er und die Mappe öffnet sich.
Aber damit hätte ich ja noch nicht das Problem gelöst - wenngleich schonmal umgangen!

Woran kann es jetzt liegen?
1. Idee: können Kommentare in der Datumszeile Probleme verursachen? ( Test war positiv, es gibt evtl. einen Konflikt bzw. Zusammenhang!)
2. Idee: genügt der "single" für das aktuell? sehe das Datum als Datum ("28.10.2008") aber bei aktuell nichts bzw. immer nur "0" wenn ich in einzelschritten durchlaufe!?

Hat da jemand eine Idee?
Danke schonmal!
Carsten


  

Betrifft: AW: zu Frage 2 von: Beverly
Geschrieben am: 28.10.2008 13:28:24

Hi Carsten,

nimm Double für das Datum


GrußformelBeverly's Excel - Inn


  

Betrifft: AW: zu Frage 2 von: CaOs1979
Geschrieben am: 28.10.2008 13:37:33

Hallo Karin,

vielen Dank! Jetzt aktiviert er mir die richtige Zelle.

Problem:
ich habe das Fenster fixiert (oben, links). Wie schaffe ich es nun, dass er mir praktisch den nicht fixierten Bereich ganz vorne (links) ansetzt?

Danke schonmal vorab!

Gruss Carsten


  

Betrifft: AW: zu Frage 2 von: Beverly
Geschrieben am: 28.10.2008 14:21:30

Hi Carsten,

was meinst du mit "den nicht fixierten Bereich ganz vorne (links) ansetzt"? Im derzeitigen Zustand ist es doch so, dass die gefundene Zelle in die linke obere Ecke, also an den Schnittpunkt zwischen letzter fixierter Spalte (links) und Zeile (oben) schiebt. Also wird doch der fixierte Bereich als Grundlage genommen. Der nicht fixierte Bereich befindet sich rechts/unten.


GrußformelBeverly's Excel - Inn


  

Betrifft: AW: zu Frage 2 von: CaOs1979
Geschrieben am: 28.10.2008 14:30:57

Hallo Karin,

leider nicht immer (bzw. er umgeht den Fehler halt auf die letzte aktive Zelle vor dem Speichern).
Kann auch noch nicht ausmachen, wann es geht und wann nicht.

Folgender Fakt beim einzelablauf des Codes:
in "aktuell" steht der Wert "0" drin - Fehlermeldung!
Wo liegt da das Problem? als ob er nichts findet!?

Gruss Carsten


  

Betrifft: AW: zu Frage 2 von: CaOs1979
Geschrieben am: 28.10.2008 14:54:23

Hallo Karin,

bitte um Entshculdigung: die "0" resultiert ja aus dem "On Error goto ..."!

Allerdings habe ich festgestellt, dass die Prozedur nur mit dem ersten Tabellenblatt ("1. HJ 2008") arbeitet.
Allerdings springt sie nicht auf das zweite Blatt und aktiviert dieses. (habe hierzu mal aus testgründen das Systemdatum verstellt).

Hast Du da eine Idee?
Danke und Gruss
Carsten


  

Betrifft: AW: zu Frage 2 von: Beverly
Geschrieben am: 28.10.2008 15:05:08

Hi Carsten,

in diesen beiden Zeilen fehlt jeweils der Punkt (.) vor Cells und Rows, dann findet es das Datum auch

    aktuell = WorksheetFunction.Match(CDbl(Date), .Rows(2), 0)
    Application.Goto .Cells(5, aktuell), True



Ich hatte bei mir die With Anweisung auskommentiert, weil es das betreffende Tabellenblatt nicht gab und ich deshalb im aktuellen Blatt gesucht habe.


GrußformelBeverly's Excel - Inn


  

Betrifft: AW: zu Frage 2 von: Peter Feustel
Geschrieben am: 28.10.2008 14:55:20

Hallo Carsten

bei mir findet er ein passendes Datum - siehe Anhang.

https://www.herber.de/bbs/user/56341.xls

Gruß Peter


  

Betrifft: AW: zu Frage 2 von: CaOs1979
Geschrieben am: 28.10.2008 14:59:33

Hallo Peter,

vielen dank für die Hilfe - das mit dem Datum passt jetzt auch.

Grund:
Kommentare scheinen zu stören, somit warf er mir "0" raus als Folge des "on error..."

2. Problem:
es gibt keinen Sprung auf das zweite Tabellenblatt ("2. HJ 2009"), wenn ich das Systemdatum auf z.B. Februar 2009 setze!

Zufällig eine Idee?

Danke und Gruss
Carsten


  

Betrifft: AW: zu Frage 2 von: CaOs1979
Geschrieben am: 28.10.2008 15:05:43

Hallo Peter, hallo Karin,

jetzt läuft es! *FREUDE*

Im Zuge der ganzen Umstellung hab ich übersehen, dass ich für das 1.HJ 2009 in der Datumszeile (den einzelnen Zellen) ausversehen das Datum mit 2008 eingetragen habe, was natürlich ganz richtig zu einem Fehler führte.

Danke EUch für Eure Hilfe!

Gruss
Carsten


Beiträge aus den Excel-Beispielen zum Thema "Fehlermeldung mit Match(CDbl)"