Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1852to1856
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

2 InputBoxen nacheinander abarbeiten

2 InputBoxen nacheinander abarbeiten
04.11.2021 16:57:23
HeinzH
Hallo Im Forum,
Habe 2 InputBoxen
InputBox 1 schreibt mir den Wert in Sheets("Vorlage") Range B1 Funktioniert wie gewollt.
InputBox 2 hier wird Sheets "Vorlage" kopiert und nach dem neuen Sheets-Namen gefragt.
Hier wird gefragt nach dem neuen Tab.Namen, ABER es kopiert den Sheets schon bevor der neue Sheets-Namen eingetragen wird.
Hier dürfte die Reihenfolge nicht richtig sein.
Könnte mir dazu bitte jemand weiterhelfen?
Wenn ich InputBox abbrechen kommt immer ein Debbufehler "ActiveSheet.Name = NewName"
Danke
Sg, Heinz
  • Option Explicit
    
    Sub NeuesTabBlatt()
    Dim NewName As String
    Dim Kalenderwoche As Variant
    ActiveSheet.Unprotect
    Kalenderwoche = Application.InputBox("Bitte geben Sie die Kalenderwoche ein.", "Kalenderwoche Eingabe", , Type:=1)
    If Kalenderwoche = False Then
    Exit Sub
    Else
    Sheets("Vorlage").Activate
    Range("B1") = Kalenderwoche
    End If
    'Call Ersetzen ' ersetzt #BEZUG! Vom Makro Fehler_ersetzen
    ActiveSheet.Copy Before:=ActiveSheet
    NewName = InputBox("Geben Sie einen Tabellenblattnamen ein")
    'Exit Sub
    ActiveSheet.Name = NewName
    Range("A1:I44").Copy
    Range("A1:I44").PasteSpecial Paste:=xlValues
    Application.CutCopyMode = False
    ActiveSheet.Buttons("Schaltfläche 3").Delete
    ActiveSheet.Range("K5:Q41").ClearContents
    Application.DisplayAlerts = False
    Worksheets("1").Delete ' Blatt (1) löschen
    Application.DisplayAlerts = True
    ActiveSheet.Protect
    End Sub
    

  • 5
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: 2 InputBoxen nacheinander abarbeiten
    04.11.2021 20:45:52
    ralf_b
    du solltest erstmal prüfen ob in NewName ein wert enthalten ist und dann ob das Blatt schon vorhanden ist. vor dieser Zeile ActiveSheet.Name = NewName
    AW: 2 InputBoxen nacheinander abarbeiten
    05.11.2021 09:46:35
    HeinzH
    Hallo Ralf,
    Danke für deine Hilfestellung.
    Habe jetzt rumgebastelt, und eine ganz praktische Lösung gefunden.
    Hier wird vor dem kopieren nach dem neuen Tabellenblatt Namen gefragt und in B1 eingetragen,
    Der neue Name beginnt mit "KW_ " und der Wert von B1
  • Option Explicit
    
    Sub NeuesTabBlatt()
    Dim NewName As String
    Dim Kalenderwoche As Variant
    ActiveSheet.Unprotect
    Call Formel_einfügen
    'Call Ersetzen ' ersetzt #BEZUG! Vom Makro Fehler_ersetzen
    Kalenderwoche = Application.InputBox("Bitte geben Sie die Kalenderwoche ein.", "Kalenderwoche Eingabe", , Type:=1)
    If Kalenderwoche = False Then
    Exit Sub
    Else
    Sheets("Vorlage").Activate
    Range("B1") = Kalenderwoche
    End If
    ActiveSheet.Copy Before:=ActiveSheet
    NewName = "KW_ " & Sheets("Vorlage").Range("B1") '("Geben Sie einen Tabellenblattnamen ein")
    ActiveSheet.Name = NewName
    Range("A1:I44").Copy
    Range("A1:I44").PasteSpecial Paste:=xlValues
    Application.CutCopyMode = False
    ActiveSheet.Buttons("Schaltfläche 3").Delete
    ActiveSheet.Range("K5:Q41").ClearContents
    Application.DisplayAlerts = False
    'Worksheets("1").Delete ' Blatt (1) löschen
    Application.DisplayAlerts = True
    ActiveSheet.Protect
    End Sub
    

  • Gruß, Heinz
    Anzeige
    AW: 2 InputBoxen nacheinander abarbeiten
    05.11.2021 19:02:31
    ralf_b
    Hallo Heinz,
    schön das du eine Lösung gefunden hast. Gibt es dazu deinerseits noch eine Frage?
    Von mir aus aber schon. Was passiert denn wenn du das Makro ein zweites Mal aufrufst?
    Warum schreibst du in die Vorlage einen Wert? Den Namen hast du schon in einer Variablen gesichert. Also wieso der Umweg über das Vorlagenblatt B1?
    Sheets("Vorlage").Activate ist unnötig. Du nutzt die Notation "Sheets("Vorlage").Range(....." bereits weiter unten. Das geht auch schon früher.
    Mittels with - end with Block kannst du auch auf deren Range zugreifen ohne das immer davor zu schreiben.
    
    with Sheets("Vorlage")
    .Range("xy") bla bla
    end with
    

    Anzeige
    AW: 2 InputBoxen nacheinander abarbeiten
    05.11.2021 19:52:14
    HeinzH
    Hallo Ralf,
    
    Sheets("Vorlage").Activate ist unnötig. Du nutzt die Notation "Sheets("Vorlage").Range(....." bereits weiter unten. Das geht auch schon früher.
    Mittels with - end with Block kannst du auch auf deren Range zugreifen ohne das immer davor zu schreiben.
    
    Okay Danke habe ich geändert.
    
    Warum schreibst du in die Vorlage einen Wert? Den Namen hast du schon in einer Variablen gesichert. Also wieso der Umweg über das Vorlagenblatt B1?
    
    Den Wert brauche ich in B1, hier wird die Kalenderwoche eingetragen, damit die Tage in Spalte A berechnet werden.
    Recht herzlichen Dank, für deine Bemühungen.
    Gruß Heinz
    Anzeige
    AW: 2 InputBoxen nacheinander abarbeiten
    05.11.2021 22:19:16
    ralf_b
    Nunja Heinz,
    das mit B1 ist ja gut und schön. Warum schreibst du die KW nicht gleich in das neue Blatt? Auch das geht nachdem es erstellt wurde. In der Vorlage, ist die Kalenderwoche doch ziemlich egal.

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige