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

VBA:Zellen (Werte) kopieren ohne Datei zu öffnen

VBA:Zellen (Werte) kopieren ohne Datei zu öffnen
16.12.2005 01:43:32
Atti
Hallo Excelfreunde.
Ich habe ein Problem bei dem ihr mir vielleicht helfen könnt.
Ich möchte gerne Daten aus einer anderen Excel per Makro aus einer anderen Excel-Tabelle kopieren. Das Problem liegt jetzt aber darin, dass ich die andere Excel-file nicht öffnen möchte. Ich habe es bereits über Query versucht, aber irgendwie will es nicht klappen (wahrscheinlich weil die Quelldatei von anderen Computern geändert wird).
Danke für eure Hilfe

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA:Zellen (Werte) kopieren ohne Datei zu öffnen
16.12.2005 06:37:22
WernerB.
Hallo Atti,
vielleicht kannst Du ja damit etwas anfangen:
- In diesem Beispiel bleibt die Quell-Mappe geschlossen.
- In diesem Beispiel liegen Quell- und Zielmappe im gleichen Verzeichnis.

Sub AuslesenGeschlDatei()
Dim rng As Range, _
sFile As String, sPath As String, _
oldStatusBar As Boolean
Application.ScreenUpdating = False
oldStatusBar = Application.DisplayStatusBar
Application.DisplayStatusBar = True
sFile = "quelle.xls"
sPath = ThisWorkbook.path & "\"
Application.StatusBar = "Daten werden importiert. Bitte warten..."
With Sheets(1)
.Range("A1:E100").Formula = "='" & sPath & "[" & sFile & _
"]Tabelle1'!A1:E100"
Set rng = .Range("A1:E100")
End With
rng.Cells(1).Copy rng
rng.Value = rng.Value
Application.ScreenUpdating = True
Application.StatusBar = False
Application.DisplayStatusBar = oldStatusBar
End Sub

Viel Erfolg wünscht
WernerB.
P.S.: Dieses Forum lebt auch von den Rückmeldungen der Fragesteller an die Antworter !
Anzeige
AW: VBA:Zellen (Werte) kopieren ohne Datei zu öffn
16.12.2005 09:16:05
Atti
Hallo Werner.
Danke für die schnelle Antwort. Ich werde es jetzt mal ausprobieren und mich später mal wieder melden.
Grüße
Atti
AW: VBA:Zellen (Werte) kopieren ohne Datei zu öffn
16.12.2005 09:51:38
Atti
Danke. Ich glaub, dass ich den code sehr gut gebrauchen kann.
Ich müsste da wohl aber noch ein bisschen was ändern. Könntest du mir vielleicht ein paar Kommentare dazuschreiben?
Ich möchte versuchen es so zu erweitern, dass es dynamisch die Werte kopiert. Also nicht A1:E100 sondern alles was in der Tabelle drin ist und nicht mehr.
Wenn das kopieren aber allgemein zu lange dauern sollte, weil die Tabelle zu groß ist möchte ich versuchen nur eine bestimmte Anzahl von Reihen kopieren zu lassen. Dann könnte ich die Tabelle Abschnittsweise auktualisieren lassen.
Anzeige
AW: VBA:Zellen (Werte) kopieren ohne Datei zu öffn
16.12.2005 12:18:14
WernerB.
Hallo Atti,
da kann ich Dir leider nicht weiter helfen.
Meines Wissens kann man den beschriebenen Bereich eines Tabellenblattes in einer geschlossenen Datei nicht ermitteln; dazu müsste sie schon geöffnet werden - was Du ja nicht möchtest.
Gruß
WernerB.
AW: VBA:Zellen (Werte) kopieren ohne Datei zu öffnen
16.12.2005 08:12:21
egon
Hallo!
Tschuldigung dass ich mich da dran hänge:
Habe den Code für mich nutzen können.
Wie könnte man da noch die Passwortabfrage reinbringen damit ohne
umständliche Eingabe des Passwortes die Daten geholt werden können.
Schönen Gruß
Egon
AW: VBA:Zellen (Werte) kopieren ohne Datei zu öffnen
16.12.2005 12:22:41
WernerB.
Hallo Egon,
da kann ich Dir leider auch nicht weiter helfen.
Wenn die Datei einen Leseschutz hat, muss sie möglicherweise erst geöffnet werden.
Da ich dies aber nicht konkret weiss, stelle ich Deine Frage auf "offen".
Gruß
WernerB.
Anzeige
AW: VBA:Zellen (Werte) kopieren ohne Datei zu öffn
19.12.2005 07:15:49
Atti
Hallo.
Da bin ich wieder. Ich habs mittlerweile eingesehen, dass es nicht möglich ist die Zellen mit Inhalt in eine andere xls-Datei zu speichern, ohne die quelldatei zu öffnen.
Also hab ich mich jetzt daran gesetzt und versuche gerade mit dem öffnen der File zu kopieren, aber ich stoß da auf ein Problem.
Ich muss erst mal alles löschen, Quelldatei öffnen, die Zellen mit Inhalt kopieren, in die Zieldatei die "Werte" einfügen, und erst dann kann ich die Quelldatei schließen.
Gibt es da einen Befehl, der die Werte aus der Quelldatei direkt in die Zieldatei kopiert, so dass ich dass Fenster danach sofort schließen kann?
(Vielleicht zur Vereinfachung: Quell und Zieldatei sind im selben Verzeichnis)
So sieht es bisher aus:

Sub copy()
Dim lngActiveRowB As Long
lngActiveRowB = ActiveCell.Row
Application.StatusBar = lngLastRowB
Cells.Select
Selection.ClearContents
Workbooks.Open Filename:= _
"...\Quelle.XLS" _
, ReadOnly:=True, Notify:=False
Windows("Quelle.XLS").Activate
Range("A2").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.copy
Windows("Ziel.xls").Activate
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows("Quelle.XLS").Activate
Application.CutCopyMode = False
ActiveWindow.Close (0)
Windows("Ziel.xls").Activate
Application.CutCopyMode = False
'select row
ActiveSheet.Cells(lngActiveRowB, 1).EntireRow.Select
End Sub

Anzeige
AW: VBA:Zellen (Werte) kopieren ohne Datei zu öffn
21.12.2005 03:57:48
Reinhard
Hi Atti,
Öffne die Quelldatei einmalig und dann im Editor, Doppelklick auf DieseArbetsmappe, folgendewn 3Zeiler reunkopieren ubnd Quelldatei schliessen:

Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Worksheets("Tabelle2").Range("a1") = Worksheets("Tabelle1").Range("A65536").End(xlUp).Row
End Sub

Nachfolgenden Code dann in ein Modul deiner Zieldatei. Ich ölasse die Frage noch offen.
Gruß
Reinhard
ps:Das Forum lebt auch von Rückmeldungen.
Option Explicit
Sub AuslesenGeschlDatei()
Dim rng As Range, sFile As String, sPath As String, oldStatusBar As Boolean
Dim zei As Long
Application.ScreenUpdating = False
oldStatusBar = Application.DisplayStatusBar
Application.DisplayStatusBar = True
sFile = "quelle.xls"
sPath = ThisWorkbook.Path & "\"
Application.StatusBar = "Daten werden importiert. Bitte warten..."
With Sheets(1)
.Range("A1").Formula = "='" & sPath & "[" & sFile & "]Tabelle2'!A1"
zei = Range("A1").Value
.Range(Cells(1, 5), Cells(zei, 5)).Formula = "='" & sPath & "[" & sFile & "]Tabelle1'!A1:E" & zei
Set rng = .Range("A1:E" & zei)
End With
rng.Cells(1).Copy rng
rng.Value = rng.Value
Application.ScreenUpdating = True
Application.StatusBar = False
Application.DisplayStatusBar = oldStatusBar
End Sub

