Clever-Excel-Forum

Normale Version: Herausforderung Makro ändern per Dialog
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Ich bin auf eine Herausforderung gestoßen uzw. muss ich eine Excel Tabelle mit Makros narrensicher machen.

Folgendes Problem:

Die Excel Tabelle kann bestimmte Listen per Makro importieren und das Tabellenblatt entsprechend auf einen Vorgegebenen Text umbenennen,
zeitgleich Löscht es das alte Tabellenblatt. 

Code:
Sub DatenHolen2()
     Dim WBZiel As Workbook, ExportDatei As Variant
     Dim WBQuelle As Workbook, WSZiel As Worksheet
    
     Set WBZiel = ThisWorkbook
    
     'DateiÖffnen Dialog anbieten
     ExportDatei = Application.GetOpenFilename("Micrsoft Excel-Dateien (*.xlsx),*.xls", , "Bitte die Datei xyz.xls öffnen ...")
     ExportDatei = CStr(ExportDatei)
     If ExportDatei = "Falsch" Then Exit Sub
    
     'öffnen der ausgewählten Datei
     Set WBQuelle = Workbooks.Open(ExportDatei)
    
     'Kopieren der Tabelle „Tabelle1“ aus Datei „xyz“
    Set WSZiel = WBZiel.Worksheets.Add(After:=WBZiel.Sheets(WBZiel.Sheets.Count))
     WBQuelle.Worksheets("Planungsreport").Cells.Copy WSZiel.Cells(1)
    
     WBQuelle.Close False
     Set WBZiel = Nothing
     Set WBQuelle = Nothing: Set WSZiel = Nothing
    
     Application.DisplayAlerts = False
     Sheets("Planungsreport eFP").Select
    ActiveWindow.SelectedSheets.Delete
     Application.DisplayAlerts = True
     ActiveSheet.Name = "Planungsreport eFP"
End Sub


Soweit so gut jetzt kann es allerdings passieren das neue Namen hinzu kommen wofür theoretisch ein neues Makro erstellt werden muss.
Jetzt meine Frage kann mein Makro per Dialogbox ändern?

Ich würde mir das so vorstellen das man auf eine Schaltfläche Klickt und gefragt wird wie der Planungsreport heißen soll der eingegebene Name wird dann automatisch im Makro ediert.  

Ich hoffe Ihr habt Ideen wie ich so etwas umsetzten kann.
Soll diese Zeile variabel gemacht werden?


Code:
ActiveSheet.Name = "Planungsreport eFP"


Wie wird ein variabler Name übergeben? (aus einer Zelle, Name der Import-Datei, Inputbox etc)
Wenn man das Makro so variabel machen kann das Jede Komponente abgefragt wird das hätte sich das Problem auch geklärt.
Sprich es müsste abfragen welche Tabelle er löschen soll und wie die Neueigefügte heißen soll.
Zweite Möglichkeit wäre das er ein bereits vorhandenes Tabellen Blatt mit dem gleich Namen überschreibt.

Ich hoffe ich habe jetzt nicht zu viel Kauderwelsch geschrieben.
Hallo David,

schaue Dir mal den Befehl INPUTBOX an, der könnte Deine Frage lösen. Allerdings musst Du auch schauen, dass der Anwender immer korrekt schreibt, keine Leerzeichen Zuviel eingibt usw. "Planungsreport eFP" ist nun mal nicht "Planungsreport eFP " (Wobei man so was noch mit dem Befehl TRIM abfangen könnte)