Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

verstecktes Sheet via Makro-Button kopieren
#1
Hallo,

ich weiß nicht ob die Überschrift so glücklich gewählt ist. Ich probiere das Problem mal zu schildern.

Ich habe ein Sheet welches als Vorlage dient mit dem Namen "Vorlage" in einem Excel File, welches auf Hide sein soll. Wenn ich auf einen Button drücke, soll das Sheet kopiert und an letzter sichtbarer Stelle eingefügt werden, mit selbst wählbarem Name.
Zusätzlich soll in einem anderen sichtbaren Sheet mit dem Namen "Hauptfile" in einer bestimmten Zelle der Name des gerade erzeugten Sheets eingefügt werden (Zelle B5). Beim nächsten mal soll der nächste Name in B6 geschrieben werden, danach B7 usw (Also das nächste freie Feld darunter). Bestenfalls ist der Name in dieser Zelle direkt ein Hyperlink zu dem jeweils erzeugten Sheet.
Der Button ist wenn möglich unter "Einfügen" anwählbar.
Wie man sich Buttons einfügt ist vielleicht sogar ein anderes Thema? könnte auch eine Tastenkombination sein.

Meine VBA Kenntnisse sind sehr begrenzt. Ich versuche mir via einem Youtubetutorial gerade die Grundlagen beizubringen.

Ich hoffe ich habe das Problem so genau wie möglich beschrieben. Falls noch offene Punkte sind beantworte ich diese natürlich gerne.


Ich bin über jegliche Hilfe dankbar einen Code hierfür zu finden.:) Falls nicht realisierbar oder zu viel Aufwand ist das verständlich für mich;)

Gruß,

Fredo
Antworten Top
#2
Hab mal ne Excel erstellt, wie das File aufgebaut wäre. (versteckt ist die Vorlage)


Angehängte Dateien
.xlsx   Test.xlsx (Größe: 10,24 KB / Downloads: 4)
Antworten Top
#3
Hallo Fredo,

folgender Code kommt in ein allgemeines VBA-Modul:


' **************************************************************
'  Modul:  Modul1  Typ = Allgemeines Modul
' **************************************************************


Option Explicit

Sub VorlageKopieren()
 Dim oWs As Worksheet
 Dim strName As String
 Const strVorlage As String = "Vorlage"
 
 strName = InputBox("Wie soll das neue Blatt heißen?", "Neues Blatt einfügen...")
 If Len(strName) Then
   On Error Resume Next
   Application.ScreenUpdating = False
   Set oWs = ActiveSheet
   With Worksheets(strVorlage)
     .Visible = xlSheetVisible
     .Copy After:=Sheets(Sheets.Count)
     .Visible = xlSheetHidden
   End With
   If Err.Number = 0 Then
     With Sheets(Sheets.Count)
       .Name = strName
       If Err.Number = 0 Then
         With Worksheets("Hauptfile")
           .Hyperlinks.Add Anchor:=.Cells(Rows.Count, 2).End(xlUp).Offset(1), _
                           Address:="", _
                           SubAddress:=strName & "!A1", _
                           TextToDisplay:=strName
         End With
       Else
         Application.DisplayAlerts = False
         .Delete
         Application.DisplayAlerts = True
         MsgBox Err.Description, vbInformation
         Err.Clear
       End If
     End With
   Else
     MsgBox "Die Vorlage """ & strVorlage & """ gibt es nicht!", vbInformation
     Err.Clear
   End If
   oWs.Activate
   Application.ScreenUpdating = True
   On Error GoTo 0
 End If
End Sub

Code eingefügt mit: Excel Code Jeanie

Wenn Du wieder im Excel bist (also nicht im VBA-Editor), kannst Du mit Alt+F8 das Makromenü aufrufen.
Hier kannst das gewünschte Makro auswählen, dann direkt starten oder unter Optionen eine Tastenkombination zuweisen.
In der Beispieldatei wurde einer Schaltfläche aus den Formularsteuerelementen (Entwicklertools > Einfügen) das Makro zugewiesen.

Gruß Uwe


Angehängte Dateien
.xlsm   verstecktes Sheet via Makro-Button kopieren.xlsm (Größe: 24,21 KB / Downloads: 3)
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • fredo
Antworten Top
#4
Hi Uwe,

erstmal Danke für den super Code. Funktioniert fast einwandfrei.

Einziges Manko ist, dass wenn man einen Name einfügt der ein Leerzeichen beinhaltet der Hyperlink nicht mehr funktioniert mit der Meldung:
"Reference is not valid."

Weißt du, ob man das irgendwie hinbiegen kann oder ob man einen Hyperlink nicht mit einem Leerzeichen erstellen kann?

Gruß
Fredo
Antworten Top
#5
Hallo Fredo,

ersetze
SubAddress:=strName & "!A1", _

mit
SubAddress:="'" & strName & "'!A1", _

Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • fredo
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste