Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
832to836
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
832to836
832to836
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Objektfehler durch Wechsel in Modul

Objektfehler durch Wechsel in Modul
03.01.2007 16:46:00
Michael
Liebe Excel-Profis!
Ich habe mir aus verschiedenen 'Learning bei Doing'VBA-Brocken ein Makro gebastelt, das folgendes tun soll:
In der Start-Datei steht in P1 das Datum(immer HEUTE). In I1 steht die Formel =KÜRZEN((P1-WOCHENTAG(P1;2)-DATUM(JAHR(P1+4-WOCHENTAG(P1;2));1;-10))/7) und gibt mir die KW aus.
Jetzt soll das Makro die richtige Ziel-Datei(Name + KW) öffnen, darin wie beim SVERWEIS das passende Datum übernehmen und die in der gefundenen Spalte vorhandenen Informationen in bestimmte Felder der Zieldatei eintragen.
Beim Testen des Makros per Button hat alles funktioniert, beim Ändern in Workbook_open() füllt er die Felder nicht und sagt nur noch 'Zu wenig Speicher'.
Nach dem Umstellen in ein Modul und mittels CALL kommt der Laufzeitfehler 438 'Objekt unterstützt Methode nicht' in der Zeile :
suppe = ActiveWorkbook.Sheet("Speisenplan DIN A 4").Cells(3, Spalte).Value
Ich hab jetzt schon alles Mögliche geändert und wahrscheinlich sinnlose Bezeichnungen oder doppelte Aktivierungen eingefügt, aber ich komme nicht drauf, wo der Haken ist. Hier das ganze Makro:

Function IsWorkbookOpen(strWB As String) As Boolean
On Error Resume Next
IsWorkbookOpen = Not Workbooks(strWB) Is Nothing
End Function


Sub Eintrag()
Dim c As Range
Dim name As String
Dim suppe As String
Dim haupt As String
Dim veg As String
Dim menue As String
Dim bei1 As String
Dim bei2 As String
Dim datum As Date
Windows(Start-Datei).Activate
datum = ActiveSheet.Cells(1, 16).Value
name = "Zieldatei " & [i1] & ".xls"
If IsWorkbookOpen(name) Then GoTo offen Else GoTo zu
offen:
Windows(name).Activate
Sheets(Tabelle).Select
GoTo weiter
zu:
Workbooks.Open ("PFAD" & name)
ActiveWorkbook.Sheets(Tabelle).Select
weiter:
For Each c In ActiveWorkbook.Sheets(Tabelle).Range("b2:j2")
If c.Value = datum Then
wert = Left(c.Address, 2)
GoTo sprung
End If
Next c
sprung:
Select Case wert
Case "$B"
Spalte = 2
Case "$D"
Spalte = 4
Case "$F"
Spalte = 6
Case "$H"
Spalte = 8
Case "$J"
Spalte = 10
End Select
suppe = ActiveWorkbook.Sheet("Speisenplan DIN A 4").Cells(3, Spalte).Value
veg = ActiveWorkbook.Sheet("Speisenplan DIN A 4").Cells(4, Spalte).Value
haupt = ActiveWorkbook.Sheet("Speisenplan DIN A 4").Cells(6, Spalte).Value
menue = ActiveWorkbook.Sheet("Speisenplan DIN A 4").Cells(8, Spalte).Value
bei1 = ActiveWorkbook.Sheet("Speisenplan DIN A 4").Cells(11, Spalte).Value
bei2 = ActiveWorkbook.Sheet("Speisenplan DIN A 4").Cells(12, Spalte).Value
ActiveWorkbook.Close
Windows(Start-Datei).Activate
ActiveSheet.Cells(6, 3).Value = suppe
ActiveSheet.Cells(7, 3).Value = veg
ActiveSheet.Cells(8, 3).Value = haupt
ActiveSheet.Cells(9, 3).Value = menue
ActiveSheet.Cells(10, 3).Value = bei1
ActiveSheet.Cells(11, 3).Value = bei2
End Sub

Kann mir jemand helfen?
Gruss Michael

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Objektfehler durch Wechsel in Modul
03.01.2007 17:05:44
Luschi
Hallo Michael,
die Vba-Zeile
suppe = ActiveWorkbook.Sheet("Speisenplan DIN A 4").Cells(3, Spalte).Value
enthält einen syntaktischen Fehler und sollte so geschrieben werden:
suppe = ActiveWorkbook.Sheets("Speisenplan DIN A 4").Cells(3, Spalte).Value
Desgleichen müssen die nächsten 5 Zeilen korrigiert werden.
Gruß von Luschi
aus klein-Paris
AW: Objektfehler durch Wechsel in Modul
03.01.2007 17:47:58
Michael
Autsch, das tut weh. Verdammtes Strg + C...
Vielen Dank, manchmal ist man wie blind...

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige