Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Fehler beim Werte kopieren
#1
Hallo,

ich möchte eigentlich eine simple Sache umsetzen, bekomme aber immer einen Fehler den ich trotz googeln und unterschiedlicher von mir ausprobierter Varianten nicht verstehe:

Letztendlich geht es um einen Code, der eine andere Datei öffnet, per Find-Methode ein Datum in der ersten Spalte findet, die Reihe des Suchergebnisses ermittelt und dann in dieser Reihe eine gewisse Range, also die Daten mehrerer Zellen kopiert, um diese Werte dann in die ursprüngliche Datei, aus der das Makro gestartet wurde, einzufügen.


Dim WbRet As Workbook
Dim WbaWB As Workbook
Dim c As Range
Dim ClearRow As Long
Dim TDate As Date
Dim sh As Worksheet

strFilename = "C:\Temp"

Set WbaWB = ThisWorkbook
Set sh = ActiveSheet

TDate = WbaWB.ActiveSheet.Range("E1").Value

Set WbaWB = ThisWorkbook

Set WbRet = Workbooks.Open(Filename:=strFilename)

WbRet.Sheets("DB_Abzugszeiten").Activate

    Set c = WbRet.Sheets("Tabelle2").Range("A5:A2000").Find(What:=TDate, LookIn:=xlValues, lookat:=xlPart)
   
      WbRet.Sheets("Tabelle2").Range(Cells(c.Row, 148), Cells(c.Row, 158)).Copy WbaWB.sh.Cells(1, 29)




Das hab ich eigentlich schon viele Male gemacht, aber diesmal spuckt er mir immer den Laufzeitfehler 438 "Objekt unterstützt diese Eigenschaft oder Methode nicht" aus.

Es funktioniert alles bis zu der hier eingetragenen letzten Codezeile. Finde meinen Fehler einfach nicht.

Danke im Voraus
Antworten Top
#2
Hallo,

ohne deine Datei zu kennen, ist es schwierig auf Fehlersuche zu gehen. Grundsätzlich kann man sagen, dass Excel etwas zickig ist, wenn es um die Datumsuche per Find-Methode geht. Da arbeite ich lieben mit der Funktion Match.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#3
Hallo, 19 

hat "c" überhaupt einen Wert, sprich - wurde etwas gefunden?

In der Regel prüft man das mit (direkt nach dem Set...): 21 

Code:
If Not c Is Nothing Then

Mehr kann man im Moment nicht sagen. Dodgy
________
Servus
Case
Antworten Top
#4
Hallo,

ja also die Find-Methode funktioniert. Das war auch mein erster Gedanke. c.row ergibt dann  auch den richtigen Wert. ich habe auch mal den zweiten Teil der "Problemzeile" weggelassen und den Code nur bis .copy laufen lassen. Da bekomme ich auch keinen Fehler. Er kopiert den richtigen Bereich. Nur wenn ich das auf welche Weise auch immer (:=Destination, neue Zeile Pastespecial...) in die andere Datei einfügen will kommt die Fehlermeldung. Genau das check ich aber nicht. 

um die Dateien hochzuladen, müsste ich die betreffenden Dateien so krass verschlanken, dass ich glaube dass das nicht viel Sinn macht. Das sind leider sensible Daten und ziemlich große Dateien. 

Ich hatte gehofft dass irgendjemand einen "dummen" Fehler in meinem Code so ablesen kann.

Gruß
Antworten Top
#5
Hallo, 19 

schreibe es mal so: 21 

Code:
...Copy WbaWB.Worksheets(sh.Name).Cells(1, 29)

Das hier ist aber auch ein "Wackelkandidat": Dodgy

Code:
Set sh = ActiveSheet
________
Servus
Case
Antworten Top
#6
Hi

Wenn du die Range mit Cells zusammenbaust und sich das ganze nicht auf das aktive Blatt bezieht musst du richtig referenzieren.
Tab2 ist aktiv -> dann so.
Worksheets("Tabelle1").Range(Worksheets("Tabelle1").Cells(2, 2), Worksheets("Tabelle1").Cells(2, 4)).Copy

Gruß Elex
Antworten Top
#7
Hallo Case,

dein Tipp hat mich auf den richtigen Weg gebracht. Tatsächlich konnte er sich das Blatt nicht merken. Wenn ich am Anfang aber den Blattname auslese und ihn als string in eine Variable speichere und dann später über sheets(variable) darauf zurückgreife, dann funktioniert alles. Hätte ich niemals gedacht.

@Elex, die Nummer hat mich nach dem Lösen des ersten Problems eingeholt. Denk da immer nicht dran, dass man vor Cells jedes mal noch das Sheet benennen muss.

Danke euch. Problem ist gelöst Smile
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste