Guten Morgen liebe Gemeinde Very Happy
Ich habe ein mittelschweres Problem und hoffe jemand kann mir weiterhelfen.
Vielen Dank dafür im voraus.
Und zwar habe ich ein Makro gebastelt (im wörtlichen Sinne, da ich absoluter Anfänger bin und das meiste mit dem Makrorecorder gemacht habe)
und das funktioniert auch erstmal in dem Tabellenblatt so wie es soll.
Nun zum Problem.
Ich möchte das Makro aus einem anderen Tabellenblatt per Button auslösen.
Diesen habe ich auch gebastelt und diesem das Makro zugeordnet.
Leider führt er nun Teile des Makros in dem Übersichtstabellenblatt aus und Teile in dem eigentlichen Tabellenblatt wo es auch hingehört.
Desweiteren soll er nicht in das Tabellenblatt in dem das Makro ausgeführt wird springen sondern in dem Menüblatt bleiben.
Auch eine Abschlussmeldung das dass Makro erfolgreich ausgeführt wurde wäre toll. Aber auch nur ein Gimmick.
Vielleicht hat jemand eine Idee, würde mich freuen. Ich poste mal den Code, auch wenn dieser nicht besonders schön ist.
Danke & Gruß
Sunny
Code:
Sub Tabelle_umwandeln_sortieren_formatieren()
‚Liste übertragen‘
Dim rangeZ As Range
On Error Resume Next
Set rangeZ = Worksheets(„Downloadliste SAP“).Columns(„K“).SpecialCells(xlCellTypeConstants)
If Not rangeZ Is Nothing Then rangeZ.EntireRow.Copy Worksheets(„Arbeitsliste“).Range(„A1“)
‚Spalten löschen‘
Sheets(„Arbeitsliste“).Range(„A:A“).Delete
Sheets(„Arbeitsliste“).Range(„L:L“).Delete
Sheets(„Arbeitsliste“).Range(„AA:AD“).Delete
Sheets(„Arbeitsliste“).Range(„AD:AG“).Delete
Sheets(„Arbeitsliste“).Range(„AF:AI“).Delete
Sheets(„Arbeitsliste“).Range(„I:I“).Delete
Sheets(„Arbeitsliste“).Range(„U:U“).Delete
Sheets(„Arbeitsliste“).Range(„Y:Y“).Delete
'Spaltenüberschriften ändern
Sheets(„Arbeitsliste“).Range(„A1“).FormulaR1C1 = „Kreditor“
Sheets(„Arbeitsliste“).Range(„B1“).FormulaR1C1 = „Lieferantenname“
Sheets(„Arbeitsliste“).Range(„E1“).FormulaR1C1 = „Banfnummer“
Sheets(„Arbeitsliste“).Range(„F1“).FormulaR1C1 = „Banfposition“
Sheets(„Arbeitsliste“).Range(„G1“).FormulaR1C1 = „Anforderungsdatum“
Sheets(„Arbeitsliste“).Range(„H1“).FormulaR1C1 = „Lieferdatum Banf“
Sheets(„Arbeitsliste“).Range(„I1“).FormulaR1C1 = „Belegnummer“
Sheets(„Arbeitsliste“).Range(„N1“).FormulaR1C1 = „AB ja/nein“
Sheets(„Arbeitsliste“).Range(„O1“).FormulaR1C1 = „Materialnummer“
Sheets(„Arbeitsliste“).Range(„P1“).FormulaR1C1 = „Materialbezeichnung“
Sheets(„Arbeitsliste“).Range(„AA1“).FormulaR1C1 = „Anzahl Mahnungen“
Sheets(„Arbeitsliste“).Range(„AB1“).FormulaR1C1 = „AB-Nummer“
’ Sortieren Makro
Sheets(„Arbeitsliste“).Columns(„O:open_mouth:“).Select
Application.CutCopyMode = False
Selection.Cut
Sheets(„Arbeitsliste“).Columns(„A:A“).Select
ActiveSheet.Paste
Sheets(„Arbeitsliste“).Columns(„PRazz“).Select
Selection.Cut
Sheets(„Arbeitsliste“).Columns(„B:B“).Select
ActiveSheet.Paste
ActiveWindow.SmallScroll ToRight:=2
Sheets(„Arbeitsliste“).Columns(„AB:AB“).Select
Selection.Cut
Sheets(„Arbeitsliste“).Columns(„O:open_mouth:“).Select
ActiveSheet.Paste
Sheets(„Arbeitsliste“).Range(„P2“).Select
Sheets(„Arbeitsliste“).Columns(„O:open_mouth:“).ColumnWidth = 29.57
Sheets(„Arbeitsliste“).Columns(„O:open_mouth:“).ColumnWidth = 38.14
Sheets(„Arbeitsliste“).Columns(„PRazz“).Select
Selection.Delete Shift:=xlToLeft
‚Spaltenbreite an Text anpassen‘
Sheets(„Arbeitsliste“).Columns(„A:AA“).EntireColumn.AutoFit
‚Zeile einfügen‘
Sheets(„Arbeitsliste“).Rows(„1:1“).Select
Selection.Insert
‚Datumbeschriftung und heutiges Datum in Zeile 1 einfügen‘
Sheets(„Arbeitsliste“).Range(„A1“).FormulaR1C1 = „Datum:“
Sheets(„Arbeitsliste“).Range(„B1“).FormulaR1C1 = „=Today()“
‚Zeile 1 u 2 fett markieren‘
Sheets(„Arbeitsliste“).Rows(„2:1“).Select
Selection.Font.Bold = True
‚Bemerkungsspalte‘
Sheets(„Arbeitsliste“).Range(„AA2“).Select
ActiveCell.FormulaR1C1 = „Bemerkungen“
Sheets(„Arbeitsliste“).Columns(„AA2“).Select
Selection.ColumnWidth = 55
’ zentriert Makro
Sheets(„Arbeitsliste“).Range(„A:AA“, „N:Z“).Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
’ Linksbündig Makro
Sheets(„Arbeitsliste“).Range(„A:B“, „G:I“).Select
With Selection
.HorizontalAlignment = xlLeft
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
’ Zelle_färben Makro
Sheets(„Arbeitsliste“).Range(„A1:B1“).Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 49407
.TintAndShade = 0
.PatternTintAndShade = 0
End With
’ Rahmen Makro
Sheets(„Arbeitsliste“).Range(„A1:B1,A2:AA2“).Select
Sheets(„Arbeitsliste“).Range(„A2“).Activate
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
’ Autofilter Makro
Sheets(„Arbeitsliste“).Rows(„2:2“).Select
Selection.Autofilter
’ Zeilenhöhe Makro
Sheets(„Arbeitsliste“).Rows(„2:2“).RowHeight = 33.75
Sheets(„Arbeitsliste“).Rows(„2:2“).Select
With Selection
.VerticalAlignment = xlTop
.WrapText = False
.Orientation = 0
.AddIndent = False
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
End Sub