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

Werte in andere Tabelle kopieren

Werte in andere Tabelle kopieren
23.07.2007 11:26:00
Born
Liebe Excel/VBA-Fangemeinde,
ich weiß es ist nicht besonders originell, das Thema, aber trotzdem kann es einen
ganz schön ärgern. Kopieren in eine andere Datei.
Ich versuche (nur) die Werte aus Datei 1, Tabellle 1, Range("GW3:GW15")und Range("GW25:GW104") in eine andere Datei, Datei 2, Tabelle 1, (jeweils in die nächste freie Spalte ab Zeile 20 bis Zeile 32 und Zeile 42 bis 103) einzufügen.
Also:
Daten in Datei 1 kopieren, Check ob Datei 2 geöffnet, Datei 2 öffnen, Daten in Datei 2 einfügen,
Datei2 speichern und offen lassen, dann wieder zurück zu Datei 1.
Was ich dazu bisher online gefunden habe, war zu kompliziert oder funktionierte bei mir nicht.
Kann mir jemand helfen?
Danke,
Born

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Werte in andere Tabelle kopieren
23.07.2007 12:50:44
haw
Hallo Born,
so z.B..:

Sub DatenEinfügen()
Dim wb As Workbook, ws As Worksheet, ws2 As Worksheet
Dim efs%, Verz$
Application.ScreenUpdating = False
Set ws2 = ThisWorkbook.Worksheets("Tabelle1")
Verz = "C:\Daten\Excel\"
If MappeOffen("Datei2.xls") Then
Workbooks("Datei2.xls").Activate
Set wb = ActiveWorkbook
Else
ChDrive Left(Verz, 1)
Workbooks.Open Filename:=Verz & "Datei2.xls"
Set wb = ActiveWorkbook
End If
Set ws = wb.Worksheets(1)
efs = ws2.Cells(20, Columns.Count).End(xlToLeft).Column
ws.Range("GW3:GW15").Copy ws2.Cells(20, efs)
ws.Range("GW25:GW104").Copy ws2.Cells(42, efs)
wb.Save
ThisWorkbook.Activate
Application.ScreenUpdating = True
End Function



Function MappeOffen(MappeName As String) As Boolean
Dim stName As String
On Error GoTo NichtOffen
stName = Workbooks(MappeName).Name
MappeOffen = True
Exit Function
NichtOffen:
MappeOffen = False
End Function


Datei- und Tabellennamen, sowie Pfad anpassen.
Gruß
Heinz

Anzeige
AW: Werte in andere Tabelle kopieren
23.07.2007 22:54:00
Born
Hallo Heinz,
danke für den Code. Habe alles übertragen und die Verzeichnissse geändert.
Das Ergebnis ist, daß in Datei1, in Spalte HQ (dies ist die letzte Spalte mit Zahlen
in Datei 1) Zellen gelöscht werden. Kann das sein, daß es einen Fehler in dem code
gibt? Zum Beispiel bei "efs"?
In Datei 2 scheint gar nichts zu geschehen.
Keine Fehlermeldung.
Gruß,
Born

AW: Werte in andere Tabelle kopieren
24.07.2007 08:34:04
haw
Hallo Born,
Sorry, du hast natürlich Recht:
efs = ws2.Cells(20, Columns.Count).End(xlToLeft).Column + 1
Gruß
Heinz

AW: Werte in andere Tabelle kopieren
24.07.2007 13:24:18
Born
Hallo Heinz,
und nochwas: Sollte ThisWorkbook in Zeile 5 des Codes nicht die Bezeichnung für "ws" statt für "ws2" sein?
Denn thisworkbook ist doch die Datei1 AUS der in die andere Datei2 (ws2) kopiert wird, oder?
Gruß,
Born

Anzeige
AW: Werte in andere Tabelle kopieren
25.07.2007 07:24:54
haw
Hallo Born,
diesmal hast du nicht Recht.

Sub DatenEinfügen()
Dim wb As Workbook, ws As Worksheet, ws2 As Worksheet
Dim efs%, Verz$
Application.ScreenUpdating = False
'** Diese Datei mit dem Makro:
Set ws2 = ThisWorkbook.Worksheets("Tabelle1")
'** Ordner der einzulesenden Datei:
Verz = "C:\Daten\Excel\"
'** Öffnen oder aktivieren der einzulesenden Datei:
If MappeOffen("Datei2.xls") Then
Workbooks("Datei2.xls").Activate
Set wb = ActiveWorkbook
Else
ChDrive Left(Verz, 1)
Workbooks.Open Filename:=Verz & "Datei2.xls"
Set wb = ActiveWorkbook
End If
'** Tabelle1 der einzulesenden Datei:
Set ws = wb.Worksheets(1)
'** Suchen der ersten freien Zeile dieser Datei, in die kopiert wird:
efs = ws2.Cells(20, Columns.Count).End(xlToLeft).Column + 1
'** Kopieren der beiden Werte aus der Tabelle1 der einzulesenden Datei (ws)
'**    in die Tabelle1 dieser Datei (ws2):
ws.Range("GW3:GW15").Copy ws2.Cells(20, efs)
ws.Range("GW25:GW104").Copy ws2.Cells(42, efs)
'** Speichern der einzulesenden Datei:
wb.Save
'** Speichern dieser Datei:
ThisWorkbook.Save
'** Aktivieren dieser Datei:
ThisWorkbook.Activate
Application.ScreenUpdating = True
End Sub


Gruß
Heinz

Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige