Anzeige
Archiv - Navigation
552to556
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
552to556
552to556
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Fehlermeldung Runtime error 438

Fehlermeldung Runtime error 438
25.01.2005 10:44:53
Nadine
Hallo,
ich hab folgendes Problem. Wenn ich meine unten stehende If - Abfrage ausführ bekomme ich folgende Fehlermeldung
"Run-time error '438':
Object doesn´t support this property or method"
Vielleicht kann mir jemand helfen.
Gruß Nadine

Sub Funktion_Daten()
Dim WS2 As Worksheet, WS3 As Worksheet
Dim aktuellesFeld As Range
Dim z As Integer
Dim aktuellName As Range
Dim i As Integer
Dim k As Integer
Set WS2 = Workbooks("Duty_Urlaub_FY2005").Worksheets("KW1-KW9")
Set WS3 = Workbooks("IT-People").Worksheets("Sheet1")
For i = 1 To 51
For k = 1 To 87
If WS2.Cells(i, k) = "IT" Then
Selection.Goto What:=WS2.Cells(2, k)
Set WS2.Cells(2, k) = aktuellesFeld
Selection.Goto What:=WS2.Cells(i, 22)
Set WS2.Cells(i, 22) = aktuellName
For z = 2 To 10
If aktuellesFeld = WS3.Cells(z, 1) Then
aktuellName.Copy Destination:=WS3.Cells(2, 5)
End If
Next
End If
Next
Next
End Sub

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fehlermeldung Runtime error 438
RR
Hallo,
m.E. sind die Set-Anweisungen falsch, aber was soll eigentlich bei diesem Code eigentlich passieren?
Gruß
RR
AW: Fehlermeldung Runtime error 438
RR
Ich hab ein großes Excel-sheet in dem jedes Feld überprüft werden muss. Darauf, ob IT in einem Feld steht. Wenn ja, dann soll er den Namen der Person nehmen (Variable aktuellName) und ihn in ein neues Excel-sheet schreiben.
Um zu wissen in welche Zeile des neuen Sheets der Name muss, muss aus dem alten die Kalenderwoche ausgelesen werden und im neuen Sheet das Feld in dem der Name steht gefunden werden. Dann soll in dem neuen Sheet der Name in die Zeile (aktuellName.Copy Destination:=WS3.Cells(2, 5)
)
geschrieben werden, wo die Kalenderwoche gleich ist wie im 1. Sheet.
Anzeige
Verwendung von Namen
Namen
Hallo Nadine,
wenn du antwortest, verwende bitte DEINEN Namen.
Mit deiner Problembeschreibung komme ich noch nicht ganz klar. Meiner Meinung nach passt der ganze Code nicht zu dem, was du eigentlich machen willst.
Lade doch mal ein Beispiel mit 2 Tabellen (Quelle und Ziel) hoch, damit man einen Anhaltspunkt zum Ändern des Codes hat.
Gruß
RR
AW: Fehlermeldung Runtime error 438
Jan
Hi Nadine,
Was willst Du mit dem Code erreichen? Der Fehler tritt bei
Selection.Goto What:=WS2.Cells(2, k)
auf und zeigt an, das Dein "Goto" in der Form nicht funktioniert.
Willst Du etwas suchen lassen, nimm die FIND-Methode.
Goto-Methode

Markiert einen Bereich oder eine Visual Basic-Prozedur in einer beliebigen Arbeitsmappe und aktiviert diese, falls sie nicht bereits aktiv ist.
Syntax
Ausdruck.Goto(Reference, Scroll)
Jan

Anzeige
AW: Fehlermeldung Runtime error 438
Jan
Hallo Jan,
Danke für deine Antwort.
Ich habe goto verwendet, weil ich eine bestimmte Zelle auswählen muss und die 2. Koordinate ergibt sich aus dem Zähler k oder i. Und ich will diese Zelle, bzw. den Wert der Zelle in die Variablen aktuellesFeld und aktuellName speichern.
AW: Fehlermeldung Runtime error 438
Jan
Hi Nadine,
Dein Code ziemlich undurchsichtig. Ein Beispiel wäre schon hilfreich.
Auf jeden Fall solltest Du auf "Goto" ganz verzichten und die Zuordnung von Werten für Variablen nochmal nachlesen.
Folgender Code sollte eher zum Ziel führen:

Sub Funktion_Daten()
Dim WS2 As Worksheet, WS3 As Worksheet
Dim aktuellesFeld As Range
Dim z As Integer
Dim aktuellName As Range
Dim i As Integer
Dim k As Integer
Set WS2 = Workbooks("Duty_Urlaub_FY2005").Worksheets("KW1-KW9")
Set WS3 = Workbooks("IT-People").Worksheets("Tabelle1")
For i = 1 To 51
For k = 1 To 87
If WS2.Cells(i, k) = "IT" Then
aktuellesFeld = WS2.Cells(2, k)
aktuellName = WS2.Cells(i, 22)
For z = 2 To 10
If aktuellesFeld = WS3.Cells(z, 1) Then
aktuellName.Copy Destination:=WS3.Cells(2, 5)
End If
Next
End If
Next
Next
End Sub

Teste das mal durch oder stell ein konkretes Beispiel ins Forum.
Jan
Anzeige
AW: Fehlermeldung Runtime error 438
Nadine
Hallo Jan,
Danke für den kleinen Denkanstoß mit Set.
Ich weiß, dass es sehr undurchsichtig ist.
Aber es funktioniert jetzt.
Gruß Nadine

220 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige