folgendes Probleme würde ich gerne mit eurer Hilfe lösen.
Durch ein Makro habe ich für jedes Land einen eigenen Reiter (Name des Reiters z.B. DE, CH, ES, ...) wo Zahlen (Potential, Verkäufe etc.) in einem vorgefertigen Übersichtsblatt vorhanden ist.
Die Zahlen sind alle mit einem Budgetkurs über alle Länder gleich.
Nun möchte ich jedoch bei Userform die Auswahl haben, ob Budgetkurs oder Lokale Währung. Die Userform habe ich simple gehalten mit zwei OptionButton.
In einem Excel Dokument (bereits durch das Makro geöffnet und dient als Basis für das Übersichtsblatt) habe ich bereits einen Reiter mit dem entsprechenden Währungs Umrechnungskurs, siehe Beispiel.
Dateiname: Basis_BudgetSales.xls
Reiter: Liste
B C D E
1 DK DENMARK DKK 6,896551724
2 SE SWEDEN SEK 8,695652174
3 DE GERMANY EUR 0,934579439
Bisheriges Makro Userform:
Private Sub CommandButton1_Click()
Dim WS_Count As Integer
Dim Budget As Integer '
Dim LocalCurrency As Integer
WS_Count = ActiveWorkbook.Worksheets.Count
If OptionButton1.Value = True Then
For Budget = 1 To WS_Count - 1
Sheets(Budget).Select
Cells(2, 10).Value = OptionButton1.Caption
Next Budget
ElseIf OptionButton2.Value = True Then
For LocalCurrency = 1 To WS_Count - 1
Sheets(LocalCurrency).Select
Cells(2, 10).Value = OptionButton2.Caption
Next LocalCurrency
Ich möchte nun, sobald der Nutzer in der Userform Local Currency auswählt, das Makro unter Cells(2,10) die jeweilige Währung (Tabelle Spalte D) in Abhängigkeit des Reiternamens (Tabelle Spalte B) schreibt und per Operation:=xlMultiply bestimmte Werte in der Tabelle mit dem Umrechnungskurs (Tabelle Spalte E) multipliziert.
Ich hatte das vorher relativ umständlich für ein Land (beispiel DE=Deutschland) gemacht, jedoch _ ohne Schleife:
Sheets("DE").Range("J2") = Sheets("Liste").Range("D3")
Sheets("DE").Range("J3") = Sheets("Liste").Range("E3")
Sheets("DE").Range("J3").Copy
Sheets("DE").Range("F9:G23,I9:J23,F25:J25,F28:H42,F44:H44,F47:G61,F63:G63").PasteSpecial Paste:= _
_
_
xlPasteValues, Operation:=xlMultiply, _
SkipBlanks:=False, Transpose:=False
Dieses wiederholt sich für jeden Reiter (gleiche Tabelle), jedoch mit anderer Währung.
Problem dabei ist nur, dass nicht jedes mal alle Länder (also Reiter) aus der Liste vorhanden sind. Also müsste man entpsrechend auch einen error goto next einbauen.
Könnt ihr mir helfen?