Live-Forum - Die aktuellen Beiträge
Datum
Titel
19.04.2024 12:23:24
19.04.2024 11:45:34
Anzeige
Archiv - Navigation
1436to1440
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

Zellen kopieren aus anderer Arbeitsmappe

Zellen kopieren aus anderer Arbeitsmappe
21.07.2015 16:31:33
ronforum
Hallo zusammen,
ich bin gerade dabei zwei Arbeitsmappen miteinander zu verknüpfen, weil ich gerne Werte aus einer in die andere Arbeitsmappe überspielen würde.
Mit einzelnen Werten klappt das soweit problemlos.
'Zugriff auf geschlossene Mappe
Sub Zelle_auslesen()
'** Dimensionierung der Variablen
Dim pfad As String, datei As String, blatt As String, zelle As String
'** Angaben zur auszulesenden Zelle
pfad = "E:\Beispielpfad"
datei = "Blatt.xlsm"
blatt = "1"
bezug = "d6"
'** Eintragen in Zelle
ThisWorkbook.Sheets("Standard").Cells(38, 17) = GetValue(pfad, datei, blatt,  _
bezug)
End Sub
Private Function GetValue(pfad, datei, blatt, zelle)
'** Daten aus geschlossener Arbeitsmappe auslesen
'*** Dimensionierung der Variablen
Dim arg As String
'Sicherstellen, dass das datei vorhanden ist
If Right(pfad, 1)  "\" Then pfad = pfad & "\"
If Dir(pfad & datei) = "" Then
GetValue = "datei Not Found"
Exit Function
End If
'** Das Argument erstellen
arg = "'" & pfad & "[" & datei & "]" & blatt & "'!" & Range( _
zelle).Range("A1").Address(, , xlR1C1)
'** Auslesen über Excel4Macro
GetValue = ExecuteExcel4Macro(arg)
End Function
Ich würde nun aber gerne nicht nur auf ein Tabellenblatt zugreifen sondern gleich auf mehrere. Diese sind fortlaufen nummeriert. Es soll immer die gleiche Zelle angesprochen werden, bloß in verschiedenen Blättern. Gibt es eine Möglichkeit, dass ich eine Schleife mit einer Variablen erstelle?
Also quasi: Blattname: 1
1+k
Sub Zelle_auslesen()
For k = 3 To lngsheets
'** Dimensionierung der Variablen
Dim pfad As String, datei As String, blatt As String, zelle As String
'** Angaben zur auszulesenden Zelle
pfad = "E:\Beispielpfad"
datei = "Blatt.xlsm"
blatt = 1 + k
bezug = "d6"
'** Eintragen in Zelle
ThisWorkbook.Sheets("Standard").Cells(38, 17) = GetValue(pfad, datei, blatt,  _
bezug)
Next k
End Sub
Das klappt aber leider so auch noch nicht so ganz.
Die Ergebnisse sollen dann ab Cells (38/17) nach unten hin ausgegeben werden.
Gibt es hierfür eine Lösung und wie würde diese aussehen?
Vielen Dank schon mal
Ron

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

Betreff
Datum
Anwender
Anzeige
Wo sind die Cracks?
22.07.2015 13:50:56
ronforum
Hi,
kann mir hierbei wirklich niemand helfen?
Grüße
Ron

AW: Wo sind die Cracks?
22.07.2015 14:01:34
Rudi
Hallo,
eher so:
Sub Zelle_auslesen()
'** Dimensionierung der Variablen
Dim pfad As String, datei As String, blatt As String, zelle As String
Dim lngSheets As Long
'** Angaben zur auszulesenden Zelle
pfad = "E:\Beispielpfad"
datei = "Blatt.xlsm"
bezug = "d6"
For k = 3 To lngSheets
blatt = 1 + k
'** Eintragen in Zelle
ThisWorkbook.Sheets("Standard").Cells(38 + k - 3, 17) = _
GetValue(pfad, datei, blatt, bezug)
Next k
End Sub
Woher bekommt lngSheets den Wert?
Gruß
Rudi

Anzeige
AW: Wo sind die Cracks?
22.07.2015 17:38:12
ronforum
Hi Rudi,
danke für deine Hilfe.
Du hast recht ich hab lngSheets noch überhaupt nicht bestimmt.
Schaff es aber trotzdem nicht.
Hab mal zwei Beispielmappen gebaut, wo 99019 auf die Tabellenblätter von 99020 versucht zuzugreifen.
Kriegst du das hin, dass das funktioniert. Wäre wirklich toll.
Viele Grüße und danke
Ron
https://www.herber.de/bbs/user/99019.xlsm
https://www.herber.de/bbs/user/99020.xlsx

AW: Wo sind die Cracks?
23.07.2015 13:13:35
Rudi
Hallo,
für das Beispiel:

Sub Zelle_auslesen()
'** Dimensionierung der Variablen
Dim pfad As String, datei As String, blatt As String, zelle As String
'** Angaben zur auszulesenden Zelle
pfad = "c:\test\"
datei = "99020.xlsx"
bezug = "a1"
For k = 1 To 6
blatt = k
'** Eintragen in Zelle
ThisWorkbook.Sheets("Tabelle1").Cells(k, 1) = _
GetValue(pfad, datei, blatt, bezug)
Next k
End Sub

Gruß
Rudi

Anzeige
AW: Wo sind die Cracks?
24.07.2015 16:17:06
ronforum
Super klappt. Wirklich klasse.
Aber wie mach ich es wenn es eine variable Anzahl an Tabellenblätter sind. Also nicht wie hier sechs Stück die ausgelesen werden sollen sondern immer weiter hinzugefügt werden können. Dafür bräuchte ich dann einen Sheets.count oder?
Wie ich das im Zusammenhang mit dem anderen Workbook mache weis ich aber leider nicht.
Kannst du mir bitte nochmal helfen Rudi.
Danke
Beste Grüße
Ron

AW: Wo sind die Cracks?
24.07.2015 19:50:42
Rudi
Hallo,
lass die Schleife laufen bis ein Fehler auftritt.
Do
K=k+1
wert=getvalue(.....)
If iserror(wert) then exit do
Thisworkbook.sheets(1).Cells(k,1)=wert
Loop
Sorry bin am Tablet
Gruß
Rudi

Anzeige
AW: Wo sind die Cracks?
27.07.2015 16:28:05
ronforum
Hi Rudi,
das mag leider noch nicht so ganz funktionieren.
Wenn ich das so umsetze dann passiert gar nichts.
Hab jetzt diesen Code.
 Sub Zelle_auslesen()
Do
k = k + 1
wert = GetValue("E:\Dokumente\Eigene Dateien", "test2.xlsx", "k+1", "a1")
If IsError(wert) Then Exit Do
ThisWorkbook.Sheets("Tabelle1").Cells(k, 1) = wert
Loop
End Sub
Hab das Blatt auch schon nur mit Variabler laufen lassen aber auch da passiert nix.
Weist du woran das liegen könnte?
Grüße und danke
Ron

sauber deklarierte Variablen...
27.07.2015 20:13:12
Michael
... erleichtern das Leben ungemein, Ron,
denn dann mault Excel wenigstens gleich los...
Wenn Du Deine
Function GetValue(pfad, datei, blatt, zelle)
sauber deklarierst,
Function GetValue(pfad as String, datei as String, blatt as long, zelle as string)
wirst Du sehen, daß pfad und datei zwar Strings sind, blatt jedoch die *Nummer* des auszuwertenden Blattes.
Kurzum: Beim Aufruf von GetValue darfst Du das k bzw. k+1 *nicht* in Anführungszeichen setzen!
Abgesehen davon: wenn Du wirklich *viele* Werte holen möchtest, würde ich die bestehende GetValue etwas erweitern, denn *jedesmal* zu prüfen, ob die Datei da ist, kostet nur Zeit.
Schöne Grüße,
Michael
Anzeige

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige