04.12.2019, 18:31
Ich stehe vor einer größeren Herausforderung, die ich leider nicht gelöst bekomme. Vielleicht hat der ein oder andere von euch eine Idee und kann helfen.
Folgendes Szenario:
Arbeitsmappe mit mehreren Blättern (Standorte). Etwa 130. Jedes Blatt ist exakt gleich aufgebaut. Ledglich der Blattname (Standort) ist anders und die Lieferanten. (Beispielmappe im Anhang)
Vorschau:
Nun gibt es für jeden dieser Lieferanten eine eigene, externe Datei die er befüllt.
Die Lieferantendatei ist exakt so aufgebaut, wie der untere Bereich im Beispiel (lila).
Nun das eigentliche Problem:
Wie schaffe ich es, dass er für jedes einzelne Blatt die JEWEILIGE externe Datei des dazugehörigen Lieferanten öffnet und die Daten einträgt.
Sprich für Standort1:
Lieferant1 - Datei
und ab Spalte G Lieferant2 - Datei
Für Standort2:
Lieferant2 - Datei
usw.
Ich dachte hierbei schon an eine Case-Anwendung a la
Aber auch damit bin ich nicht weitergekommen
Hier mein Code, der unter normalen Umständen auch funktioniert.
Ich habe verschiedene Range angaben freigelassen, da mir diese so nicht weiterhelfen bzw. ja nicht verallgemeinert werden können
Herr je! Kompliziert, ich weiß
Vielleicht kann jemand helfen .. :100:
Folgendes Szenario:
Arbeitsmappe mit mehreren Blättern (Standorte). Etwa 130. Jedes Blatt ist exakt gleich aufgebaut. Ledglich der Blattname (Standort) ist anders und die Lieferanten. (Beispielmappe im Anhang)
Vorschau:
A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | |
1 | Standort2 | |||||||||||||||
2 | ||||||||||||||||
3 | Lieferant1 | Lieferant1 | Lieferant1 | Lieferant1 | Lieferant1 | Lieferant2 | Lieferant2 | Lieferant2 | Lieferant2 | Lieferant2 | Lieferant2 | Lieferant2 | ||||
4 | ||||||||||||||||
5 | ||||||||||||||||
6 | ||||||||||||||||
7 | ||||||||||||||||
8 | Januar | Februar | März | April | Mai | Juni | Juli | August | September | Oktober | November | Dezember | ||||
9 | ||||||||||||||||
10 | ||||||||||||||||
11 |
Zelle | Formel |
A1 | =TEIL(ZELLE("dateiname";A1);FINDEN("]";ZELLE("dateiname";A1))+1;255) |
Verwendete Systemkomponenten: [Windows (32-bit) NT :.00] MS Excel 2016 |
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg |
Nun gibt es für jeden dieser Lieferanten eine eigene, externe Datei die er befüllt.
Die Lieferantendatei ist exakt so aufgebaut, wie der untere Bereich im Beispiel (lila).
Nun das eigentliche Problem:
Wie schaffe ich es, dass er für jedes einzelne Blatt die JEWEILIGE externe Datei des dazugehörigen Lieferanten öffnet und die Daten einträgt.
Sprich für Standort1:
Lieferant1 - Datei
und ab Spalte G Lieferant2 - Datei
Für Standort2:
Lieferant2 - Datei
usw.
Ich dachte hierbei schon an eine Case-Anwendung a la
Code:
Dim i As Integer
For i = 2 To 14
Select Case Cells(2, i).Value
Case "Lieferant1"
..
Hier mein Code, der unter normalen Umständen auch funktioniert.
Ich habe verschiedene Range angaben freigelassen, da mir diese so nicht weiterhelfen bzw. ja nicht verallgemeinert werden können
Code:
Public Function GetDataClosedWB(SourcePath As String, _
SourceFile As String, sourceSheet As String, _
SourceRange As String, TargetRange As Range) As Boolean
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:
GetDataClosedWB = False
End Function
Code:
Sub Test()
Application.DisplayAlerts = False
Pfad = Range("SupplierPfad")
Dateiname = Range("")
Blatt = Range(" ")
Zellen = Range("")
If GetDataClosedWB(Pfad, _
Dateiname, _
Blatt, _
Zellen, _
Worksheets("").Range("")) Then
End If
Application.DisplayAlerts = True
Exit Sub
Fehler:
End Sub
Vielleicht kann jemand helfen .. :100: