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.

Herausforderung Makro ändern per Dialog
#1
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.
Antworten Top
#2
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)
Antworten Top
#3
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.
Antworten Top
#4
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)
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


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