Informationen und Beispiele zum Thema MsgBox | |
---|---|
![]() |
MsgBox-Seite mit Beispielarbeitsmappe aufrufen |
Informationen und Beispiele zum Thema ListBox | |
---|---|
![]() |
ListBox-Seite mit Beispielarbeitsmappe aufrufen |
Betrifft: Daten aus anderer Datei auslesen und eintragen
von: Bernd
Geschrieben am: 24.01.2010 19:45:10
Hallo Freaks,
ich suche seit heute 12 h nach einer Lösung im Archiv, bin aber nicht fündig geworden bzw. nicht in der Lage, das makro anzupassen.
Problem: aus einem Verzeichnis eine Datei aussuchen und aus zwei exakt benannten Blättern die Daten eines bestimmten Bereiches einlesen. Dabei haben Quell- und Zieldatei die gleiche Struktur und die gleiche Benennung der Registerblätter.
Ich habe ein Bsp. gefunden, dass meinen Vorstellungen sehr nahe kommt. Ich habe es in die Zieldatei eingebaut (angepasst erst mal nur für's Einlesen von "MA-Liste" - Daten) , aber leider funktioniert es nicht. Wer mag bitte helfen...
https://www.herber.de/bbs/user/67450.zip
Vielen Dank!
Grüße
Bernd
Betrifft: AW: Daten aus anderer Datei auslesen und eintragen
von: fcs
Geschrieben am: 25.01.2010 07:54:50
Hallo Bernd,
muss die Quelldatei unbedingt geschlossen bleiben? Das macht alles doch ziemlich kompliziert.
Mit dem existierenden Makro gibt es verschiedene Probleme die bereinigt werden müssen:
- im Blatt "MA-Liste ist die Spalte A als Text formatiert. Da funktioniert das eintragen der Formeln nicht. Zellformat muss hier "Standard" sein.
- im Makro müssen alle Teile, die die ursprünglich vorhandene Summenberechnung durchfüren gelöscht werden.
- die Formel zur Werte-Übertragung muss angepasst werden.
- zum Schluss müssen Formeln durch Werte ersetzt werden.
Gruß
Franz
die Prozedur zum Werte holen muss etwa wie folgt aussehen (ohne Funktionsgarantie)
'Werte einlesen Private Sub GetValues(BlattName As String, Bereich As Range) 'Summieren der Zell-Inhalte aus mehreren Dateien, _ dabei ist der Tabellenblatt-Name identisch mit dem aktiven Blatt 'BlattName = Name des Blatts aus dem Werte eingelesen werden sollen 'Bereich = Zellen-Bereich in dem Summen berechnet werden sollen Dim Zelle As Range Dim sFormel As String Dim iI As Integer On Error GoTo Fehler 'Datei-Auswahl-Liste in Listbox abarbeiten With Me.ListBox1 Bereich.ClearContents For iI = 0 To .ListCount - 1 If .Selected(iI) = True Then 'einzutragende Formel für Bereich ermitteln und einfügen '"='C:\Users\Public\Test\01\[Data03.xls]Daten'!R7C3:R23C11" sFormel = "='" & Me.txtDir & Application.PathSeparator _ & "[" & .List(iI, 0) & "]" _ & Me.txtTab & "'!" & "R[0]C[0]" Bereich.FormulaR1C1 = sFormel Bereich.Calculate End If Next 'Formeln durch Werte ersetzen Bereich.Value = Bereich.Value End With Fehler: With Err If .Number <> 0 Then MsgBox sFormel MsgBox "Fehler-Nr.:" & .Number & vbLf & .Description End If End With Set Zelle = Nothing End Sub
Betrifft: AW: fcs Danke - Lösung selber gefunden
von: Bernd
Geschrieben am: 25.01.2010 11:44:25
Hallo fcs,
vielen Dank. Ich habe die Lösung gestern abend doch noch selber gefunden und zusammengebastelt.
Anbei die (funktionierende :-)) Lösung für alle, die ein Lösung zu gleichgelagerten Problemen suchen.
Zieldatei liest aus Quelldatei ein:
https://www.herber.de/bbs/user/67457.zip
Grüße
Bernd
Betrifft: wo ist der Unterschied ?...
von: robert
Geschrieben am: 25.01.2010 16:47:03
Hi Bernd,
beide Dateien sind doch identisch-wozu
dann der Aufwand?
Gruß
Robert