Benötige Hilfe bei Excel Makro

DerPeppels79

New member
Themenstarter
Registriert
8 Juni 2008
Beiträge
245
Hallo zusammen,

bräuchte kurz Hilfe bei einem Excel Makro. Es soll helfen alle definierten Namen in einem Excel File zu löschen. Habe diesen Code gefunden und er geht auch wunderbar.

Code:
Option Explicit 

Sub delete_external_names() 
'variable declarations 
Dim response As Integer 
Dim msg As String 
Dim flag As Boolean 
Dim defined_name As Object 
  flag = True 
  ' Check if external links were found. 
  ' Loop through each defined name in workbook. 
  For Each defined_name In ActiveWorkbook.Names 
     ' If a [ was found, then the name has a link. 
     If InStr(defined_name.RefersTo, "[") > 0 Then 
        flag = False ' set flag to False indicating a link was found 
        ' Message displayed to ask if you want to delete name. 
         msg = "Do you want to delete the defined name " & "'" & _ 
           defined_name.Name & "'" & Chr(13) & " that refers to '" & _ 
            defined_name & "' ?" 
         ' Delete the defined name. 
         If MsgBox(msg, 292) = vbYes Then defined_name.Delete 
      End If 
  Next defined_name  ' get the next defined name 
  If flag = True Then  ' if flag was not set, display message below 
     MsgBox "No defined names with external were links found." 
  End If 
End Sub

Nur bei über 500 Namen ständig auf "Ja" klicken ist ätzend :( . Wie kann ich den Fokus auf "Nein" setzen, damit wäre ein schnelles vorankommen per Enter Taste möglich. Noch besser wäre eine Option, die einfach alle Namen, welche eine externe Quelle refernzieren, löscht.
Bin absoluter Makro Noob.
Schonmal tausend Dank!
Pep
 
Moin,

probier mal vor dem Löschen folgendes einzubauen:

Code:
Application.DisplayAlerts = False

Damit sollten die Sicherheitsabfragen ausgeschaltet werden.
 
DerPeppels79' schrieb:
If MsgBox(msg, 292) = vbYes Then defined_name.Delete
Eigentlich sollte es so schon richtig sein, du könntest mal versuchen 292 durch 36 oder 458 zu ersetzen:

4 = vbYesvbNo
+
32 = Question
+
0 = ersten Knopf ist default ; 256 zweiter Knopf ist default ; 512 dritter Knopf ist default

weiterführendes in der MSDN
 
Danke erstmal!

Suchen und ersetzen geht leider nicht, da es sich nicht um Zelleninhalte sondern eher um eine Art Variable handelt.

Ich versuche mit den Nummern zu experimentieren (Danke thatgui). Hätte gedacht, dass es etwas gibt wie: msgbox.setFocus = Yes oder so... :confused:

Edith: Funktioniert mit den numerischen Werten wunderbar :) . Leider steigt das Makro nach der ersten Schleife mit Fehler 400 aus :(
Optimierung geht also weiter.

Gruß
 
  • ok1.de
  • IT Refresh - IT Teile & mehr
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben