Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender Navigationstipps
Inhaltsverzeichnis

kopieren in geschlossene datei

kopieren in geschlossene datei
25.09.2003 17:43:41
th.heinrich
hallo beste helfer,

folgender CODE von Hans CD funzzt super in einer MAPPE. der zu kopierende BEREICH ist nicht zusammenhaengend.


Sub auslesen()
Dim rngAct As Range
Dim intRow As Integer, intCol As Integer
'Workbooks.Open FileName:="C:\Lab_FE\VBA\Reisebericht\DB.xls"
'Worksheets("auslesen").Activate
With Worksheets("Tabelle2")
If IsEmpty(.Cells(1, 1)) Then
intRow = 1
Else
intRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1
End If
For Each rngAct In Range("A1,C2,C6,E5,A6").Cells
intCol = intCol + 1
rngAct.Copy .Cells(intRow, intCol)
Next rngAct
End With
Application.CutCopyMode = False
End Sub


wie klappt das aber mit dem kopieren in eine andere DATEI die geschlossen ist, s. auskommentierten pfad.

also: aus der geoeffneten mappe AUSLESEN soll in die geschlossene mappe DB kopiert werden.

danke fuer hilfe

thomas

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: kopieren in geschlossene datei
25.09.2003 17:45:56
PeterW
Hallo Thomas,

in eine geschlosse MAppe kannst du nichts schreiben, auch nicht mit VBA.

Gruß
Peter
oeffnen-kopieren-schliessen
25.09.2003 17:53:34
th.heinrich
sorry Peter,

evtl. falscher betreff.

hast Du Dir den CODE angeschaut ?

gruss thomas
AW: oeffnen-kopieren-schliessen
25.09.2003 18:01:30
PeterW
Hallo Thomas,

klar hab ich mir den Code angeschaut und mich gewundert, dass Hans mit Activate arbeitet. ;-)
Erklär mal, was du von wo nach wo kopieren willst (Arbeitsmappe, Blatt, Zellen), dann kann man den Code vernünftig anpassen.

Gruß
Peter
AW: oeffnen-kopieren-schliessen
25.09.2003 18:12:08
th.heinrich
hi Peter,

das ACTIVATE war natuerlich ein hilfloser versuch von mir.

also step bei step.

das sheet AUSLESEN ist offen, jetzt soll ein nicht zusammenhaengender BEREICH (deswegen CODE von Hans) in die 1. leere A:A des noch geschlossene sheets DB (siehe PFAD) kopiert werden.

gruss thomas

ps. erklaeren kann manchmal so schwer sein ;-))
Anzeige
AW: oeffnen-kopieren-schliessen
25.09.2003 18:32:44
PeterW
Hallo Thomas,

probier das mal so, ist aber nicht getestet.


Sub auslesen()
Dim rngAct As Range
Dim lgRow As Long
Dim wksZiel As Worksheet
Dim wksQuell As Worksheet
Set wksQuell = ThisWorkbook.Sheets("Quelltabelle")
Workbooks.Open Filename:="C:\Lab_FE\VBA\Reisebericht\DB.xls"
Set wksZiel = ActiveWorkbook.Sheets("Zieltabelle")
With wksZiel
If IsEmpty(.Cells(1, 1)) Then
lgRow = 1
Else
lgRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1
End If
For Each rngAct In wksQuell.Range("A1,C2,C6,E5,A6").Cells
lgRow = lgRow + 1
.Cells(lgRow, 1) = rngAct
Next rngAct
End With
ActiveWorkbook.Close savechanges:=True
End Sub

Gruß
Peter
Anzeige
AW: oeffnen-kopieren-schliessen
26.09.2003 15:21:08
th.heinrich
hallo Peter,

sorry, dass ich mich erst jetzt melde (strech im job).

Dein Code funzzt, mit einer kleinen ausnahme. die ausgelesenen ZELLEN stehen untereinander in SPALTE A. sollten aber nebeneinander in ZEILE 2 der ZIELTABELLE stehen.

beim CODE von Hans ist dies so. sicher kannst Du mir noch erklaeren was den unterschied bewirkt.

hier nochmal Dein CODE


Sub auslesen_1()
Dim rngAct As Range
Dim lgRow As Long
Dim wksZiel As Worksheet
Dim wksQuell As Worksheet
Set wksQuell = ThisWorkbook.Sheets("tabelle1") 'Quelltabelle
Workbooks.Open FileName:="C:\Lab_FE\VBA\Reisebericht\DB.xls"
Set wksZiel = ActiveWorkbook.Sheets("tabelle1") 'Zieltabelle
With wksZiel
If IsEmpty(.Cells(1, 1)) Then
lgRow = 1
Else
lgRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1
End If
For Each rngAct In wksQuell.Range("A1,C2,C6,E5,A6").Cells
lgRow = lgRow + 1
.Cells(lgRow, 1) = rngAct
Next rngAct
End With
ActiveWorkbook.Close savechanges:=True
End Sub


gruss thomas
Anzeige
AW: oeffnen-kopieren-schliessen
26.09.2003 18:48:55
PeterW
Hallo Thomas,

wenn du dir den geänderten Code ansiehst müsste es deutlich werden. Im Code ist lgRow (Variable für die Zeile) durch iCol (Variable für die Spalte) ersetzt. Mit Cells(Zeile, Spalte) wird jetzt nicht mehr der Zeilenzähler erhöht sondern der Zähler für die Spalte. Im Gegensatz zur Anordnung untereinander würde ich hier noch eine Sicherheit einbauen, wenn die Gefahr besteht, dass mehr als 256 Werte in die Zieltabelle geschrieben werden.


Sub auslesen()
Dim rngAct As Range
Dim iCol As Integer
Dim wksZiel As Worksheet
Dim wksQuell As Worksheet
Set wksQuell = ThisWorkbook.Sheets("Quelltabelle")
Workbooks.Open Filename:="C:\Lab_FE\VBA\Reisebericht\DB.xls"
Set wksZiel = ActiveWorkbook.Sheets("Zieltabelle")
With wksZiel
If IsEmpty(.Cells(2, 1)) Then
iCol = 0
Else
iCol = .Cells(2, Columns.Count).End(xlToLeft).Column
End If
For Each rngAct In wksQuell.Range("A1,C2,C6,E5,A6").Cells
iCol = iCol + 1
.Cells(2, iCol) = rngAct
Next rngAct
End With
ActiveWorkbook.Close savechanges:=True
End Sub


Gruß
Peter
Anzeige
AW: oeffnen-kopieren-schliessen
27.09.2003 00:15:18
th.heinrich
hi Peter,

vielen dank. der unterschied ist jetzt sogar fuer mich ersichtlich.

werde es am montag auf arbeit gleich einbauen.

schoenes WE

von thomas
AW: oeffnen-kopieren-schliessen
27.09.2003 16:03:59
th.heinrich
hallo Peter,

nun ist es jetzt doch samstag geworden. klappt leider noch nicht ganz.

das auslesen in eine zeile klappt bestens, aber beim AUSLESEN soll der ausgelesen RANGE in der 1. freien ZEILE der SPALTE A stehen.

mit Deinem CODE


Sub auslesen()
Dim rngAct As Range
Dim iCol As Integer
Dim wksZiel As Worksheet
Dim wksQuell As Worksheet
Set wksQuell = ThisWorkbook.Sheets("Quelltabelle")
Workbooks.Open Filename:="C:\Lab_FE\VBA\Reisebericht\DB.xls"
Set wksZiel = ActiveWorkbook.Sheets("Zieltabelle")
With wksZiel
If IsEmpty(.Cells(2, 1)) Then
iCol = 0
Else
iCol = .Cells(2, Columns.Count).End(xlToLeft).Column
End If
For Each rngAct In wksQuell.Range("A1,C2,C6,E5,A6").Cells
iCol = iCol + 1
.Cells(2, iCol) = rngAct
Next rngAct
End With
ActiveWorkbook.Close savechanges:=True
End Sub


wird ALLES nebeneinander geschrieben.

ich habe schon versucht das prob zu loesen. natuerlich gescheitert.


Sub auslesen()
Dim rngAct As Range
Dim irow As Integer
Dim iCol As Integer
Dim wksZiel As Worksheet
Dim wksQuell As Worksheet
Set wksQuell = ThisWorkbook.Sheets("quelle")
Workbooks.Open FileName:="C:\test\mappe1.xls"
Set wksZiel = ActiveWorkbook.Sheets("ziel")
With wksZiel
If IsEmpty(.Cells(2, 1)) Then
iCol = 0
Else
iCol = .Cells(2, Columns.Count).End(xlToLeft).Column
End If
For Each rngAct In wksQuell.Range("A1,C2,C6,E5,A6").Cells
irow = .Cells(2, Row.Count).End(xlDown).Row + 1
'irow = .Cells(2, Row.Count).End(xlDown).Row '= rngAct
Next rngAct
End With
ActiveWorkbook.Close savechanges:=True
End Sub


vielen dank fuer Deine hilfe.

gruss thomas
Anzeige
AW: oeffnen-kopieren-schliessen
27.09.2003 17:54:55
PeterW
Hallo Thomas,

aber jetzt:


Sub auslesen()
Dim rngAct As Range
Dim iCol As Integer
Dim lgrow As Long
Dim wksZiel As Worksheet
Dim wksQuell As Worksheet
Set wksQuell = ThisWorkbook.Sheets("Quelltabelle")
Workbooks.Open Filename:="C:\Lab_FE\VBA\Reisebericht\DB.xls"
Set wksZiel = ActiveWorkbook.Sheets("Zieltabelle")
With wksZiel
lgrow = .Range("A65536").End(xlUp).Row + 1
iCol = 0
For Each rngAct In wksQuell.Range("A1,C2,C6,E5,A6").Cells
iCol = iCol + 1
.Cells(lgrow, iCol) = rngAct
Next rngAct
End With
ActiveWorkbook.Close savechanges:=True
End Sub


Einge genaue Aufgabenbeschreibung ist die halbe Lösung. :-)

Gruß
Peter
Anzeige
Einge genaue Aufgabenbeschreibung ist die halbe Lö
27.09.2003 21:47:21
th.heinrich
hi Peter,

danke scheint jetzt zu funzzen.

sorry fuer die unklare problemstellung.

muss mich dabei an der eigenen nase fassen, weil ich dies auch von den fragestellern fordere.

gruss thomas
nur Sonne, Mond und Sterne scheinen..
27.09.2003 21:57:25
PeterW
Hallo Thomas,

was meinst du mit "scheint zu funzzen". Gehts oder gehts nicht - oder hast du vielleicht noch eine Rahmenbedingung nicht erwähnt?

Immer diese präzisen Aussagen. ;-)

Gruß
Peter
PS: die Zeile iCol = 0 kannste rauswerfen weil überflüssig
AW: nur Sonne, "Mond" ? und Sterne scheinen..;-)
28.09.2003 15:33:15
th.heinrich
hallo Peter,

Dein CODE klappt bestens.

vielen dank thomas.

ps. war gestern beim testen OKTOBERFEST geschaedigt.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen
Forumthread
Beiträge