AW: und wer ...
28.06.2011 10:22:15
Martin
Hoi Rudi
Tja, am besten stelle ich mal das ganze Makro rein, das ich mir da zusammengebastelt habe. Ich möchte einfach, dass der Benutzer keine manuellen Blätter einschiebt, damit das Worksheet(1) auch dort bleibt, der Name des Worksheets muss der Benutzer aber ändern können (daher kann ich nicht den Namen benutzen, denn den kenne ich nicht....)
Eigentlich geht es um Spalten F6 - F26 im ersten Worksheet. Ein Eintrag in die erste Leerzeile dieses Bereichs soll ein neues Tabellenblatt kreieren, dass den Namen dieser F-Zelle erhält. Gleichzeitig soll auf diesem neuen Tabellenblatt ein Retour-Button sein, der bei Anklick das Tabellenblatt wieder ausblendet:
PS: Bin nur Anfänger, hab deshalb Erbarmen, falls es nicht Profi-mässig aussieht - alle Verbesserung und Ratschläge sind herzlich willkommen
Gruss
Martin
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Dim Name$
Dim objBut As Object
If Not Intersect(Target, Range("F6:F26")) Is Nothing Then
If Target.Value = "" Then
MsgBox "Rechtsklick nicht erlaubt, da Zelle leer ist"
Exit Sub
End If
If Len(Target.Value) > 30 Then
Name = Left(Target.Value, 30)
Else
Name = Target.Value
End If
With Sheets(Name)
.Visible = True
.Select
.UsedRange.End(xlDown).Offset(1, 0).Select
End With
Set objBut = Sheets(Name).Buttons.Add(0, 0, 75, 25)
With objBut
.OnAction = "Retour"
.Caption = "Retour"
.Name = "cmdRetour"
End With
Cancel = True
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim i%
Dim Blatt As Worksheet
Dim Name$
If Target.Offset(-1, 0).Value = "" Then
MsgBox "Leerzeilen nicht erlaubt, bitte direkt unterhalb des letzten Eintrags _
in Spalte F eingeben"
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
Exit Sub
End If
If Len(Target.Value) > 30 Then
Name = Left(Target.Value, 30)
Else
Name = Target.Value
End If
If Not Intersect(Target, Range("F6:F26")) Is Nothing Then
i = Target.Row - 4
If Target.Value "" Then
If Worksheets.Count
Private Sub Retour()
Dim objBut As Object
ActiveSheet.Shapes("cmdRetour").Cut
ActiveSheet.Visible = xlVeryHidden 'False
Sheets(1).Select
End Sub