ich hätte da mal wieder ein Problemchen, dass vermutlich gar nicht so schlimm ist - wenn man den Lösungsweg kennt :-/
Ich habe mehrere unterschiedliche Exceldateien, die an verschiedene Addressaten verteilt werden. da sich einzelne Variablen je Datei unterschieden (marktspezifisch sozusagen), möchte ich die Deklaration dieser Variablen gerne in ein eigenes Modul auslagern. das würde auch anderen das Anpassen an die Märkte erleichtern, da sie immer nur in einem Modul was ändern müssten.
Ich habe versucht, aus einer Userform diese Deklaration aufzurufen - ohne Erfolg :-(
Das Modul sieht so aus:
Sub Declaration()
Dim overview As Worksheet
Set overview = ActiveWorkbook.Worksheets("VO-4_MC Progress")
End Sub
Der Aufruf in der Userform erfolgt so (Zeile7/8):
Private Sub Submit_Click()
Dim lastRow As Integer
Dim lastCell As Integer
Dim row1 As Integer
Dim row2 As Integer
'Aufrufen allgemeiner Variablen-------------------------------------------------
Call Declaration
Application.ScreenUpdating = False
lastRow = overview.Cells(Rows.Count, 2).End(xlUp).Row
lastCell = overview.Cells(39, Columns.Count).End(xlToLeft).Column
row1 = Len(DName)
row2 = Len(DCity)
'Neue Zeile einfügen---------------------------------------------------------------
Range(Cells(36, 2), Cells(36, lastCell)).Copy
Cells(lastRow, 2).Insert Shift:=xlDown 'Formatierte Zellen vor letztem Händler einfügen
Rows(lastRow + 1).RowHeight = 30
Application.CutCopyMode = False 'Zellmarkierung deaktivieren
'Mit Werten aus Databox füllen--------------------------------------------------------
overview.Cells(lastRow, 5) = Area.Value
overview.Cells(lastRow, 4) = DNumber.Value
overview.Cells(lastRow, 6).FormulaR1C1 = DName.Value & Chr(10) & DCity.Value
'Zelle zweizeilig formatieren---------------------------------------------------------
With Cells(lastRow, 6).Characters(Start:=1, Length:=row1).Font
.Name = "Volkswagen Headline"
.FontStyle = "Fett"
.Size = 10
End With
With Cells(lastRow, 6).Characters(Start:=row1 + 1, Length:=row2 + 1).Font
.Name = "Volkswagen Headline"
.FontStyle = "Kursiv"
.Size = 10
End With
'Gebäudedaten aus Databox übernehmen-----------------------------------------------
overview.Cells(lastRow, 8) = ExtFormat.Value
overview.Cells(lastRow, 9) = ExtCV.Value
overview.Cells(lastRow, 10) = ExtOB.Value
overview.Cells(lastRow, 11) = ExtCat.Value
overview.Cells(lastRow, 12) = ExtCI.Value
overview.Cells(lastRow, 15) = TargetFormat.Value
overview.Cells(lastRow, 16) = TargetCV.Value
overview.Cells(lastRow, 17) = TargetOB.Value
overview.Cells(lastRow, 18) = TargetCat.Value
overview.Cells(lastRow, 19) = TargetCI.Value
'Daten neu sortieren------------------------------------------------------------------
overview.Range(Cells(42, 2), Cells(lastRow + 1, lastCell)).Sort _
Key1:=overview.Range("E42"), _
Key2:=overview.Range("F42")
'Druckbereich neu definieren------------------------------------------------------
ActiveSheet.PageSetup.PrintArea = Range(Cells(1, 1), Cells(lastRow + 2, lastCell)).Address
'Datenblatt einfügen und sortieren-----------------------------------------------------------
Sheets("Dealer_Template").Copy After:=Sheets("Dealer_Template")
Sheets("Dealer_Template (2)").Name = DName & "_" & DNumber
' Sortieren
Unload Me
Application.ScreenUpdating = True
End Sub
Ich habe es erst mal nur mit der Übergabe des Tabellenblattes versucht, auf dem die Zusammenfassung erfolgt (overview). Klappt aber nicht :-(
Kann mir jemand helfen dazu?
Beste Grüe
Aelsbeth