Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1372to1376
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

Aus Geschlossener Datei daten auslesen

Aus Geschlossener Datei daten auslesen
30.07.2014 17:04:54
Herbert
Hallo zusammen,
ich komme einfach nicht weiter, habe mir folgenden Vbacode kopiert, aber jetzt fehlt mir noch eine Kleinigkeit.Meine geschlossene Datei hat in Zeile 1 ein fortlaufendes Datum für ein ganzes Jahr stehen also 01.01.2014 bis 31.12.2014. Ich möchte, das wenn ich in der aktiven Tabelle ein Datum eingebe in der geschlossenen Datei danach gesucht wird und dann die Spalte von einer bestimmten Range an in die aktive Tabelle J9 kopiert wird.
kann mir da jemand helfen ?
Option Explicit
Public Function GetDataClosedWB(SourcePath As String, _
SourceFile As String, sourceSheet As String, _
SourceRange As String, TargetRange As Range) As Boolean
'Holt einen Bereich aus einer _geschlossenen_ Arbeitsmappe
'Nur in VBA zu verwenden; nicht aus einer Tabellenzelle heraus
'© t.ramel@mvps.org
' wird durch die HoleDaten aufgerufen
Dim strQuelle       As String
Dim Zeilen          As Long
Dim Spalten         As Byte
On Error GoTo InvalidInput
strQuelle = "'" & SourcePath & "[" & SourceFile & "]" & sourceSheet & "'!" & Range( _
SourceRange).Cells(1, 1).Address(0, 0)
Zeilen = Range(SourceRange).Rows.Count
Spalten = Range(SourceRange).Columns.Count
With TargetRange.Cells(1, 1).Resize(Zeilen, Spalten)
.Formula = "=IF(" & strQuelle & "="""",""""," & strQuelle & ")"
.Value = .Value
End With
GetDataClosedWB = True
Exit Function
InvalidInput:
MsgBox "Die Quelldatei oder der Quellbereich ist ungültig!", vbExclamation, "Get data  _
from  _
closed Workbook"
GetDataClosedWB = False
End Function
Public Sub HoleDaten()
' Die Funktion arbeitet mit der obrigen GetDataClosedWB zusammen
Dim Pfad            As String
Dim Dateiname       As String
Dim Blatt           As String
Dim Bereich         As String
Dim Ziel            As Range
Pfad = "F:\"
Dateiname = "AWH.xls" ' aus welcher Datei soll er holen?
Blatt = "AWH"  ' von welcher Tabelle soll er holen?
Bereich = "G15:G50"   ' aus welchem Bereich soll er holen?
Set Ziel = ActiveSheet.Range("J9")  ' in welchen Bereich soll er kopieren? Genauer  _
gesagt:  _
Bei welcher Zelle soll er anfangen, Datein reinzukopieren? Bsp: ActiveCell geht auch
If GetDataClosedWB(Pfad, Dateiname, Blatt, Bereich, Ziel) Then
MsgBox "Daten importiert"
End If
End Sub

Danke im Voraus
Herby

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Aus Geschlossener Datei daten auslesen
30.07.2014 18:40:57
Peter
Hallo Herby,
wenn Du ab einem betimmten Datum aus der geschlossenen Datei lesen willst, brauchst Du doch nur den Tag deines Datums zu nehmen und hast bereits die Spalte, ab der es losgehen soll.
Gruß Peter

AW: Aus Geschlossener Datei daten auslesen
30.07.2014 18:52:03
Herbert
Hi Peter,
so einfach mach ich es dir nicht(grins)
ich möchte in der offenen Tabelle per datapicker ein Datum eingeben und nach diesem Datum soll er in der geschlossenen Datei suchen und dann die Daten ab einer gewissen Zelle in die offene Tabelle kopieren.
Gruß
Herby

Anzeige
AW: Aus Geschlossener Datei daten auslesen
30.07.2014 19:04:56
Daniel
Hi
öffne die Datei doch einfach schreibgeschützt.
der Datenaustausch mit geöffneten Dateien ist einfach schneller und dir steht das volle VBA- und Excelinstrumentarium zur Verfügung.
Gruß Daniel

ich bin fast fertig....
30.07.2014 19:07:01
Oberschlumpf
...aber anscheinend hast du es ziemlich eilig
Hi Herbert
du drängelst ja echt ganz schön.
Eigtl hab ich es schon fast.
Aber nun ess ich erst mal, und schaue mir später Peters Bemühen an, wenn er denn Lust hat, sich Gedanken zu machen.
Ciao
Thorsten

AW: ich bin fast fertig....
30.07.2014 20:08:15
Herbert
Sorry Thorsten,
erst einmal guten hunger,
bin neu hier und wusste nicht ob Du noch einmal antwortest.
Aber was lange dauert wird bestimmt gut(nicht so ernst gemeint).
Gruß
Herby

Anzeige
AW: ich bin fertig....
31.07.2014 01:46:28
Oberschlumpf
Hi Herbert
alles ok, ja, du kannst ja nich wissen, ob von mir noch was kommt, oder nicht.
Trotzdem noch etwas:
Was nützt mir ne Bsp-datei, die KEINE Datenzeilen enthält?
Deine "geschlossene" Bsp-Datei zeigt zwar das angedeutete Layout mit den Tagen 1.1 - 2.2, aber wo sind die Werte in den Zeilen ab Zeile 14?
Damit ich arbeiten kann, hab ich in die erste + letzte Datenzeile die Werte 101-202 eingetragen, damit ich sehe, dass die Werte von der ersten bis zur letzten Zeile übertragen werden.
Also, hier is meine Idee:
https://www.herber.de/bbs/user/91799.zip
Die ZIP-Datei enthält 2 Excel-Dateien: auf.xls + zu.xls
auf.xls = Datei mit Makro
zu.xls = die Datei, die geschlossen bleiben soll
Vor dem Start müssen beide Dateien im gleichen Verzeichnis gespeichert sein.
1. Öffne nun die Datei auf.xls + aktiviere die Makros
2. Trag nun in deine Datumszeile Y5 ein Datum zwischen 01.01.2014 und 02.02.2014 ein
3. nach Enter wird zuerst mit Hilfe der Funktion fncTageImJahr ermittelt, um welchen Tag im Jahr es sich handelt
Bei z Bsp dem 02.02.2014 handelt es sich um den 33. Tag im Jahr
4. Da in der geschl. Datei die Datumswerte nicht in Spalte 1 (A) sondern in Spalte 6 (F) beginnen, weißt du also schon vor Ausführung des Makros, dass sich der 02.02.2014 in Spalte 38 befindet...33 + 5 = 38
5. Im nächsten Schritt wird also der gefundene Tag im Jahr 33 + 5 = 38 an die Sub TestGetValue übergeben.
6. Nun werden aus der geschlossenen Datei alle Werte von Zeile 14 - 45 in der 38. Spalte ausgelesen und in die offene Datei in Spalte J in Zeile 9 - 40 übertragen
Hilfts?
Ciao
Thorsten

Anzeige
AW: ich bin fertig....
31.07.2014 05:02:43
Herbert
Supi funzt prima,
Vielen Dank
Herby

AW: ich bin fertig....
31.07.2014 20:21:27
Herbert
Hi Thorsten,
erstmal Danke für den Code funzt richtig gut.
noch eine kleinigkeit fehlt mein Fehler.
Dein Code geht nur auf der Tabelle (Di), ich habe aber für eine ganze Woche Tabellenblätter angelegt.
Mo - Di- Mi usw.bis So wie schaffe ich es, das der Code auf jedem Blatt funktioniert ?
Gruß
Herby

AW: ich bin fertig....
31.07.2014 20:47:28
Oberschlumpf
Hi Herbert
ich hab die Tabelle "Di" als Kopie in die Datei eingefügt und sie in "Mo" umbenannt.
hier die Datei (es ist die neue Datei "auf.xls")
https://www.herber.de/bbs/user/91819.xls
Wiederhol das noch 5x für die übrigen Tage.
Dann musst du den Code in den 5 neuen Tabellen anpassen.
Ich hab den Codezeilen Kommentare hinzugefügt, damit du weißt, wo du was ändern musst.
Hilfts?
(für "Mo" + "Di" klappt es jedenfalls)
Ciao
Thorsten

Anzeige
AW: Aus Geschlossener Datei daten auslesen
30.07.2014 22:15:07
Peter
Hallo Herby,
ich hatte mir das so vorgestellt und dabei angenommen, die Zeilen gehen von 15 - 35
Public Sub HoleDaten()
' Die Funktion arbeitet mit der obrigen GetDataClosedWB zusammen
Dim Pfad            As String
Dim Dateiname       As String
Dim Blatt           As String
Dim Bereich         As String
Dim Ziel            As Range
Dim iSpalte         As Integer
Dim sSpalte         As String
Dim dDatum          As Date    ' per DatePicker geholt - z. B. heute
dDatum = Date ' das per DatePicker geholte Datum - z. B. heute
Pfad = "F:\"
Dateiname = "AWH.xls" ' aus welcher Datei soll er holen?
Blatt = "AWH"  ' von welcher Tabelle soll er holen?
'         die Spalte aus dem Datum ableiten + 5 für die Spalten A-E
iSpalte = dDatum - DateSerial(Year(Date), 1, 1) + 1 + 5
'         die nummerische Spalte in den Spaltenbuchstaben umwandeln
sSpalte = Replace(Cells(1, iSpalte).Address(0, 0), 1, "")
Bereich = sSpalte & "15:" & sSpalte & 35 ' aus welchem Bereich soll er holen?
MsgBox Bereich
Set Ziel = ActiveSheet.Range("J9")  ' in welchen Bereich soll er kopieren? Genauer _
gesagt: _
Bei welcher Zelle soll er anfangen, Datein reinzukopieren? Bsp: ActiveCell geht auch
If GetDataClosedWB(Pfad, Dateiname, Blatt, Bereich, Ziel) Then
MsgBox "Daten importiert"
End If
End Sub
Gruß Peter

Anzeige
AW: Aus Geschlossener Datei daten auslesen
31.07.2014 05:06:50
Herbert
Hi Peter,
vielen Dank werde es heute ausprobieren und melde mich
wenn es funzt.
Vielen Dank
Herby

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige