Anzeige
Archiv - Navigation
1292to1296
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
Kopierte Zellen mit VBA
06.01.2013 22:22:32
Golem
Hallo Excel-Fachleute,
ich komme momentan mit einem Problem nicht weiter ( ich stehe total auf dem Schlauch ).
Mit folgenden Code kopiere ich aus einer geschlossenen Datei Spaltenwerte in ein anderes Tabellenblatt:
Private Sub CommandButton1_Click()
'   Werte aus geschlossenen Dateien einlesen
Dim strVerzeichnis1 As String
Dim strVerzeichnis2 As String
Dim strDatei1 As String
Dim strDatei2 As String
Dim strTabellenblatt As String
Dim StrTyp As String
strVerzeichnis1 = "='C:\Dokumente und Einstellungen\Werner\Desktop\"
strVerzeichnis2 = "Zahlungen ET_" & Range("G6").Value
strDatei1 = "\[Zahlungen ET " & Range("G6").Value
strDatei2 = "_Maske mit Basiszinsen]"
strTabellenblatt = "Basiszinsen'!$B$11:$B$500"
StrTyp = "*.*"
'mit welcher Dateiendung soll geöffnet werden.....
StrTyp = Application.GetOpenFilename("Excel Dateien (*.xls; *.xlsx; *.xlsm)," & "*.xls; *. _
xlsx; *.xlsm")
'Wert in Zielzelle "Zahlung Whn 01" schreiben
With ActiveWorkbook.Worksheets("Verzugszins Whn 01").Range("AE22:AE511")
'Adresse der auszulesenden Zelle
.Formula = strVerzeichnis1 & strVerzeichnis2 & strDatei1 & strDatei2 & strTabellenblatt
'In festen Wert umwandeln, um die Verknüpfung aufzuheben
.Value = .Value
End With
End Sub

Datumswerte werden aus der Spalte B11:B500 in die Spalte AE22:AE511 kopiert.
Funktioniert einwandfrei.
Wen ich im Code einen Spaltenbereich angebe,
strTabellenblatt = "Basiszinsen'!$B$11:$C$500"
nach
With ActiveWorkbook.Worksheets("Verzugszins Whn 01").Range("AE22:AG511"),
dann wird in den Zellen der Spalten AE22:AG511 nur #WERT! angezeigt.
Es sollten aber in der Spalte AE Datumswerte und in der Spalte AG Prozentwerte stehen.
Kann mir jemand helfen?
Schöne Grüße
Golem

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kopierte Zellen mit VBA
07.01.2013 07:03:01
schauan
Hallo Golem,
lasse Dein Makro mal schrittweise durchlaufen und kontrolliere die eingetragenen Formeln.
Was steht dort?
  _
Hoffe, geholfen zu haben. Grüße, André aus G in T  (xls 97-2013)

AW: Kopierte Zellen mit VBA
07.01.2013 10:24:28
Golem
Hallo schauen,
ich habe das Makro Zeile für Zeile mehrmals bis "End Sub" überprüft.
Funktioniert immer ohne eine einzige Beanstandung.
Immer das gleiche Verhalten wie beschrieben.
Es sollen die Spalten sein "With ActiveWorkbook.Worksheets("Verzugszins Whn 01").Range("AE22:AF511")"
und nicht "WitActiveWorkbook.Worksheets("Verzugszins Whn 01").Range("AE22:AG511")" .
Ein Fehler von mir in der Beschreibung.
Schöne Grüße
Golem

Anzeige
AW: Kopierte Zellen mit VBA
07.01.2013 10:40:37
schauan
Hallo Golem,
kannst Du bitte mal die beiden Formeln aus AE22 und AF22 posten.
 Hoffe, geholfen zu haben. Grüße, André aus G in T  (xls 97-2013)

AW: Kopierte Zellen mit VBA
07.01.2013 12:42:24
Golem
Hallo schauen,
von dem Tabellenblatt "Basiszinsen" möchte ich die Spalte B12:B500 und C12:C50 kopieren und in das Tabellenblatt
"Verzugszinsen Whn 01" in die Spalten AE22:AE511 und AF22:AF511 einfügen.
In der Spalte B12:B500 stehen Datumswerte, die mit folgender Formel errechnet werden =DATUM(JAHR(B11);MONAT(B11)+1;TAG(B11)) ( z.B. 01.06.2002 ).
In der Spalte C12:C500 stehen Prozentwerte, die händisch eingetragen werden ( z.B. 2,570%).
In der Spalte AE22:AE511 sind die Zellen leer, aber mit "Datum" formatiert.
In der Spalte AF22:AF511 sind die Zellen leer, aber mit "Prozent" formatiert.
Jede Spalte einzeln kann problemlos kopiert werden, das kopieren beider Spalten zusammen ergibt den Fehler.
Schöne Grüße
Golem

Anzeige
AW: Kopierte Zellen mit VBA
07.01.2013 13:06:03
schauan
Hallo Golem,
mit dieser codezeile trägst Du bzw. das Makro während der Laufzeit Formeln ein:
.Formula = strVerzeichnis1 & strVerzeichnis2 & strDatei1 & strDatei2 & strTabellenblatt
Eine Zeile später - den Kommentar nicht mitgerechnet - erst ersetzt Du bzw. das Makro die Formeln durch Werte:
.Value = .Value
Und nun hätte ich gern mal die Formeln gesehen, die dort vom Makro eingetragen wurden, bevor die Werte übernommen werden.
Übrigens, um mal eine Alternative aufzuzeigen - gehe doch die zwei Spalten nacheinander durch.
 Hoffe, geholfen zu haben. Grüße, André aus G in T  (xls 97-2013)

Anzeige
AW: Kopierte Zellen mit VBA
07.01.2013 14:11:35
Golem
Hallo schauen,
ich hatte Dich falsch verstanden.
In der Spalte AE steht in den Zellen: ='C:\Dokumente und Einstellungen\Werner\Desktop\Zahlungen ET_2012\[Zahlungen ET 2012_Maske mit Basiszinsen.xlsm]Basiszinsen'!$B$12:$C$500,
und in der Spalte AF steht in den Zellen:='C:\Dokumente und Einstellungen\Werner\Desktop\Zahlungen ET_2012\[Zahlungen ET 2012_Maske mit Basiszinsen.xlsm]Basiszinsen'!$B$12:$C$500.
Deinen Vorschlag, die Spalten nacheinander abzuarbeiten, habe ich schon versucht. Leider bekomme ich das nicht hin.
Z.B. strTabellenblatt = "Basiszinsen'!$B$12:$B$500 & C12:C500" und .Range("AE22:AE511 & AF22:AF511").
Danach kommt der Fehler "Laufzeitfehler 1004.
Grundsätzlich ist Dein Vorschlag eine Alternative.
Schöne Grüße
Golem

Anzeige
AW: Kopierte Zellen mit VBA
07.01.2013 14:28:47
schauan
Hallo Golem,
eigentlich sollte in jeder Zelle auch nur eine Zelle der Quelldatei abgefragt werden. Wenn in jeder Zelle ein ganzer Bereich geholt werden soll, dann klappt das nicht.
Spätestens durch Prüfung der Formel kann man das als Ursache ermitteln.
Ich hab hier mal drei Beispielmakros, die das verdeutlichen. test1 und 2 zeigen auch noch die unterschiedlichen Auswirkungen bei Verwendung der $. Kannst dazu ja mal nur in C1 was eintragen...:
Sub test1()
Range("A1:B5").Formula = "=$C$1"
End Sub
Sub test2()
Range("A1:B5").Formula = "=C1"
End Sub
Sub test3()
Range("A1:B5").Formula = "=C1:D5"
End Sub
Bezogen auf Deinen oben geposteten code sollte diese Änderung funktionieren:
statt
strTabellenblatt = "Basiszinsen'!$B$11:$B$500"
dann
strTabellenblatt = "Basiszinsen'!B11"
Zum einen nimmst Du nur die erste Zelle des Datenbereichs, zum anderen lässt Du die $ weg, damit beim Eintrag der Formel die Adresse der jeweiligen Zelle vom Datenbereich automatisch angepasst wird.
 Hoffe, geholfen zu haben. Grüße, André aus G in T  (xls 97-2013)

Anzeige
AW: Kopierte Zellen mit VBA
07.01.2013 17:31:17
Golem
Hallo schauen,
mit strTabellenblatt = "Basiszinsen'!B11" funktioniert das Kopieren einwandfrei.
Ohne Deine Hilfe hätte ich das Problem nicht lösen können.
So wie Du alles beschrieben hast, und auch Deine Beispielmakros, habe ich
wieder einiges dazu gelernt.
Für Deine Hilfe und Bemühungen besten Dank!
Schöne Grüße
Golem

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige