AW: Prozedur aus userform aufrufen
29.01.2020 17:16:56
Tobias
Ich kann den Haltepunkt in der userform setzen und in der aufzurufenden Prozedur. der Fehler bleibt der gleiche, siehe File
Die Prozedur funktioniert auch ohne Parameterübergabe, da muss irgendwo der Hund begraben sein:
Sub zeugnisVorbereiten(zeugnis As String, klasse As String, schuljahr As String)
'Dim zeugnis As String
Dim z As Long
Dim i As Integer
Dim j As Integer
Dim letzteSpalte As Integer
Dim letzteZeile As Integer
Dim sAdresse As String, Zeile&, Spalte&
Dim Faecher As Integer
Dim rng As Range
Dim pfad As String
Dim ZielMappe As Workbook
Dim zielblatt As Worksheet
Dim QuellMappe As Workbook
Dim QuellBlatt As Worksheet
'Dim klasse As String
Dim varPath
Dim orgPath
'klasse = Application.InputBox _
("Bitte Klasse eingeben zB. 11a 11b 12a ...", "Klasse")
'zeugnis = Application.InputBox _
("Zwischenzeugnis oder Jahreszeugnis erstellen?", "Zeugnisart")
Set QuellMappe = Workbooks.Open(ThisWorkbook.Path & "/" & klasse & "/notenübersicht" & _
klasse & ".xlsx")
Set QuellBlatt = QuellMappe.Worksheets("Notenübersicht")
z = AnzahlZeilen(QuellBlatt)
letzteSpalte = QuellBlatt.Cells(3, Columns.Count).End(xlToLeft).Column
pfad = QuellMappe.Path
orgPath = ActiveWorkbook.Path
varPath = Application.GetOpenFilename
Workbooks.Open varPath
Set ZielMappe = ActiveWorkbook
Set zielblatt = ZielMappe.Worksheets("Sheet0")
z = AnzahlZeilen(Worksheets("Sheet0"))
Range("A1").Value = "kuerzel"
Range("A2:A" & z).ClearContents
Range("A2").FormulaLocal = "=LINKS(C2;2)&LINKS(B2;2)"
Range("A2").Copy
Range("A3:A" & z).PasteSpecial
Range("A2:A" & z).Copy
Range("A2:A" & z).PasteSpecial xlPasteValues
Columns("B:B").Insert shift:=xlToLeft
Range("B2").FormulaLocal = "=VERKETTEN(D2;"" "";C2)"
Range("B2").Copy
Range("B3:B" & z).PasteSpecial
Range("B2:B" & z).Copy
Range("B2:B" & z).PasteSpecial xlPasteValues
Range("B1").Value = "name"
Range("C:D, H:U").Delete
QuellBlatt.Range("B3:K3").Copy
zielblatt.Range("F1").PasteSpecial
letzteSpalte = zielblatt.Cells(1, Columns.Count).End(xlToLeft).Column
zielblatt.Range("F2").FormulaLocal = "=WENN(ISTFEHLER(RUNDEN(SVERWEIS($A2;[Notenü _
bersicht11a.xlsx]Notenübersicht!$A$4:$K$36;SPALTE(B:B);FALSCH);2));""n.b."";RUNDEN(SVERWEIS($A2;[Notenübersicht11a.xlsx]Notenübersicht!$A$4:$K$36;SPALTE(B:B);FALSCH);2))"
' zielblatt.Range("F2").FormulaLocal = "=RUNDEN(SVERWEIS($A2;[Notenübersicht11a.xlsx]Notenü _
bersicht!$A$4:$K$36;SPALTE(B:B);FALSCH);2)"
zielblatt.Range("f2").Copy
zielblatt.Range(Cells(2, 7), Cells(2, 9)).PasteSpecial
zielblatt.Range(Cells(2, 6), Cells(2, 9)).Copy
zielblatt.Range(Cells(3, 6), Cells(z, 9)).PasteSpecial
zielblatt.Columns("J:J").Insert shift:=xlToLeft
zielblatt.Cells(1, 10).Value = "IT-Anwendungen gesamt"
zielblatt.Cells(2, 10).FormulaLocal = "=wenn(ISTFEHLER(runden((h2*3+i2)/4;2));""n.b.""; _
runden((h2*3+i2)/4;2))"
zielblatt.Cells(2, 10).Copy
zielblatt.Range(Cells(3, 10), Cells(z, 10)).PasteSpecial
zielblatt.Range("K2").FormulaLocal = "=WENN(ISTFEHLER(RUNDEN(SVERWEIS($A2;[Notenü _
bersicht11a.xlsx]Notenübersicht!$A$4:$K$36;SPALTE(f:f);FALSCH);2));""n.b."";RUNDEN(SVERWEIS($A2;[Notenübersicht11a.xlsx]Notenübersicht!$A$4:$K$36;SPALTE(F:F);FALSCH);2))"
zielblatt.Range("k2").Copy
zielblatt.Range(Cells(2, 12), Cells(2, letzteSpalte + 1)).PasteSpecial
zielblatt.Range(Cells(2, 11), Cells(2, letzteSpalte + 1)).Copy
zielblatt.Range(Cells(3, 11), Cells(z, letzteSpalte + 1)).PasteSpecial
zielblatt.Cells(2, letzteSpalte + 2).FormulaLocal = "=SVERWEIS($A2;[Notenübersicht11a.xlsx] _
Notenübersicht!$A$4:$L$36;SPALTE(L:L);FALSCH)"
zielblatt.Cells(2, letzteSpalte + 2).Copy
zielblatt.Range(Cells(3, letzteSpalte + 2), Cells(z, letzteSpalte + 2)).PasteSpecial
zielblatt.Range("A:R").EntireColumn.AutoFit
ActiveWorkbook.Close
Call neueExcelDatei
Range("A1").Select
With Selection
.PasteSpecial
End With
Application.Dialogs(xlDialogSaveAs).Show
End Sub