Anzeige
AW: VBA:Zellen (Werte) kopieren ohne Datei zu öffn
21.12.2005 04:36:25
Atti
Hallo Reinhard.
Danke für den code, aber ich bekomm eine Fehlermeldung bei
zei = Range("A1").Value
Vielleicht deswegen, weil da keine Zahl drin steht?
AW: VBA:Zellen (Werte) kopieren ohne Datei zu öffn
21.12.2005 04:49:26
Reinhard
Hi Atti,
probier mal
zei = .Range("A1")
Wenn weiter Fehler, was steht denn in A1 von Tabelle2 von der Quelldatei und was in Zelle A1 wenn die Codezeile kommt?
Tipp, Maus beliebig in den Code stellen, dann F8...
Jetzt kannst du mit der Maus über zei fahren und siehst ihren Wert
Gruß
Reinhard
ps:Das Forum lebt auch von Rückmeldungen.
AW: VBA:Zellen (Werte) kopieren ohne Datei zu öffn
21.12.2005 05:53:27
Atti
Hallo
Ich habe die Zeile geändert und das Programm schrittweise durchlaufen.
In A1 der Quelldatei steht "JN/CTD".
Das wird dann auch noch in die Zieldatei übernommen.
zei=0 wenn der Befehl kommt.
Oder soll ich doch was anderes nachschauen?
Anzeige
AW: VBA:Zellen (Werte) kopieren ohne Datei zu öffn
21.12.2005 06:02:46
Reinhard
Hi Atti,
ich meine A1 von Tabelle2 der Quelldatei, da steht keine Zahl? Aber in dem 3 Zeiler Code, wird Excel angewiesen die zeilenanzahl der Spalte A des ersten Blattes in A1 von tabelle 2 zu schreiben.
Gruß
Reinhard
ps:Das Forum lebt auch von Rückmeldungen.
AW: VBA:Zellen (Werte) kopieren ohne Datei zu öffn
21.12.2005 06:17:56
Atti
Oh es tut mir leid.
Ich hab den Quellcode in die Zieldatei geschrieben.
Der 3zeiler ist jetzt drin.
Ist es richtig, dass dort einmal Tebelle2 und einmal Tabell1 steht?
AW: VBA:Zellen (Werte) kopieren ohne Datei zu öffn
21.12.2005 06:22:25
Reinhard
Hi Atti,
ja das ist richtig, ist ja der Sinn der Zeile.
Aber der 3Zeiler soll in den Code von "DieseArbeistmappe" der Quelldatei nicht der Zieldatei.
In einem Modul der Zieldatei steht der lange Code
Gruß
Reinhard
ps:Das Forum lebt auch von Rückmeldungen.
Anzeige
AW: VBA:Zellen (Werte) kopieren ohne Datei zu öffn
21.12.2005 06:22:06
Atti
Oh, hab eben festgestellt, dass ich speichern musste.
In A1 der Quelldatei (Ich hab da nur eine Tabelle) steht jetzt eine Zahl. Die Anzahl der Reihen, die was enthalten
AW: VBA:Zellen (Werte) kopieren ohne Datei zu öffn
21.12.2005 06:50:54
Atti
Hallo Reinhard.
Ich habe jetzt 2 neue Dateien auf dem Desktop erstellt und mit diesn getestet.
Dann ging es komischerwese reibungslos.
Die Daten wurden alle kopiert.
Nur irgendwie kann ich das nicht auf die originaldateien übertragen.
Ich schau mal und dann melde ich mich noch mal.
Gruß
Atti
p.s.: Bisher schon mal vielen vielen Dank
AW: VBA:Zellen (Werte) kopieren ohne Datei zu öffn
22.12.2005 04:17:56
Atti
Hallo. Ich habe nicht verstanden, wieso ich bei deinem Programm ständig Probleme mit den Formatierungen hatte. Ich habe bedingte Formatierungen mit drin. Vielleicht war dies der Grund, wieso das Kopieren nicht ganz geklappt hat.
Deswegen habe ich versucht dein Programm umzustricken und es funtioniert jetzt, glaube ich. Hier das Programm, und vielen Dank für deine Hilfe!!!
Beschäftige mich jetzt mittlerweile seit 2Monaten damit, aber immer nur stückchenweise und bin noch hinzukommend in Singapur ...
Alles etwas stressig. Wenn ich die Dateien mit den bedingten Formatierung und einer Beschreibung des Programms Posten soll, sag bescheid, denn die Mühe die du gegeben hast, kann ich ja auch zurückgeben.
Gruß
Atti
----------------------------------------------------------------------------------------------------------
Option Explicit

Sub AuslesenGeschlDatei()
Dim rng As Range, sFile As String, sPath As String, oldStatusBar As Boolean
Dim zei As Long
Application.ScreenUpdating = False
oldStatusBar = Application.DisplayStatusBar
Application.DisplayStatusBar = True
sFile = "Quelle.xls"
sPath = ThisWorkbook.Path & "\"
Application.StatusBar = "Daten werden importiert. Bitte warten..."
With Sheets(1)
.Range("E1").Formula = "='" & sPath & "[" & sFile & "]Tabelle1'!E1" 'zei=A1
zei = Range("E1").Value
'Kopieren der Datein ("A1:A" &zei) SpalteA!
.Range(Cells(2, 1), Cells(zei, 1)).Formula = "='" & sPath & "[" & sFile & "]Tabelle1'!A1:D" & zei
'Kopieren der SpalteB!
.Range(Cells(2, 2), Cells(zei, 2)).Formula = "='" & sPath & "[" & sFile & "]Tabelle1'!A1:D" & zei
'Kopieren der SpalteC!
.Range(Cells(2, 3), Cells(zei, 3)).Formula = "='" & sPath & "[" & sFile & "]Tabelle1'!A1:D" & zei
'Kopieren der SpalteD!
.Range(Cells(2, 4), Cells(zei, 4)).Formula = "='" & sPath & "[" & sFile & "]Tabelle1'!A1:D" & zei
End With
Application.ScreenUpdating = True
Application.StatusBar = False
Application.DisplayStatusBar = oldStatusBar
End Sub

----------------------------------------------------------------------------------------------------------
Anzeige

150 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige