Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1900to1904
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
Inhaltsverzeichnis

Userform zum Kopieren Tabellenblatts

Userform zum Kopieren Tabellenblatts
18.10.2022 12:29:14
XYZ
Hallo,
Ich habe mir ein Userform angelegt, welches aus einer Listbox (=Eingabe des Namens des neu anzulegenden Tabellenblatts) und 2 Commandbuttons („Anlegen“ und „Abbrechen“) besteht.
Beim Anklicken des Button „Anlegen“ würde ich gern den Befehl zum Kopieren des bereits vorhandenen Tabellenblatts „Vorlage“ geben und im Anschluß daran ein neues Tabellenblatt mit dem in der Textbox eingegeben Namen anlegen. Da die Namenslänge des Tabellenblatts auf 31 Zeichen begrenzt ist und keine Sonderzeichen enthalten darf, würde ich dies in der Listbox begrenzen bzw. diese Zeichen ausschließen.
Über den Button „Abbrechen“ soll die Userform geschlossen werden.
Vielen Dank vorab für einen Vorschlag, wie man das umsetzen kann.
Viele Grüße
XYZ

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Userform zum Kopieren Tabellenblatts
18.10.2022 12:40:09
Oberschlumpf
Hi #Name?,
Zitat: "Ich habe mir ein Userform angelegt, welches aus einer Listbox (=Eingabe des Namens..."
In eine Listbox kann man nix eingeben - nur etwas auswählen.
Zitat: "...mit dem in der Textbox eingegeben Namen anlegen..."
Wie jetzt? Zuerst schreibst du doch, Userform enthält nur 1 Listbox + 2 Button - wo kommt denn auf einmal die Textbox her?
Zitat: "...Namenslänge...31 Zeichen begrenzt...keine Sonderzeichen...würde ich dies in der Listbox begrenzen..."
Immer noch: In Listbox kann man nur auswählen, nix eintragen, ok, man könnte hinzufügen, aber du meinst ja tatsächlich was eingeben.
(mein) Ergebnis: Ich bin verwirrt - oder du?
Ich glaub, am besten ist, du zeigst mal bitte per Upload eine Excel-Bsp-Datei mit genügend Bsp-Daten in den richtigen Zellen, alle erforderlichen Tabellenblätten, dein Userform mit "deinen" Controls.
Ciao
Thorsten
P.S. wenn du denkst, ich will dich vorführen (dich dumm "hinstellen") - Nein! Will ich nicht! Ich versteh anhand deiner Beschreibung nicht, was du möchtest.
Anzeige
AW: Userform zum Kopieren Tabellenblatts
18.10.2022 14:09:47
XYZ
Tut mir leid, die Differenzierung zwischen Textbox und Userform war mir nicht bewusst. Ein Upload einer Datei ist aufgrund von Firmenrestriktionen nicht möglich.
Also, es handelt sich um ein Userform. Die Erstellung dieses Userform hab ich grad noch hinbekommen.
  • eine Listbox :In dieser soll der Anwender einen Namen eingeben.

  • Darunter liegen 2 Buttons mit dem Namen Anlegen und Abbrechen

  • Wenn der Nutzer den Button Anlegen anklickt soll das Tabellenblatt "Vorlage" kopiert werden und in der gleichen Mappe ein neues Tabellenblatt mit dem Namen des zuvor eingegbenen Namens erstellt werden. Beim Klick auf "Abbrechen" soll die Userform schlicht geschlossen werden. Für diese beiden Aktionen benötige ich den Code, der nach meinem Verständis im VBA Editor im Userform hinterlegt werden müsste.
    Da der Namen des Tabellenblatts nur aus max 31 Zeichen bestehen darf, würde ich zudem gerne die Eingabe des Namens auf 31 Zeichen begrenzen und Sonderzeichen ausschließen.
    Hilft das?
    Anzeige
    AW: Userform zum Kopieren Tabellenblatts
    18.10.2022 14:14:45
    XYZ
    Kann leider meinen vorherigen Beitrag nicht editieren. Die Userform besteht aus einer Textbox (nicht Listbox) und 2 Button.
    AW: Userform zum Kopieren Tabellenblatts
    18.10.2022 14:46:42
    snb
    Ein Upload einer Datei ist aufgrund von Firmenrestriktionen nicht möglich.
    Gilt auch für meine Lösung.
    AW: Userform zum Kopieren Tabellenblatts
    18.10.2022 16:03:29
    GerdL
    Hallo Nick!
    
    Private Sub CommandButton1_Click()
    Call Neckermann("Blatt Vorlage", CStr(TextBox1.Text))
    End Sub
    Private Sub CommandButton2_Click()
    Unload Me
    End Sub
    Private Sub Neckermann(Vorlage As String, shname As String, Optional X)
    shname = LegalSheetName(shname)
    If Len(shname) 
    Gruß Gerd
    Anzeige
    AW: Userform zum Kopieren Tabellenblatts
    18.10.2022 17:03:01
    XYZ
    Hallo Gerd,
    vielen Dank für die schnelle Antwort. Ich habe den Code einkopiert. Leider tut er noch nicht ganz was er soll. ☹
  • Mit den Sonderzeichen klappt wunderbar.

  • Lässt sich die Eingabe im Userform bereits bei der Erfassung des Namens nach 31 Zeichen stoppen? Aktuell können beliebig viele Zeichen erfasst werden und er schneidet dann den Namen des Tabellenblatts im Registernamen nach 31 Zeichen ab.

  • Mit dem Code kopiert er mir das aktuelle Tabellenblatt mit dem Button, aber nicht das Tabellenblatt „Vorlage“. Lässt sich das umstellen?

  • Kann man nach Ende des Blattkopierens das Userform automatisch schließen lassen und dafür eine Box mit „Erfolgreich kopiert“ einblenden, die man mit ok wegklickt?

  • Das Tabellenblatt „Vorlage“ ist in der Arbeitsmappe grundsätzlich ausgeblendet. Muss man im Code das Blatt für das Kopieren gesondert einblenden und nach Abschluss wieder ausblenden lassen?

  • Grüße
    XYZ
    Anzeige
    AW: Userform zum Kopieren Tabellenblatts
    18.10.2022 17:29:22
    GerdL
    Lässt sich die Eingabe im Userform bereits bei der Erfassung des Namens nach 31 Zeichen stoppen? Aktuell können beliebig viele Zeichen erfasst werden und er schneidet dann den Namen des Tabellenblatts im Registernamen nach 31 Zeichen ab.
    Stelle bei der TextBox1 die Eigenschaften im Eigenschaftenfenster
    MaxLength auf 31
    TabIndex auf 1
    Mit dem Code kopiert er mir das aktuelle Tabellenblatt mit dem Button, aber nicht das Tabellenblatt „Vorlage“. Lässt sich das umstellen?
    Ja, ersetze Tabelle1 durch Vorlage ; sorry. das war mein Fehler.
    Kann man nach Ende des Blattkopierens das Userform automatisch schließen lassen und dafür eine Box mit „Erfolgreich kopiert“ einblenden, die man mit ok wegklickt?
    CommandButton1_Click
    '.........
    '.........
    MsgBox "Erfolgreich kopiert!", vbOkOnly
    Unload Me
    End Sub
    Das Tabellenblatt „Vorlage“ ist in der Arbeitsmappe grundsätzlich ausgeblendet. Muss man im Code das Blatt für das Kopieren gesondert einblenden und nach Abschluss wieder ausblenden lassen? Wenn du es nur manuell ausgeblendet hast, nein.
    Gruß Gerd
    Anzeige
    AW: Userform zum Kopieren Tabellenblatts
    18.10.2022 20:43:07
    XYZ
    Vielen Dank. Funktioniert (fast) perfekt. ;-) Wenn ich den Code für die MessageBox "Erfolgreich kopiert" nach dem CommandButton1 einfüge erscheint die Meldung leider auch, wenn ich nichts bzw. einen bereits existierenden Namen eingebe und dann auf den Button klicke. Da erscheinen dann also 2 Meldungen. Lässt sich das korrigieren?
    Viele Grüße
    XYZ
    AW: Userform zum Kopieren Tabellenblatts
    18.10.2022 20:59:13
    GerdL
    Ja klar. Das war zu kurz gesprungen.
    
    Dim blnKopiert As Boolean
    Private Sub CommandButton1_Click()
    Call Neckermann("Blatt Vorlage", CStr(TextBox1.Text))
    If blnKopiert Then MsgBox "Erfolgreich kopiert!", vbOKOnly
    Unload Me
    End Sub
    Private Sub CommandButton2_Click()
    Unload Me
    End Sub
    Private Sub Neckermann(Vorlage As String, shname As String, Optional X)
    shname = LegalSheetName(shname)
    If Len(shname) 
    Gruß Gerd
    Anzeige
    AW: Userform zum Kopieren Tabellenblatts
    18.10.2022 16:17:38
    Oberschlumpf
    Hi,
    ja, danke, so etwas meinte ich mit BSP-Datei - da is nix drin, was firmenintern ist und nicht gezeigt werden dürfte.
    Aber Gerd hat ja auch eine Lösung gezeigt - das sollte dir helfen, oder?
    Ciao
    Thorsten
    AW: Userform zum Kopieren Tabellenblatts
    18.10.2022 16:21:54
    snb
    Reicht schon:
    
    Private Sub CommandButton1_Click()
    On Error Resume Next
    Sheets("Tabelle1").Copy , Sheets(Sheets.Count)
    Sheets(Sheets.Count).Name = textbox1
    Do Until Err.Number = 0
    Err.Clear
    Sheets(Sheets.Count).Name = InputBox("Name", textbox1 & " ist ungültig")
    Loop
    End Sub
    

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige