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

Daten auslesen

Daten auslesen
09.08.2006 13:53:45
Matthias
Hallo ..
..ich habe mal wieder ein Problem, bei dem ich nicht weiterkomme und ich hoffe es kann mir dabei jemand helfen.
https://www.herber.de/bbs/user/35674.xls
In der hochgeladenen Datei befinden sich 2 Tabellen:
Tabelle Verlauf
Tabelle Tabelle1 [diese ist normalerweise in einer anderen xls-Datei]
Nun möchte ich die Tabelle1 in Verlauf einlesen.
Folgende Werte sollen eingelesen werden:
Spalten A sollen miteinander verglichen werden, wenn die Inhalte gleich sind, dann in diese Zweile schreiben.
Spalte B der Tabelle1 soll mit Spaalte H2 bis S2 verglichen werden, wenn gleich den Wert aus Spalte C von Tabelle1 in Verlauf schreiben und zwar da, wo sich die beiden Vergleiche treffen (siehe Markierung in Datei)
Problem ist, dass die Spalten H2-S2 unterschiedlich heißen, da jeden Monat die Spalten um eins nach links rutschen (I2 bis S2 kopieren nach H2) und rechts mit dem Folgemonat aufgefüllt wird. Dies ist kein Problem, nur wie bekomme ich die Werte in die entsprechende Zelle geschrieben?
Problem ist, dass die Nummern in Tabelle1 nicht immer die gleiche Zeilenanzahl haben sondern variieren. Kommt einmal ein Wert (Bsp. 2005 12 für Nummer 234624) nicht in Tabelle1 vor so soll in der entsprechenden Zelle in Verlauf 0 geschrieben werden.
Ich würde mich echt freuen, wenn mir dabei jemand helfen könnte. Ich kann mir vorstellen wie das funktionieren könnte, aber mir fehlen da einfach die Kenntnisse für diesen Syntax.
Wenn ich das Problem nicht genau genug beschrieben habe bitte ich um Rückmeldung.
Gruß
Matthias

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

Betreff
Datum
Anwender
Anzeige
AW: Daten auslesen
09.08.2006 22:48:14
daniel
Hallo,
schau mal, ob das deine Wünsche erfüllt.
Du mußt aber darauf achten, daß die Datumswerte in beiden Tabellen übereistimmen, sonst gehts nicht.
Ist in der Datentabelle in Spalte A eine Nummer vorhanden, die es im Verlauf nicht gibt, wird diese automatisch angefügt.
https://www.herber.de/bbs/user/35694.xls
Gruß, Daniel
AW: Daten auslesen
10.08.2006 08:18:02
Matthias
Hallo Daniel,
erstmal vielen Dank, das ist genau das was ich gesucht habe.
Allerdings ein Problem ist da noch da:
Die Daten in Tabelle 1 stehen nicht wie im Beispiel in der selben Datei sondern in einer anderen xls-Datei. Dort heißt die Tabelle aber auch Tabelle1.
Wäre es möglich da noch was einzubauen, dass man die Daten aus der externen xls-Datei in diese Datei einliest?
Damit wäre mein Problem dann gelöst. (Der Name der externen Datei kann beliebig gewählt werden, falls dieser benötigt wird)
Würde mich freuen wenn dies möglich ist.
Gruß
Matthias
Anzeige
AW: Daten auslesen
10.08.2006 22:23:43
Daniel.Eisert
Hallo,
ob man jetzt eine geschlossene Datei auslesen kann, weiß ich nicht, aber du kannst sie ja per Makro öffnen.
Das geht mit der Workbooks.Open funktion.
Ich hoffe mal, die Hilfe hilft dir da weiter.
im prinzip mußt du dann nur noch jedesmal im Code wo sheets(xxx)... steht, daß entsprechende Workbook-Objekt davor schreiben, am einfachsten als Variable.
Beispiel (ist jetzt kein vollständiger Code, ich schreibs nur mal so runter):

Sub Einlesen,
dim wbQuelle as Workbook
Dim wbZiel as Workbook
set wbZiel = thisworkbook 'Das ist jetzt die Mappe mit dem Sheet "Verlauf"
set wbQuelle = workbooks.Open("c:\.....xls", writeprotect:=true) 'das ist die Mappe mit den Daten
'ab hier der weitere Code, aber vor jedes SHEETS(...) solltest du das entsprechende Workbook setzen, also
wbZiel.sheets("Verlauf").cells(x,y).value = wbQuelle.sheets("Tabelle1").cells(a,b).value
'wenn die aktualisierung durchgelaufen ist, solltest du die Datei wieder schließen
wbQuelle.close
End Sub

Gruß, Daniel
Anzeige
Danke
11.08.2006 08:08:05
Matthias
Hallo ..
.. danke für Deine Hilfe.
Ich denke damit komm ich dann soweit klar.
Ich muss nur schauen, weil die externe Datei (wbQuelle) nicht immer im gleichen Verzeichnis liegt. Das bekomme ich aber denke ich mal hin.
Nochmals vielen Dank.
Mit deiner Hilfe konnte ich sehr viel Anfangen.
Gruß
Matthias
Doch noch eine Frage
14.08.2006 08:22:46
Matthias
Hallo ..
.. hoffe das liest hier doch noch jemand.
Hab leider doch noch eine Frage.
Wenn ich fogenden Code verwende um die Datei einzulesen und die Werte in die Zieldatei einlesen möchte klappt es nicht. Könnte mir da jemand helfen?
'öffnet die Datei
strFile = Application.GetOpenFilename("Excel Dateien (*.xls; *.xlt; *.xla)," & _
"*.xls; *.xlt; *.xla")
If strFile = "Falsch" Then Exit Sub
Set objFSO = CreateObject("Scripting.FileSystemObject")
strNeu = objFSO.GetBaseName(strFile)
Wenn ich dann den Code von Daniel einfüge kommt immer ein Laufzeit fehler 424: Objekt erforderlich
With ThisWorkbook.Sheets("Verlauf")
For Each Zelle In StrNeu.Sheets("Tabelle1").Range(StrNeu.Sheets("Tabelle1").Cells(2, 1), StrNeu.Sheets("Tabelle1").Cells(65000, 1).End(xlUp))
If WorksheetFunction.CountIf(.Columns(1), Zelle.Value) = 0 Then
.Cells(65000, 1).End(xlUp).Offset(1, 0).Value = Zelle.Value
.Cells(65000, 1).End(xlUp).Offset(0, 1).Value = Zelle.Offset(0, 1).Value
End If
Zeile = Columns(1).Find(what:=Zelle.Value, lookat:=xlWhole).Row
If Not Zelle.Offset(0, 2).Value Like "Summe*" Then
Spalte = .Rows(2).Find(what:=Zelle.Offset(0, 2), lookat:=xlWhole).Column
.Cells(Zeile, Spalte).Value = Zelle.Offset(0, 3).Value
End If
Next
End With
Woran liegt der Fehler ich komme da leider nicht weiter hab schon verschiedenes versucht aber es klappt nicht. Bitte um Hilfe.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige