Hallo Tobias,
"...dass per Knopfdruck folgendes passiert:" Und wie willst du das ganze auslösen? Über ein Button wäre ungünstig da dich eine elende Scrollerei erwartet. Ich empfehle hierfür ein Symbol auf einem benutzerdefinierten Ribbon anzulegen. Oder du hinterlegst dem Makro eine Tastenkombination. Bleibt ganz dir überlassen. Hier jedenfallst erstmal das von dir gewünschte Makro für die ersten 3 Punkte, das du dem Button oder Symbol oder Shortcut hinterlegen kannst
Sub AngebotAnlegen()
Sheets("Verkauf").Select
If ActiveCell.Column <> 2 Then
MsgBox "Wählen Sie eine Angebotsnr. in Spalte B"
Exit Sub
End If
Angebot = ActiveCell.Value
Adresse = ActiveCell.Address
If SheetExists(Angebot) Then
MsgBox "Sheet bereits vorhanden"
Else
Set Sh = Sheets.Add(After:=Sheets(Sheets.Count))
Sh.Name = Angebot
Sh.Range("A1").Value = Angebot
Sh.Range("A1").Hyperlinks.Add Anchor:=Sh.Range("A1"), Address:="", _
SubAddress:="'Verkauf'!" & Adresse, TextToDisplay:=Angebot 'Backlink
End If
Sheets("Verkauf").Select
ActiveCell.Hyperlinks.Add Anchor:=Selection, Address:="", _
SubAddress:="'" & Angebot & "'!A1", TextToDisplay:=Angebot
End Sub
Function SheetExists(Index) As Boolean
On Error Resume Next
SheetExists = Sheets(Index).Name <> ""
End Function
Damit auch Punkt 4 funktioniert und das Blatt Verkauf immer links vom aktiven Blatt angezeigt wird musst du zusätzlich im Modul "DieseArbeitsmappe" den folgenden Code hinterlegen.
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Application.EnableEvents = False
Sheets("Verkauf").Move Before:=Sh
Sh.Activate
Application.EnableEvents = True
End Sub
Leider funktioniert das nur, wenn die Tabellenblätter direkt angewählt werden. Bei Aktivierung per Hyperlink wird das SheetActivate-Ereignis leider nicht ausgelöst. Daher habe ich dir auf den Tabellenblättern in Zelle A1 einen Backlink zurück zum Sheet Verkauf angelegt. Die Codezeile kannst du auch gern wieder rausschmeißen wenn sie dich stört.
Gruß Mr. K.
|