Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
884to888
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
884to888
884to888
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Namen mit Platzhaltern im VB code suchen

Namen mit Platzhaltern im VB code suchen
10.07.2007 08:11:00
Robert
Hallo,
ich habe mir mal wieder unzählige ungültige Namen und Bezüge in meine Excel Datei eingeschleppt.
und würde diese gerne löschen. Ich wollte dies über Platzhalter machen (z.B. if Nm.RefersTo="*N/A*" Nm.delete), da ich auch gültige Namen habe die nicht gelöscht werden sollen, dies scheint aber nicht zu funktionieren. Der code hat keinen Namen identifiziert, obwohl in der datei hunderte ungültige Namen/Bezüge sind. Was mache ich falsch, bzw. habt ihr Erfahrungen wie man dies effizient händeln kann?
Bsp.:
Nm.Name: Roheisenlager!
Nm.RefersTo: BATEAU ={#N/A,#N/A,FALSE,"Tabl. G1";#N/A,#N/A,FALSE,"Tabl. G2"}
Vielen dank im Voraus
Robert

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Namen mit Platzhaltern im VB code suchen
10.07.2007 09:10:55
Luschi
Hallo Robert,
wenn Du alle Namen rauspicken willst, die einen ungültigen Bezug haben (in dt. !#BEZUG!),
dann so:

For Each na In ThisWorkbook.Names
If LCase(na.RefersTo) Like "*![#]ref!" Then
MsgBox na.Name & vbCrLf & na.RefersTo
End If
Next

Gruß von Luschi
aus klein-Paris

AW: Namen mit Platzhaltern im VB code suchen
10.07.2007 10:13:39
Robert
Hallo Luschi,
danke für deine schnelle Antwort. Ich finde mit dieser Anweisung einen Großteil der Plagegeister, allerdings entgehen mir noch die Namen ohne "ref" (siehe mein Bsp. in der Ursprungsnachricht).
Ich hab versucht dein Bsp. zu modifizieren, so dass "N/A" Suchgrundlage ist. Wieso finde ich da nichts?
Grüße
Robert

Anzeige
AW: Namen mit Platzhaltern im VB code suchen
11.07.2007 06:26:00
Luschi
Hallo Robert,
so einen Namensreferenz: Nm.RefersTo:
BATEAU ={#N/A,#N/A,FALSE,"Tabl. G1";#N/A,#N/A,FALSE,"Tabl. G2"}
kriege ich nicht hin.
Bei mir siehr das höchstens so aus:
="BATEAU ={#N/A,#N/A,FALSE,""Tabl. G1"";#N/A,#N/A,FALSE,""Tabl. G2""}"
Und da klappt dann:

For Each na In ThisWorkbook.Names
If LCase(na.RefersTo) Like "*[#]n/a*" Then
MsgBox na.Name & vbCrLf & na.RefersTo
End If
Next

Gruß von Luschi
aus Klein-Paris
PS: Mache doch mal eine Demoversion draus. Schmeiß den Inhalt der Tabellen raus und stelle sie dann hier auf den Herber-Server.
Ich habe vorige Woche eine Exceldatei erhalten, da waren über 1500 Namen mit unnsinigen Bezeichnungen und den verrücktestes Referenzen drin.
Da mußte ich auch 'ne Weile knobeln, bis ich alle per Vba entfernt hatte.

Anzeige
AW: Namen mit Platzhaltern im VB code suchen
11.07.2007 08:36:00
Robert
Hallo Luschi,
also er zeigt mir jetzt noch einen Großteil der restlichen Namen an und ich habe gleich versucht diese noch zu löschen mit:

Sub UngültigeNamen_löschen2()
Set NewSheet = Worksheets.Add
i = 1
For Each Nm In ThisWorkbook.Names
If LCase(Nm.RefersTo) Like "*[#]n/a*" Then
Nm.Delete
End If
i = i + 1
Next
NewSheet.Columns("A:B").AutoFit
End Sub


darauf hin bekomme ich schon beim ersten Namen dieFehlermeldung : "der eingegebene Name ist ungültig"
(1. Name RefersTo = '={#N/A,#N/A,FALSE,"Tabl. A1";#N/A,#N/A,FALSE,"Tabl. A1 b";#N/A,#N/A,FALSE,"Tabl. A2";#N/A,#N/A,FALSE,"Tabl. A2-1";#N/A,#N/A,FALSE,"Tabl. A2-2"})
obwohl er mir diesen eben noch als Name aufgelistet hat?
Ich würde dir die Datei gerne auf den Server stellen. da ich dies noch nicht gemacht habe sag mir bitte wie ich die Datei umwandeln muss, damit diese der Server akzeptiert. Mit xla und zip klappts jedenfalls nicht.
Viele Grüße
Robert

Anzeige
AW: Namen mit Platzhaltern im VB code suchen
11.07.2007 09:00:02
Luschi
Hallo Robert,
mit zip-Dateien klappt es schon, doch es gilt eine allgemeine Dateigröße <=300 kByte.
Oder Du kopierst diese Zeichenkette in eine Excel-Zelle und dann kannst Du sie dorthin schicken.
=ZEICHEN(102)&ZEICHEN(97)&ZEICHEN(109)&ZEICHEN(46)&ZEICHEN(110)&ZEICHEN(117)&ZEICHEN(99)&ZEICHEN(107) &ZEICHEN(64)&ZEICHEN(116)&ZEICHEN(101)&ZEICHEN(108)&ZEICHEN(101)&ZEICHEN(50)&ZEICHEN(46)&ZEICHEN(100) &ZEICHEN(101)
Gruß von Luschi
aus klein-Paris

AW: Namen mit Platzhaltern im VB code suchen
11.07.2007 11:06:37
Robert
OK, ich hatte Leerzeichen im Verzeichnisbaum der datei, deshalb hat es nicht geklappt.
Du kannst die Rohdatei mit den restlichen Namen (die mit REF sind schon gelöscht!!) unter:
https://www.herber.de/bbs/user/44021.zip
finden. Ich habe in einem Blatt alle Namen auflisten lassen, bin gespannt...
PS: ich habe alle Blätter der Datei drin gelassen, da best. Namen Blattbezogen sind und diese umbenannt, also nicht über die Bezeichnungen wundern.
Danke im Voraus
Grüße
Robert

Anzeige
AW: Namen mit Platzhaltern im VB code suchen
11.07.2007 14:45:06
Robert
Nochmal Hallo Luschi,
ich habe sie alle wegbekommen!! Der Großteil der ungültigen Namen war in zwei Arbeitsmappen, die ich mir aus einer externen datei reinkopiert habe (ist mir eine Lehre).
Also, ich musste mehrere Wege beschreiten. Anscheinend gibt es zum Einen mappenbezogene Namen, die ich über "Einfügen-Namen-Definieren" manuell gelöscht habe. Dazu musste ich sie aber erstmal mit Nm.visible=true sichtbar machen.
Danach konnte ich über deine kleinen Anweisungen die ungültigen Namen mit REF und n/a löschen.
übrig blieben von 6500 nur noch eine Handvoll die ich selber erstellt habe.
klasse und vielen Dank für deine Hilfe
Grüße
Robert
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige