AW: Userform Code ändern
22.09.2006 13:06:11
Herby
Hallo Thomas,
anbei der neue code; damit werden nur die ausgeblendeten Arbeitsblätter in die Combobox übernommen. Nach dem Kopieren des Blattes wird dieses "neue" Blatt wieder eingeblendet (ist doch so ok ?).
Wenn in der Combo nichts eingegeben wird, hommt eine Msgbox und weist darauf hin. Den Text kannst du ja nach deinen Wünschen anpassen.
Private Sub CommandButton1_Click()
Dim objSheet As Object
Dim blnFound As Boolean
TextBox1.Value = Trim$(TextBox1.Value)
If TextBox1.Value <> "" Then
For Each objSheet In ThisWorkbook.Sheets
If objSheet.Name = TextBox1.Value Then
blnFound = True
Exit For
End If
Next
If MsgBox("Soll der Name ''" & TextBox1.Value & "'' im erstellt werden?", _
vbYesNo + vbQuestion, "Disziplin erstellen") = vbNo Then
Unload Me
Unload Me
Exit Sub
End If
If Not blnFound Then
With Application
.DisplayAlerts = False
.ScreenUpdating = False
End With
If ComboBox1.Text = "" Then
MsgBox "Bitte wählen Sie zuerst ein zu kopierendes Arbeitsblatt aus ! "
Exit Sub
End If
Sheets(ComboBox1.Text).Activate
ActiveSheet.Copy After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = Trim(TextBox1.Value)
ActiveSheet.Visible = True
Worksheets("Menüe").Select
'Worksheets("Disziplin").Copy After:=Worksheets(3)
' ActiveSheet.Name = TextBox1.Value
' Worksheets("Menüe").Select
With Application
.DisplayAlerts = True
.ScreenUpdating = True
End With
Unload Me
Else
MsgBox "Der Name ''" & TextBox1.Value & "'' ist schon vergeben." & vbLf & _
"Bitte geben Sie einen anderen Namen ein.", vbExclamation, "Hinweis"
With TextBox1
.SelStart = 0
.SelLength = .TextLength
.SetFocus
End With
End If
Else ' keine Eingabe
MsgBox "Sie haben keinen Namen eingegeben.", vbExclamation, "Hinweis"
TextBox1.SetFocus
End If
End Sub
Private Sub UserForm_Activate()
Dim Blatt As Worksheet
For Each Blatt In ThisWorkbook.Worksheets
If Blatt.Name <> ActiveSheet.Name And Blatt.Visible = False Then
Me.ComboBox1.AddItem Blatt.Name
End If
Next
End Sub
Viele Grüße
Herby