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

VBA Code erzeugt ..Fehler 1004"

VBA Code erzeugt ..Fehler 1004"
01.08.2008 17:21:15
Lemmi
Hallo zusammen!
Hallo Franz ! fcs
ich habe von Dir vor einiger Zeit einen Code angepasst bekommen(Sub Start)!
Buchstaben und Zahlenfolge nimmt der Code ohne Probleme an. Füge ich ein Leerzeichen oder ähnliches ein, dann meldet der Code einen Fehler!
"Fehler - Nr. 1004 ist aufgetreten Der eingegebene Name ist ungültig"
Kann man den Code anpassen , das die " Zeichen" kein Problem machen?
siehe Datei:
https://www.herber.de/bbs/user/54276.xls
Gruß
Lemmi

21
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Code erzeugt ..Fehler 1004"
01.08.2008 17:39:00
ransi
HAllo
ohne das ich mir den Code jetzt zuGemüte geführt habe:
Aus der Hilfe rauskopiert:
Syntaxregeln für Namen
Die folgende Liste enthält die Syntaxregeln, die Sie beim Erstellen und Bearbeiten von Namen beachten müssen.
Gültige Zeichen Das ersten Zeichen eines Namens muss ein Buchstabe, ein Unterstrich (_) oder ein umgekehrter Schrägstrich (\) sein. Für alle weiteren Zeichen des Namens können Buchstaben, Ziffern, Punkte oder Unterstriche verwendet werden.
Hinweis Die Buchstaben "C", "c", "R" oder "r" können nicht als festgelegte Namen verwendet werden, da beide als Kurzform für das Auswählen einer Zeile oder Spalte für eine aktuell ausgewählte Zelle verwendet werden, wenn diese in dem Textfeld Name oder Gehe zu eingegeben werden.
Zellbezüge nicht erlaubt Namen dürfen nicht mit einem Zellbezug identisch sein, beispielsweise Z$100 oder R1C1.
Leerzeichen sind nicht gültig Leerzeichen sind nicht erlaubt. Verwenden Sie den Unterstrich (_) und Punkt (.) für die Trennung von Wörtern, wie Mehrwertsteuer_Betrag oder Erstes.Quartal.
Namenlänge Ein Name maximal 255 Zeichen enthalten.
Unterscheidung nach Groß-/Kleinschreibung Namen können Buchstaben in Groß- und Kleinschreibung enthalten. Excel unterscheidet bei Namen nicht zwischen Groß- und Kleinbuchstaben. Wenn Sie beispielsweise den Namen Umsatz erstellt haben und dann in derselben Arbeitsmappe den Namen UMSATZ erstellen, fordert Excel Sie zur Eingabe eines eindeutigen Namens auf.
.
.
.

ransi

Anzeige
AW: VBA Code erzeugt ..Fehler 1004"
01.08.2008 19:27:00
Lemmi
Hallo ransi!
...da hätte ich wohl selber drauf kommen müssen!
.... eine wahrscheinlich "dumme" und überflüssige Frage: Die Synatx kann nicht man nicht umgehen?
Für nachfolgende Bewertungen benötige ich das Leerzeichen und das Plus Zeichen!
Gruß
Lemmi

AW: VBA Code erzeugt ..Fehler 1004"
01.08.2008 20:34:00
Daniel
Hi
nein, die Syntax kannst du nicht umgehen, die NAMEN müssen schon der Konvention entsprechen.
wenn du in den Namensbildenden Zellen verbotene Zeichen haben willst, dann musst du diese im Code durch erlaubte Zeichen auswechseln, bspw mit der Replace-Funktion.
die entsprechende Zeile würde dann so aussehen:
.Name = "Auswahl_" & Replace(Fundort.Value, " ", "_")
falls du mehrere verbotene Zeichen verwenden willst, musst du die Replace-funktionen ineinenander schachteln.
das ganze musst du dann aber auch konsequent und u.U. auch in Formeln beachten.
Gruß, Daniel

Anzeige
AW: VBA Code erzeugt ..Fehler 1004"
01.08.2008 21:40:00
Lemmi
Hallo Daniel,
ich habe noch einmal nachgeschaut !
In meinen folgenden Weiterverarbeitungen kann ich auf den Punkt verzichten!
Ich würde gerne das Pluszeichen und / einbinden wollen!
Ein Leerzeichen kann ich durch den _ ersetzen!
Wenn das schon eine Randbedingung zuviel ist könnte man noch / Zeichen als erlaubte Syntax weglassen!
Das heißt das Pluszeichen ist in der Rangfolge am wichtigsten!
Danach kommt /
Damit muss, wie Du geschrieben hast, ineinander verschachtelt werden! .... da brauch ich noch Eure Hilfe!
Gruß
Lemmi

AW: VBA Code erzeugt ..Fehler 1004"
02.08.2008 00:10:00
Daniel
HI
du kannst eigentlich beliebig viele Zeichen durch andere ersetzen.
du musst halt nur wissen, welche Zeichen erlaubt und welche verboten sind.
dabei kann auch ein verbotenes Zeichen durch mehrere erlaubte ersetze werden, gib einfach mal dieses Beispiel im Direktfenster ein:
?replace(replace(Replace("xxx +/xxx", " ", "_"),"+", "-P-"), "/", "-7-")
Gruß, Daniel

Anzeige
AW: VBA Code erzeugt ..Fehler 1004"
02.08.2008 08:00:13
Lemmi
Hallo Daniel,
vielleicht verstehe ich noch nicht alles.
d.h.
'.Name = "Auswahl_" & Fundort.Value
bedeutet Ausführung ohne Zulassung von Sonderzeichen ...ist das richtig?
'.Name = "Auswahl_" & Replace(Fundort.Value, " "+ "-P-")
Ausführung mit Zulassung von Sonderzeichen, das-P- wird ersetzt durch +...ist das richtig?
.Name = "Auswahl_" & Replace(Replace(Replace("xxx +/xxx", " ", "_"), "+", "-P-"), "/", "-7-")
Ausführung mit Zulassung von Sonderzeichen, das -7- wird ersetzt durch / das-P- wird ersetzt durch +
was bedeutet dann ("xxx +/xxx", " ", "_")
....oder habe ich da noch etwas nicht verstanden?
Ich würde gerne die Zeilen mit diesen Zulassungen haben!
Zulassung von + erste Möglichkeit
Zulassung von + und / zweite Möglichkeit
Zulassung von + / und Leerzeichen dritte Möglichkeit
Die Zeichen sind immer zwischen Buchstaben und Zahlen eingebunden.
Das erlaubte Zeichen . benötige ich noch!
Benennungsbeispiele:
z.B. A+B 123
z.B. A 123
z.B. A/B
z.B. A/B 12.3
z.B. A/B 123+CD
Gruß
Lemmi

Anzeige
AW: VBA Code erzeugt ..Fehler 1004"
02.08.2008 08:07:42
Lemmi
Hallo Daniel,
" Zitat"...du musst halt nur wissen, welche Zeichen erlaubt und welche verboten sind."
.. wie oder wo kann ich die Zeichen sehen!
Gruß
Lemmi

AW: In Namen erlaubte/verbotene Zeichen
02.08.2008 10:05:43
Erich
Hallo Vorname(?),
welche Zeichen erlaubt sind, hat Ransi dir doch schon in der erstern Antwort in diesem Thread
per Kopie aus der Excel-Hilfe ("Informationen zu Beschriftungen und Namen in Formeln") geschrieben.
(Den Hilfeabschnitt findest du, wenn du nach Name suchst.)
Wenn in Zelle A1 der Text "A/B 12.3+CD" steht, kannst du den Text so nicht als Namen verwenden -
er enthält die unzulässigen Zeichen /, " " (Leerzeichen) und +
Du musst also bei der Namensdefinition diese Zeichen durch etwas zulässiges ersetzen, z. B. mit
....Name=Replace(Replace(Replace(Range("A1"), " ", "_0_"), "/", "_7_"), "+", "_3_")
Damit wird zu dem Text "A/B 12.3+CD" der Name "A_7_B_0_123_3_CD" erzeugt.
Diesen Namen musst du in deinen Formeln dann verwenden.
Dass Rechenzeichen wie +-*/ in Namen verboten sein müssen, ist ganz klar:
Namen kommen in Formeln vor wie z. B. =Menge*Preis
Hier soll Menge mit Preis multipliziert werden. Wäre "*" in Namen als Zeichen zugelassen,
könnte "Menge*Preis" auch ein einiger Name sein. Das wäre also mehrdeutig.
Der Punkt ist in Namen - wie du oben bei Ransi lesen kannst - ab der 2. Stelle erlaubt.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: In Namen erlaubte/verbotene Zeichen
02.08.2008 10:55:07
Lemmi
Hallo Erich G.,
irgendwie stekt bei mir der Wurm drin. Ich bekomme immer noch eine Fehlermeldung! (Fehler 1004)
Erich oder Daniel könntet Ihr die Code- Zeile in die Datei einbinden und nachsehen! ....und dann hochladen!
Vielen Dank im Voraus!
Gruß
Lemmi

AW: In Namen erlaubte/verbotene Zeichen
02.08.2008 13:01:10
Erich
Hallo Vorname(?),
du brauchst in Start nur die Zeile
.Name = "Auswahl_" & Fundort.Value
zu ersetzen durch
.Name = "Auswahl_" & Replace(Replace(Replace(Fundort, " ", "_0_"), "/", "_7_"), "+", "_3_")
Natürlich kannst du die jetzt jeweils drei Zeichen langen Replace-Texte durch andere ersetzen.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
P.S.: Ich heiße nicht "Erich G." (das ist nur mein Herber-Username) - mein Name ist Erich (siehe Gruß)
Das G. soll zwischen verschiedenen Erichs hier unterscheiden helfen.

Anzeige
AW: In Namen erlaubte/verbotene Zeichen
02.08.2008 14:04:36
Lemmi
Hallo Erich,
es scheint nun endlich zu funktionieren! ...allerdings nur der erste Teil (Marko Start)
nach Auswahl der ersten Drop Down (Arbeitsblatt K.-Werkstoffe)
wird ein Fehler im Private Sub Worksheet_Change(ByVal Target As Range) angezeigt!
Laufzeitfehler 1004 mit Meldung
Die Methode Range für das Objekt Application ist fehlgeschlagen!
Die zweite Drop Down Auswahl ist nicht mehr möglich!
Sie bitte auch Datei!:
https://www.herber.de/bbs/user/54288.xls
Gruß
Lemmi

AW: In Namen erlaubte/verbotene Zeichen
02.08.2008 19:44:45
Erich
Hallo Vorname,
oben hatte ich geschrieben:
"Damit wird zu dem Text "A/B 12.3+CD" der Name "A_7_B_0_123_3_CD" erzeugt.
Diesen Namen musst du in deinen Formeln dann verwenden."
Das gilt natürlich nicht nur in deinen Formeln, sondern auch in VBA.
Range("A/B 12.3+CD") geht nicht - "A/B 12.3+CD" kann ja kein Name sein.
Du müsstest überall wo der Name vorkommt, mit dem erzeugten Namen "A_7_B_0_123_3_CD" arbeiten.
Da du auf bestimmte unzulässige Zeichen nicht verzichten kannst, sollstest du vielleicht ganz auf Namen verzichten.
Stattdessen könntest du in "Start" eine Hilfstab. anlegen mit zwei Spalten:
A: Bezeichnung (=vorher ungültiger Name)
B: Bereich, der zur Bezeichnung gehört (biheriger Bezug des Namens)
Dann kannst du evtl. leichter mit dieser Hilfstab. arbeiten.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
P.S.: Zu "Vorname" schau doch mal in https://www.herber.de/forum/faq.htm
und lies, was dort zu NickNames steht.
Ist es aufwändiger für dich, den Vornamen preiszugeben, als für uns, deine Fragen zu beantworten?

Anzeige
AW: In Namen erlaubte/verbotene Zeichen
02.08.2008 21:09:00
Lemmi
Hallo Erich,
wenn man alles im allem Sieht müsste man ja alles immer und immer wieder anpassen. Das ist viel zu "Störanfällig". Die Datensatz- Anzahl ist viel zu variabel ! (Anzahl größer 500)!
deshalb kommt auch nicht eine Tabelle in dem Code in frage!
Eine andere Lösung gibt es nicht?
Vielleicht noch mal mein Vorhaben!
Meine Abfrage soll letztendlich über max 3-4 Abfragen die Auswahl der Datensätze stark reduzieren!
z. B. Auswahl Kunsstoffe oder Metall oder Verbundwerkstoffe...erste Abfrage
Metalle werden untergliedert in NE- Metall und und E- Metalle ...zweite Abfrage
......Stähle und Edelstähle ..dritte Ab.
..... Materialbezeichnung mit Kennwerten (Verweis) werden zugewiesen!
kann man dazu Kaskaden Abfrage_Zuweisung!
Wie könnte man dies realisieren?
Ps. Lemmi möchte ich aus Arbeitstechnischer sich behalten! Jeder User hat bei uns unterschreiben das er nicht "Privat" im Netz ist ... wenn es mal ganz Dumm kommt.....!
Gruß
Lemmi

Anzeige
AW: In Namen erlaubte/verbotene Zeichen
03.08.2008 00:04:44
Erich
Hi,
"deshalb kommt auch nicht eine Tabelle in dem Code in frage!"
Das geht mir auch so.
Ich meinte NICHT, dass im Code eine Tabelle stehen sollte,
sondern dass der Code eine Tabelle erstellen sollte
(so wie er bisher versucht, die Namen zu definieren).
Grüße von Erich aus Kamp-Lintfort

AW: In Namen erlaubte/verbotene Zeichen
04.08.2008 17:11:00
Lemmi
Hallo Erich,
ich habe noch einmal in einem Bild dargestellt welche Auswahl letzt endlich ich durchführen möchte!
Vielleicht hast Du ja noch eine andere Idee wie man so eine Auswahl umsetzen kann und die "Sonderzeichen" mit verarbeiten kann?
https://www.herber.de/bbs/user/54329.xls
Gruß
Lemmi

Anzeige
AW: In Namen erlaubte/verbotene Zeichen
04.08.2008 23:38:04
Daniel
HI
wenn das dein realbeispiel ist, dann würde ich 3 Stufen bilden, jede Stufe bekommt einen 2stelligen Buchstabencode, der dann entsprechend zu einem ID-Begriff zusammen gesetzt wird.
nach diesem ID-Begriff kannst du dann deine Tabelle Sortieren und Filtern.
insgesamt brauchst du also 4 Spalten (3 für die Gruppen und einen zusammengesetzten)
in der Hauptgruppe hättest du dann die Elemente:
St - Stahl
Eg - Eisenguss
Ne - Nichteisenmetalle
An - anorganische Werkstoffe
Po - Polymere
in der Ersten Untergruppe dann (für Stahl)
Bd - Baustahl
We - Werkzeugstahl
in der ersten Untergruppe für Nichteisenmetalle dann
Le - Leichtmetall
Sw - Schwermetall
für den Rest dann ähnlich.
die ID-Kennung für Automatenstahl wäre dann "StWeAu" (Stah-Werkzeugstahl-Automatenstahl)
für Halbleiter dann : AnHa (Anorganische Werkstoffe - Halbleiter)
hier entfällt dann eine Untergruppe.
damit müsste sich was aufbauen lassen und auch ggf eine Namenstruktur bilden lassen.
Gruß, Daniel

AW: In Namen erlaubte/verbotene Zeichen
05.08.2008 21:36:23
Lemmi
Hallo Daniel,
ist eine möglicher Ansatz der mir schon weiterhilft!
Das was ich noch nicht ausreichen beschreiben habe, ist die Eigentliche Materialartikelbezeichnung!
Schaut einfach mal auf Eure Kunststoff- Gegestände im Haushalt, Sie entahlten für den Fachmann gut zu lesen eben eine Normgerechte Bezeichnung zum Beispiel >PC/ABSPA 6.6 - GF30 Da ist es Schlecht alles gegenüber Dritten anders erscheine zu lassen!
" Nur weil Sonderzeichen" ... nicht so einfach einzubinden sind!
...ich werden demnächst mal etwas Neues aufsetzen! Vielleicht habe noch eine praktikabele Idee!
Vielen Dank noch einmal! .. bis demnächst!
Gruß
Lemmi

Beispiel:
02.08.2008 12:39:35
ransi
HAllo Lemmi
Ich bezieh mich jetzt mal hierrauf:

Benennungsbeispiele:
z.B. A+B 123
z.B. A 123
z.B. A/B
z.B. A/B 12.3
z.B. A/B 123+CD
.


Wenn ich das alles richtig verstanden habe, sollte das funtionieren.:

Option Explicit

Public Sub test()
MsgBox machs("A/B 123+C.D")
End Sub

Public Function machs(sText As String) As String
'Wandelt einen beliebigen String in einen gültigen Namen
'Prüfunf ob der Name schon existiert ist nicht eingebaut.
Dim I As Integer
If Not Left(sText, 1) Like "[A-Za-z\]" Then Left(sText, 1) = "_"
For I = 2 To Len(sText)
    If Not Mid(sText, I, 1) Like "[A-Za-z0-9_.]" Then Mid(sText, I, 1) = "_"
Next
machs = sText
End Function

ransi

Beispiel: kl. Korrektur
02.08.2008 12:48:00
ransi
HAllo
Left(strs,1) kann man nicht ändern.
Mit Mid() gehts.
Option Explicit

Public Sub test()
MsgBox machs("123")
End Sub

Public Function machs(sText As String) As String
'Wandelt einen beliebigen String in einen gültigen Namen
'Prüfunf ob der Name schon existiert ist nicht eingebaut.
Dim I As Integer
If Not Left(sText, 1) Like "[A-Za-z\]" Then Mid(sText, 1, 1) = "_"
For I = 2 To Len(sText)
    If Not Mid(sText, I, 1) Like "[A-Za-z0-9_.]" Then Mid(sText, I, 1) = "_"
Next
machs = sText
End Function

ransi

AW: VBA Code erzeugt ..Fehler 1004"
02.08.2008 12:52:00
Daniel
Hi

'.Name = "Auswahl_" & Replace(Fundort.Value, "+", "-P-")
Ausführung mit Zulassung von Sonderzeichen, das-P- wird ersetzt durch +...ist das richtig?


hi also das bedeutet, daß wenn in der Zelle der Wert "A+B" drinsteht, der Zellbereich den Namen "Auswahl_A-P-B" bekommt.


was bedeutet dann ("xxx +/xxx", " ", "_")


das ist nur ein Beispieltext zum zu Zeigen, wie die Replace-Funktion funktioniert.
in dem Fall ist das der Ausgangstext, in dem bestimmte Zeichenfolgen durch andere ersetzt werden.
lies einfach mal die Hilfe zum Thema "Replace" durch, vielleicht verstehts du dann alles einwenig besser.
Gruß, Daniel

AW: VBA Code erzeugt ..Fehler 1004"
02.08.2008 14:08:00
Lemmi
Danke Daniel für Deine Hilfe!
Gruß
Lemmi

188 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige