Excel VBA wenn Wort richtig dann dieses Makro
09.10.2019 08:33:00
Pascal
Ich habe viele verschiedene Persönlichen Makros die sich eigentlich nicht all zu sehr voneinander unterscheiden bis meistens auf den S-Verweis der eben einen anderen Spaltenindex hat oder die Matrix anders gelegt ist oder der S-Verweis sich auf eine andere Datei bezieht.
Jetzt dachte ich mir das man doch bestimmt diese Vielen Makros zu einem zusammenführen kann und er sich selbst aussuchen soll welches Makro den nun angestoßen werden soll.
In diesen Excel listen in den das Makro ausgeführt werden soll gibt es immer den Namen des Tabellenbaltt das mir sagt welches Makro ich nun ausführen soll. hier ein bsp.: "LS Gesamt" oder "DN APP" oder "DN FTW".
Nun wollte ich fragen ob man eben per Makro suchen lassen kann welches Makro gebraucht wird und dann dieses ausgeführt wird? Oder mir eine vorsortierte Auswahl an Makros angezeigt wird.
Hier ein Beispiel eines Makros:
Sub LSVKB_APP_PSS_DE_AT_CH()
Sheets("LS Gesamt").Select
Sheets("LS Gesamt").Copy After:=Sheets(1)
Sheets("LS Gesamt (2)").Select
Sheets("LS Gesamt (2)").Name = "LS (HZA)"
Sheets("LS (HZA)").Select
Sheets("LS (HZA)").Move Before:=Sheets(1)
Sheets("LS Gesamt").Select
ActiveWindow.SmallScroll Down:=-21
With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
End With
For Each Zelle In Range("H36:H2600")
Zelle.Value = Trim(Zelle.Value)
Next
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlCalculationAutomatic
End With
ActiveWorkbook.Worksheets("LS Gesamt").AutoFilter.Sort.SortFields.Clear
ActiveWorkbook.Worksheets("LS Gesamt").AutoFilter.Sort.SortFields.Add Key:= _
Range("H35:H3149"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _
:=xlSortNormal
With ActiveWorkbook.Worksheets("LS Gesamt").AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
Range("A36").Select
Selection.FormulaArray = _
"=IF(RC8="""","""",(IF((R[-1]C8=RC8),1,"""")))"
Range("B36").Select
ActiveCell.FormulaLocal = _
"=WENN(SVERWEIS(H36;'W:zensiert'!$J$1:$U$14010;8;0)="""";"" - "";SVERWEIS(H36;'W: _
zensiert'!$J$1:$U$14010;8;0))"
Range("C36").Select
ActiveCell.FormulaLocal = _
"=WENN(SVERWEIS(H36;'W:\zensiert'!$J$1:$U$14010;9;0)="""";"" - "";SVERWEIS(H36;'W:\ _
zensiert'!$J$1:$U$14010;9;0))"
Range("D36").Select
ActiveCell.FormulaLocal = _
"=SVERWEIS(H36;'W:\zensiert'!$J$1:$AM$14010;30;0)"
Range("A36:D36").Select
Dim letzte As Long
letzte = Cells(Rows.Count, 4).End(xlUp).Row
Range("A36:D36").AutoFill Destination:=Range("A36:D" & letzte - 2)
Range("W36").Select
ActiveCell.FormulaLocal = _
"=WENN(ISTFEHLER(SVERWEIS(H36;'M:\AV\Einzelgewichte\[Einzelgewichte.xlsx]Tabelle1'!$E:$ _
_
I;5;0));"""";SVERWEIS(H36;'M:\AV\Einzelgewichte\[Einzelgewichte.xlsx]Tabelle1'!$E:$I;5;0))"
letzte = Cells(Rows.Count, 4).End(xlUp).Row
Range("W36").AutoFill Destination:=Range("W36:W" & letzte - 2)
Range("H36").Select
End With
End Sub
Ich Bedanke mich schon mal ich voraus und wünsche noch einen schönen tag. :)