Anzeige
Archiv - Navigation
804to808
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
804to808
804to808
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Userform Code ändern

Userform Code ändern
21.09.2006 19:29:15
Thomas
Hallo Leute,
komme nicht weiter und habe die Datei hochgeladen.
https://www.herber.de/bbs/user/36907.xls
Mein Problem:
Beim drücken des Button "Disziplin eingeben" im Blatt Menüe, erscheint eine UserForm wo ich in der Textbox1 einen Namen eingebe, der dann übernommen werden soll. In der Combobox1 soll man sich aussuchen können welches Tabellenblatt kopiert werden soll, außer Blatt "Menüe".
Bekomme das einfach nicht hin, brauche also bitte Hilfe.
Gruß Thomas

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Userform Code ändern
21.09.2006 22:14:37
Herby
Hallo Thomas,
probiers mal so:
Option Explicit

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
Sheets(ComboBox1.Text).Activate
ActiveSheet.Copy After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = Trim(TextBox1.Value)
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

Viele Grüße
Herby
Anzeige
AW: Userform Code ändern
21.09.2006 22:38:00
Thomas
Hallo Herby,
danke für die Antwort, ist Ok.
Habe aber das nächste Problem.
In der ComboBox sollen mir nur die ausgeblendeten Blätter außer Menüe angezeigt werden, wie geht das?
So geht es nicht.
Wenn ich in der ComboBox nichts auswähle und Ok drücke kommt eine Fehlermeldung, wie kann man die weg bekommen?

Private Sub UserForm_Activate()
Dim objWorksheet As Worksheet
For Each objWorksheet In ThisWorkbook.Worksheets
Select Case objWorksheet.Name
Case "Menüe"
Case Else
Me.ComboBox1.AddItem objWorksheet.Name
End Select
Next
End Sub

Gruß Thomas
Anzeige
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
Anzeige
AW: Userform Code ändern
22.09.2006 17:14:40
Thomas
Hallo Herby,
Super, klappt ausgezeichnet. 1000 Dank
Habe aber schon wieder eine Frage.
Wie kann man in der ComboBox die Reihenfolge der ausgeblendeten Blätter ändern?
Gruß Thomas

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige