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

VBA: Zellwerte kopieren -> Fehler 424

VBA: Zellwerte kopieren -> Fehler 424
16.09.2014 08:40:09
Schmitty
Guten Morgen zusammen.
Ich möchte den Inhalt einiger Zellen (ohne Formatierung) einer Excel-Datei in eine andere Excel Datei (die noch geschlossen ist) mittels VBA kopieren. Dazu habe ich mir folgenden Code überlegt:

Workbooks.Open Filename:="Z:\kartei\Adressen.xlsm"
ActiveWorkbook.Worksheets("Schmitz GmbH").Range("D4:H4").Value = Workbooks(Adressen.xlsm). _
Worksheets("Schmitz GmbH").Range("D4:H4").Value
Leider bekomme ich dann immer die Fehlermeldung "Laufzeitfehler 424 - Objekt erforderlich"
Wo könnte der Fehler liegen?
Gruß
Christian

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: Zellwerte kopieren -> Fehler 424
16.09.2014 09:03:35
Luschi
Hallo Christian,
schau mal da fehlt etwas:

Workbooks("Adressen.xlsm").Worksheets("Schmitz GmbH").Range("D4:H4").Value

Gruß von Luschi
aus klein-Paris

Falls die Adresse stimmt, öffnest du ...
16.09.2014 09:10:13
Luc:-?
Adressen.xlsm, Christian,
das dadurch das aktive Wb wird. Dann willst du in dessen ZellBereich die Werte des gleichen Wb übernehmen? Oder heißen die beide gleich → das würde den Fehler erklären, denn es können keine 2 Dateien gleichen Namens gleichzeitig geöffnet wdn. Eigentlich müsstest du auch eine entsprd Warnung bekommen (falls die nicht vom Pgm unterdrückt wird). Die 2.Datei wird dann jedenfalls nicht geöffnet, was allerdings die 2.CodeZeile nicht stören dürfte, falls das vorher aktive Wb dadurch nicht den Fokus verloren hat, was ich aber nur äußerst ungern testen wollte… ;-]
Morrn, Luc :-?

Anzeige
Primär natürlich Luschis AW! Das Andere ...
16.09.2014 09:12:43
Luc:-?
…kommt anschließend… ;-)
Luc :-?

AW: VBA: Zellwerte kopieren -> Fehler 424
16.09.2014 09:54:19
Schmitty
Hallo Luschi, hallo Luc:-?.
Danke für Eure Antworten. Natürlich hattet Ihr beide recht.
@ Luschi: Die Anführungszeichen sind mir einfach nicht aufgefallen... :-(
@ Luc:-?: Daran habe ich nicht gedacht, dass ja bei dem Öffnen einer neuen Excel-Datei diese als "aktiv" gilt ;-)
Jetzt kopiert VBA die Werte, wie ich es möchte.
Code:
    Workbooks.Open Filename:="Z:\kartei\Adressen.xlsm"
Workbooks("Adressen.xlsm").Worksheets("Schmitz GmbH").Range("D4:H4").Value = Workbooks(" _
Recherche.xlsm"). _
Worksheets("Schmitz GmbH").Range("D4:H4").Value
Aber:
Ich habe eine Sache nicht bedacht, bzw. sie ist mir erst jetzt mit dem funktionierenden Code aufgefallen.
In der Zieldatei (Adressen.xlsm) werden mit den kopierten Zellwerten mittels eines weiteren VBA-Codes Autofilter gesteuert. Das funktioniert soweit ich die Daten in die jeweilige Zelle eintrage ohne Probleme. Nutze ich aber den oben genannte VBA-Code, sind die Ziel-zellen zwar ausgefüllt, nur der Autofilter arbeitet nicht.
Wie kann ich dieses Problem denn jetzt lösen?
Gruß
Christian

Anzeige
AW: VBA: Zellwerte kopieren -> Fehler 424
16.09.2014 14:00:34
Daniel
Hi
wie - dh mit welchem Code und Makro - steuerst du denn den Autofilter?
Gruß Daniel

AW: VBA: Zellwerte kopieren -> Fehler 424
16.09.2014 14:22:53
Schmitty
Hallo,
z.B. für die Zelle F4:
  If Target.Address = "$F$4" Then
ActiveSheet.Unprotect Password:=""
If Not IsEmpty(Target) Then
Selection.AutoFilter Field:=5, Criteria1:="*" & Range("F4") & "*"
Else
Selection.AutoFilter Field:=5
End If
ActiveSheet.Protect Password:="", AllowFiltering:=True
End If
Gruß
Christian

AW: VBA: Zellwerte kopieren -> Fehler 424
16.09.2014 14:44:28
Daniel
Hi
die Adresse des Targets ist ja $D$4:$H$4 und damit ungleich $F$4.
dein Event reagiert nur dann, wenn F4 allein die geänderte Zelle ist.
wird F4 zusammen mit mehrern Zellen im verbund geändert, so ist dieser Fall mit dieser Bedingung ausgeschlossen:
If Target.Address = "$F$4" Then
soll der Filter auch dann gesetzt werden, musst du das so abändern:
  If Not Intersect(Target, Range("F4")) is Nothing Then
ActiveSheet.Unprotect Password:=""
If Not IsEmpty(Range("F4")) Then
Selection.AutoFilter Field:=5, Criteria1:="*" & Range("F4") & "*"
Else
Selection.AutoFilter Field:=5
End If
ActiveSheet.Protect Password:="", AllowFiltering:=True
End If
Gruß Daniel

Anzeige
AW: VBA: Zellwerte kopieren -> Fehler 424
16.09.2014 15:51:50
Schmitty
Hallo Daniel,
danke für deinen Code.
Leider erzeugt dein Code schon das nächste Problem. Wenn ich die Autofilter zurücksetzten will, werden alle Autofilter mit einem "*" ausgefüllt. Bei Text-Spalten ist das kein Problem, es wird trotzdem alles angezeigt. Jedoch habe ich auch Ziffern-Spalten und dort funktioniert das "*" nicht und es wird nichts angezeigt.
Folgenden Code nutze ich um alle Autofilter (es sind 24 Stück!) auf dem Arbeitsballt zu leeren:
    Sheets("Schmitz GmbH").ShowAllData
ActiveWorkbook.Worksheets("Schmitz GmbH").AutoFilter.Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Schmitz GmbH").AutoFilter.Sort.SortFields.Add Key _
:=Range("B5:B2195"), SortOn:=xlSortOnValues, Order:=xlAscending, _
DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Schmitz GmbH").AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("B4:X4") = ""
Range("AA4") = ""
Gruß
Christian

Anzeige
AW: VBA: Zellwerte kopieren -> Fehler 424
16.09.2014 16:05:55
Daniel
Hi
um alle Autofilter auf einem Blatt zurück zu setzen, sollte ein
ActiveSheet.ShowAllData

ausreichen.
um eine einzelne Filterspalte zu deaktivieren das hier: (x sei die Nummer der Spalte innerhalb des zu filternden Zellbereichs)
.... .Autofilter Field:=x

dh das Criteria1 wird ganz weggelassen.
der "*" steht ja für "Text in beliebiger Länge" und das schließt Zahlen logischerweise aus.
Gruß Daniel

AW: VBA: Zellwerte kopieren -> Fehler 424
17.09.2014 08:32:59
Schmitty
Hallo Daniel,
ich habe jetzt weiter gebaut. Ich bekomme zwar wieder einen (neuen, unabhängigen) Fehler, jedoch läuft dein Makro soweit durch.
Aber:
Der Autofilter reagiert auf die kopierten Werte immer noch nicht...
Gruß
Christian

Anzeige
AW: VBA: Zellwerte kopieren -> Fehler 424
17.09.2014 08:58:06
Schmitty
Kommando zurück,
hab den "Fehler" gefunden.
Wenn ich das Zeil-Tabellenblatt vor dem Kopieren anzeigen lasse, funktioniert der Autofilter!
So sieht der Code jetzt aus:
    Workbooks.Open Filename:="Z:\kartei\Adressen.xlsm"
Workbooks("Adressen.xlsm").Worksheets("Schmitz GmbH").Select
Workbooks("Adressen.xlsm").Worksheets("Schmitz GmbH").Range("D4:X4").Value = Workbooks(" _
Recherche.xlsm"). _
Worksheets("Schmitz GmbH").Range("D4:X4").Value

Gruß
Christian

318 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige