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

Daten import aus Excel

Daten import aus Excel
06.07.2017 13:44:09
Lenny
Guten Tag zusammen
Habe schon öfters in diesem Forum Hilfe erhalten und hoffe, dass das auch dieses mal der Fall sein wird.
Hier meine Herausforderung:
Ich bekomme von verschieden Projektleitern Excel-Dateien zugeschickt, in denen sie Projekte kalkuliert haben. Für die Zusammenfassung bringe ich alle Zahlen auf ein Excel zusammen.
Bis anhin habe ich die Zahlen aus den unterschiedlichen Excel-Dateien einfach in ein standardisierte Zusammenfassung kopiert. Nicht sehr elegant aber es hat funktioniert. Da es aber doch ein paar Zahl sind, ist öfters auch mal die eine oder andere Zahl in der falschen Zelle gelandet.
Habe mir jetzt ein Makro, dass ich im Netzt gefunden habe ein wenig angepasst, aber bei einem Punkt komme ich nicht weiter.
Wie sage ich, dass ich von der ausgewählten Datei das Sheet xxx möchte und die Zellen A,B,C, etc. kopieren und in der Zusammenfassung an die Stelle X,Y,Z einfügen möchte? (Habe die Stelle im unten stehenden Makro mal fett markiert).
Vielen Dank in Voraus für eure Hilfe oder auch nur Hinweise
Gruss Lenny
Sub Import_mit_Dialog()
Dim Quelle As Object, Ziel As Object
Dim Datei As String
On Error GoTo Fehler
'Dialog "Datei öffnen" anzeigen
Datei = Application.GetOpenFilename("Excel-Dateien(*.xlsm),*xlsm")
'Abbrechen falls keine Datei ausgewählt
If Datei = "Falsch" Then
MsgBox "keine Datei ausgewählt", , "Abbruch"
Exit Sub
End If
'MsgBox "Ausgewählte Datei: " & Datei, , ""
'Ausgewählte Datei öffnen
Workbooks.Open Filename:=Datei
'Auslesen der gewählten Tabelle
'Angenommen das Sheet "Daten" stehen in Zelle A2
'Wichtig: die Auswahl muss genauso lauten, wie das Tabellenblatt von dem kopiert werden soll
Set Ziel = ThisWorkbook.Worksheets(3)
blatt = Ziel.Range("B10").Value
Set Quelle = ActiveWorkbook.Worksheets(blatt)
'gewähltes Blatt wird definiert als Quelle
'kopieren und einfügen
Quelle.UsedRange.Copy Ziel.Cells(1, 1)
ActiveWorkbook.Close
'Speicher freigeben
Set Quelle = Nothing
Set Ziel = Nothing
Exit Sub
Fehler:
Set Quelle = Nothing
Set Ziel = Nothing
MsgBox "FehlerNr.: " & Err.Number & vbNewLine & vbNewLine _
& "Beschreibung: " & Err.Description _
, vbCritical, "Fehler"
End Sub

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten import aus Excel
06.07.2017 14:23:04
mmat
Hallo,
du willst die Daten irgenwo ablegen, wo genau, das steht in B10 ?
Was genau steht denn da in B10 drin ?
blatt = Ziel.Range("B10").Value

AW: Daten import aus Excel
06.07.2017 14:42:11
Lenny
Wie genau das funktionieren soll weiss ich eben auch noch nicht. Wie geschrieben, ist dieser Teil aus dem originalen Makro.
Das Makro funktioniert ja so weit, das der Windows-Explorer geöffnet wird und ich eine Datei auswählen kann. Wenn ich dann eine Datei auswähle öffnet sich diese, aber dann weiss ich nicht mehr weiter...
Ich verstehe diesen Teil des Makro einfach nicht. Ich möchte ja, dass bestimmte Zellen aus einem bestimmten Sheet kopiert werden und in mein Excel an einer bestimmten Stelle eingefügt werden.
Irgendeine Idee wie sich das umsetzt lässt?
PS: Wenn ich da originale Makro richtig verstanden habe, werden ganze Sheets kopiert und eingefügt.
Anzeige
AW: Daten import aus Excel
06.07.2017 14:59:38
mmat
achso
>>> Set Ziel = ThisWorkbook.Worksheets(3)
das Ziel ist das 3. Arbeitsblatt der Exceldatei, in der dieses Makro steht. (das Ziel ist hoffentlich leer ...)
>>> blatt = Ziel.Range("B10").Value
Ich könnte mir vorstellen, dass hier in der Zelle B10 der Name des Arbeitsblatts in der Quelldatei drinsteht. Allerdings wird dieser bei der folgenden Kopieraktion wahrscheinlich überschrieben.
>>> Set Quelle = ActiveWorkbook.Worksheets(blatt)
Quelle ist das blatt in der aktiven Mappe.
>>> Wenn ich da originale Makro richtig verstanden habe, werden ganze Sheets kopiert und eingefügt.
Nein, nur der jeweils ausgefüllte Bereich (Usedrange ...). Der landet auf dem Zielblatt in Zelle A1
Anzeige
AW: Daten import aus Excel
06.07.2017 15:09:41
Michael
Hallo!
Hier mal ein Bsp-Code mit, hoffentlich, hilfreichen und "sprechenden" Variablen-Namen:
Sub a()
Dim ZielMappe As Workbook
Dim ZielBlatt As Worksheet
Dim QuellMappe As Workbook
Dim QuellBlatt As Worksheet
Dim QuellBlattName As String
Dim Datei As String
'Ziel-Mappe ist DIESE Mappe (in der das Makro läuft)
'Ziel-Blatt ist "Tabelle1" dieser Mappe...
'...hier den von Dir genutzten Blattnamen einsetzen
Set ZielMappe = ThisWorkbook
Set ZielBlatt = ZielMappe.Worksheets("Tabelle1")
'Name des Blattes, aus dem die Werte geholt werden, zB "Tabelle5"
'auch hier den tatsächlichen Namen einsetzen
QuellBlattName = "Tabelle5"
'Über Datei-Explorer die gewünschte Quell-Datei auswählen
Datei = Application.GetOpenFilename("Excel-Dateien(*.xlsm),*xlsm")
If Datei = "Falsch" Then
MsgBox "Keine Datei ausgewählt", , "Abbruch"
Exit Sub
End If
'Die gewählte Datei als Quell-Mappe definieren
Set QuellMappe = Workbooks.Open(Datei)
'Das Blatt mit dem o.a. BlattNamen als Quell-Blatt definieren
Set QuellBlatt = QuellMappe.Worksheets(QuellBlattName)
'Links die Zielzellen, rechts die Quellzellen
ZielBlatt.Range("A5") = QuellBlatt.Range("X5")
ZielBlatt.Range("B5") = QuellBlatt.Range("Y5")
ZielBlatt.Range("C5") = QuellBlatt.Range("Z5")
'Quellmappe wieder schließen
QuellMappe.Close False
End Sub
Dieser Code überträgt Dir aus der neu geöffneten Datei (die Quell-Datei) die Inhalte aus den Zellen X5:Z5 in die Zellen A5:C5 in die Datei in der der Code steht (die Ausgangs- oder Ziel-Datei). Die Quell-Datei wird danach wieder geschlossen.
Kommst Du damit hin und ist es für Dich nachvollziehbar?
LG
Michael
Anzeige
AW: Daten import aus Excel
06.07.2017 15:47:18
Lenny
Hey Michael
Genial! Funktioniert einwandfrei. Vielen vielen Dank!!!
Gruss
Lenny
Gerne, freut mich! Danke für die Rückmeldung, owT
06.07.2017 15:50:25
Michael

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige