Anzeige
Archiv - Navigation
1384to1388
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

Select Case Zellnamen

Select Case Zellnamen
21.10.2014 17:32:55
KlausF

Hallo Forum,
wie kann ich mit Select Case Zellnamen abfragen?
Ich habe z.B. 3 Zellen mit Namen Klaus, Peter und Rolf
Select Case ?????
Case "Klaus", "Peter"
Case "Rolf"
Case Else
End Select
Select Case Target.Name oder ähnliches funktioniert nicht
Gruß
Klaus

36
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Select Case Zellnamen
21.10.2014 17:35:42
Hajo_Zi
Hallo Klaus,
Range("Klaus")

AW: Select Case Zellnamen
21.10.2014 17:46:25
KlausF
Hallo Hajo,
danke für die Antwort, aber ich brauche die Eingangs-Select Case Abfrage
(dort, wo die Fragezeichen stehen)
Mit Select Case Target.Range("A1").Address(False, False, xlA1) kann ich
z.B. die Festadresse abfragen: Case "B10", "C10" usw
Das klappt aber nicht mit einem Zellnamen ...
Gruß
Klaus

AW: Select Case Zellnamen
21.10.2014 17:53:02
hary
Moin
Nutzt du den Code in Code der Tabelle??
dann: Select Case Target.Name.Name
oder im Makro dann: Select Case ActiveCell.Name.Name
also Name verdoppeln
gruss hary

Anzeige
Methode fehlgeschlagen
21.10.2014 18:02:14
KlausF
Hallo Hary,
Meldung: die Methode Name für das Objekt Range ist fehlgeschlagen.
Ich benutze den Code im Code der Tabelle, also Select Case Target.Name.Name
Gruß
Klaus

AW: Methode fehlgeschlagen
21.10.2014 18:43:16
Ewald
Hallo,
wie wärs so
On Error Resume Next
Select Case Target.Name.Name
Case "Klaus"
MsgBox "Gefunden Klaus"
Case "Peter"
MsgBox "Gefunden Peter"
Case "Rolf"
MsgBox "Gefunden Rolf"
End Select
Gruß Ewald

AW: Methode fehlgeschlagen
21.10.2014 19:03:14
Ewald
Hallo,
zuschnell abgeschickt,
Dies funktioniert aber nur wenn Target genau so groß ist wie der Bereich des Namens.
Name nur eine Zelle, Target auch nur eine Zelle
Name drei Zellen, Target muß auch diese drei Zellen sein.
Wenn du ein Ergebnis haben willst ob eine Zelle in Target zu einem Namen gehört, mußt du Target durchlaufen.
Gruß Ewald

Anzeige
AW: Select Case Zellnamen
21.10.2014 17:55:34
{Boris}
Hi Klaus,
wann soll denn die Abfrage kommen? In einem Ereignismakro? Wenn ja: Welches genau?
Falls es so sein sollte:
Select Case Target.Name.Name
Also 2 mal Name ;-)
VG, Boris

AW: Zum besseren Verständnis
21.10.2014 18:18:45
KlausF
Hallo Boris und Hary,
Name.Name funktioniert leider nicht (??)
Ich habe die Datei von dieser Forums-Frage heruntergeladen
https://www.herber.de/forum/messages/1387690.html
und mir den Code zum Lernen mal angesehen. Dann habe ich die 3 angesprochenen Zellen
mit Namen versehen um flexibel zu sein. Die Worksheet_Change funktioniert aber mit Name.Name nicht.
Wo liegt der Fehler?
Veränderte Datei:
https://www.herber.de/bbs/user/93269.xls
Gruß
Klaus

Anzeige
Laufzeitfehler 1004
21.10.2014 18:29:01
{Boris}
Hi Klaus,
wenn Target kein benannter Bereich / keine benannte Zelle ist, dann läuft die Abfrage auf einen Fehler.
Da musst Du einen Fehlerabfang einbauen.
VG, Boris

Außerdem ist dein Pgm längst nicht fertig, ...
21.10.2014 19:33:51
Luc:-?
…Klaus,
weshalb man das auch nicht ordentlich testen kann → es passiert nichts! Das heißt aber nicht, dass deine Behauptung stimmt. In solchen Fällen verwendet man besser eine Variable, der man Target.Name.Name zuvor zuweist. Dann kann man auch sehen, dass diese Variable tatsächlich den ZellNamen enthält, wenn man denn eine benannte Zelle angeklickt hat…
Man kann allerdings auch zuvor ein Debug.Print Target.Name.Name einfügen, um das im DirektFenster anzeigen zu lassen.
Gruß, Luc :-?

Anzeige
AW: Außerdem ist dein Pgm längst nicht fertig, ...
21.10.2014 19:45:25
KlausF
Hallo Luc,
das ist nicht mein Programm, siehe hier: https://www.herber.de/forum/messages/1387834.html
Außerdem passiert auch etwas, wenn die Parameter richtig gesetzt sind und ein Name richtig ausgewählt wurde:
der Kommentar wird auf Sheet Comments in die richtige Reihe/Spalte gesetzt ... aber nur ohne Verbundzeile.
Gruß
Klaus

AW s.u.! owT
21.10.2014 19:50:08
Luc:-?
:-?

Fehler gefunden.
21.10.2014 19:37:21
KlausF
Hallo {Boris}, Ewald und Hary,
der Fehler lag an der Verbundzelle A15 mit Namen MyComment.
Nachdem ich den Zellverbund aufgehoben habe funzt es (im Zusammenhang mit On Error).
Danke an Alle, das war sehr lehrreich ...
Gruß
Klaus

Anzeige
Soso, das habe ich nicht getan, der entsprd ...
21.10.2014 19:49:11
Luc:-?
…PgmAbschnitt wurde aber durchlaufen, Klaus;
dann hat das im Prinzip nichts mit Target.Name.Name zu tun, sondern eher mit der korrekten Referenzierung und Behandlung eines mehrzelligen Targets.
Luc :-?

genau! ;-) owT
21.10.2014 19:52:13
Matthias L

OT Übrigens ...
21.10.2014 19:59:25
Matthias L
Hallo Luc
... Lese ich Eure Beiträge (Luc <-> Ewald) immer genau mit.
Denke also nicht das da niemand mitliest ;-)

Gruß Matthias

OT-AW: Das habe ich ja auch nicht behauptet, ...
21.10.2014 20:06:47
Luc:-?
…Matti,
sondern nur, dass außer den von dir genannten niemand sonst (ernsthaft) mitdiskutieren wird, was bisher ja auch stimmt. Daniels „GastAuftritt“ dort kann man wohl vernachlässigen, auch wenn er die Diskussion erst ausgelöst hat… ;-)
Gruß, Luc :-?

Anzeige
Und wie mit Verbundzelle?
21.10.2014 20:09:19
KlausF
Hallo Luc,
das macht mich jetzt aber neugierig. Wie müßte denn der Code aussehen, wenn
das Eingabefeld MyComment eine Verbundzelle ist?
Hier die von mir angepasste letzte Fassung:
https://www.herber.de/bbs/user/93270.xls
Bitte nur Lösungsmöglichkeiten, die Menschen bis IQ 125 nachvollziehen :-)
Gruß
Klaus

AW: Und wie mit Verbundzelle?
21.10.2014 22:51:14
Ewald
Hallo,
das hatte ich doch schon geschrieben, Zellen im Namensbereich und in Target müssen gleich sein.
dies ist bei verbundenen Zellen nicht der Fall.
Im Namensmanager steht die Anfangszelle also eine, wenn du die Zelle markierst, und Target.Count abfragst, bekommst du die Anzahl der verbundenen Zellen,und dies sind minimal 2.
Da aber 1 nicht gleich 2 ist kein Ergebnis.
Du mußt also so formulieren, das wenn eine Zelle von Target im Bereich liegt, dann tu was.
Hier hilft Select Case wenig, besser wäre so
Dim zelle As Range
Dim x
For Each zelle In Target
If Intersect(zelle, Range("Peter")) Is Nothing Then
Else
x = x + 1
End If
Next
If x > 0 Then MsgBox "Gefunden Peter"
Da bei der ersten der verbundenen Zellen eine 1 bekommst, sollte es auch funktionieren.
Gruß Ewald

Anzeige
Erledigt
21.10.2014 23:14:21
KlausF
Hallo Ewald,
danke für Deine Antwort.
[ Hier hilft Select Case wenig ]
Genau. Da meine urspüngliche Frage sich auf Select Case und Zellnamen bezog
gibst Du mir also völlig recht darin, dass Select Case an dieser Stelle nicht sinnvoll ist,
es sei denn, die Verbundzelle wird aufgehoben.
Ich hatte mich nur über Luc's Antwort gewundert, die mir einen unbekannten anderen
Ansatz mit Select Case und Verbundzellen zu suggerieren schien ... aber vielleicht
habe ich ihn auch falsch verstanden.
Fragestellung hat sich damit erledigt.
Nochmals Danke
Gruß
Klaus

Anzeige
Meine Bemerkung bezog sich nur darauf, ...
22.10.2014 05:09:27
Luc:-?
…dass Target.Name.Name durchaus fktioniert, Klaus,
wenn denn die die Prozedur auslösende Zelle (bzw der Bereich) auch einen Namen hat, was aber nicht bei allen änderbaren Zellen der Fall ist, was zu Fehlern führt. Insofern ist das Pgm nicht betriebssicher und damit auch nicht fertig, was schon damit anfängt, dass man beim Laden der Mappe eine FehlerMeldung erhält, was ich besonders liebe… :-/
Wenn man Daten in VerbundZellen schreiben will, geht man auf Nummer Sicher, wenn man die einzige dafür relevante Zelle direkt anspricht und nicht den ganzen Verbund, was auch schon mal schief gehen kann.
Des weiteren weiß ich auch nicht, was alles in der Tabelle angeklickt/geändert wdn darf, das wird vom Pgm nicht vorselektiert. Also noch viel Arbeit…
Ob da nun das Select Case an der richtigen Stelle steht oder überhpt sinnvoll ist, war daher für mich eher sekundär. :-|
Luc :-?

Anzeige
AW: Select Case Zellnamen
22.10.2014 08:10:09
Uwe Küstner
Hallo Klaus,
ich würde es mal mit
Select Case Target.Cells(1).Name.Name
versuchen.

Die Lösung !
22.10.2014 10:00:58
KlausF
Hallo Uwe,
der Hammer. Damit lässt sich tatsächlich eine Verbundzelle
mit ihrem definierten Namen ansprechen!
Herzlichen Dank für die Lösung. Ist ja vielleicht auch für
den einen oder anderen Profi hier ganz interessant.
Gruß
Klaus

Was meinst du wohl, was ich gemacht habe, ...
22.10.2014 14:50:25
Luc:-?
…Klaus…?
Dein Fehler bestand wohl darin, dass du erst die Zellen verbunden und anschließend den Namen definiert hast. Dadurch bezieht der sich nur auf die 1.Zelle des Verbunds, wird aber natürlich bei allen angezeigt, weil du ja, verbunden wie sie sind, nur alle auswählen kannst. Dass dann auch der Name angezeigt wird, liegt am ZellVerbund. Die „Stunde der Wahrheit“ kommt dann, wenn du diese VerbundZelle als Target verwendest. Für VBA haben diese Zellen (als Gesamtheit) dann nämlich keinen Namen, was ja auch der Realität entspricht, dir von Xl nur nicht angezeigt wird.
Gruß, Luc :-?

Es macht keinen Unterschied, ...
22.10.2014 16:43:03
Uwe Küstner
... Luc,
ob vorher oder hinterher verbunden wurde.
Gruß Uwe

Deine Aussage stimmt nur dann, ...
22.10.2014 18:00:54
Luc:-?
…Uwe,
wenn auch zuvor nur eine Zelle ausgewählt wurde, was Klaus getan haben mag, ich aber niemals tue, weil ich das weiß. ;-)
Gruß, Luc :-?

AW: Es macht keinen Unterschied, ...
22.10.2014 18:26:59
Ewald
Hallo,
das paßt nur wenn nach rechts verbunden wird. B & C verbinden
wird aber A & B verbunden, wird nichts gefunden.(hier müßte der Index 2 sein)
Es paßt also nicht in jedem Fall.
Gruß Ewald

Bei mir funzt das
22.10.2014 19:04:29
KlausF
Hallo Ewald,
die Ausgangszelle ist A15 und heißt MyComment. Danach kannst Du nach rechts oder
unten verbinden wie Du willst. Es funktioniert immer. Jedenfalls bei mir. Ich kann auch
danach wieder entbinden, spielt alles keine Rolle. Anbei noch einmal die letzte Fassung
https://www.herber.de/bbs/user/93297.xls
Gruß
Klaus

AW: dann teste mal
23.10.2014 00:03:55
Ewald
Hallo Klaus,
nach rechts oder nach unten ist kein Problem, weil die erste Zelle ja den Namen hat.
kannst ja mal testen
gebe der Zelle B18 einen Namen, dann A18 und B18 verbinden
oder der Zelle C18 einen Namen geben und dann C17 und C18 verbinden
in die Tabelle dann unter "Private Sub Worksheet_SelectionChange(ByVal Target As Range)"
folgende Zeile eingeben
MsgBox Target.Cells(1).Name.Name
Eigentlich sollte die Msgbox kommen, das geschieht aber nicht.
Solange die erste Zelle im Target den Namen hat,funktioniert es.
Dasselbe gilt aber auch für nicht verbundene Zellen, hat die erste Zelle im Target keinen Namen, bekommst du kein Ergebnis.
Gruß Ewald

AW: dann teste mal
23.10.2014 00:37:03
Uwe Küstner
Hallo Ewald,
Klaus hat die Zellen nun mal von links oben ausgehend erweitert/verbunden!
Dieser ganze inkonsequente Mist von Microsoft mit Verbundenen Zellen
ist hier doch gar nicht gefragt.
Außerdem ist die Befehlsform von geben "gib". ;-)
Gruß Uwe

AW: dann teste mal
23.10.2014 01:43:27
Ewald
Hallo Uwe,
ich sage ja auch nicht das es für diesen Fall nicht paßt.
Ich wollte nur darauf hinweisen, das dies nicht generell so ist.(der Fragesteller kann ja dann selbst entscheiden ob ihm das reicht)
Das Thema "Verbundene Zellen" wird wohl ein Übel bleiben, es wird überall darauf hingewiesen das sie nur Probleme schaffen, trotzdem wird es gemacht.
Gruß Ewald

Das ist ja weder Ewalds noch meine Schuld, ...
23.10.2014 02:07:12
Luc:-?
…Uwe,
wenn MS da (im Ggsatz zu LO/OO) auf halbem Wege stehen geblieben ist, wohl, weil die, die das mal eingeführt haben nur an Gestaltung von TabKöpfen und -Vorspalten dachten, was sich offensichtlich bis dato nicht geändert hat. Und wenn Klaus dieses eigentlich viel mächtigere Tool als MS je bezweckt hat, nun unnötigerweise einsetzt, ist das ja nun allein sein und hier tatsächlich nicht das HauptProblem, sondern nur eine Nebensache, die richtig gestellt wdn sollte… ;-)
Was die „gib/gebe-Problematik“ betrifft, ist Ewald hier (wie übrigens sehr viele) der Zeit (sprich der Sprach­Entwicklung) voraus, denn der Trend zu schwachen VerbFormen ist schon alt, nur bei häufig gebrauchten (noch) nicht allgemein und deshalb auch nicht im Duden angekommen. Ich gehe mal davon aus, dass er höflich sein wollte. Leider gibt's aber bei geben die einfache Möglichkeit Infinitiv-Stamm + Endungs-e (noch) nicht (aber offensichtlich umgangssprachlich)… ;-)
Morrn, Luc :-?

ist korrekt
23.10.2014 13:42:22
KlausF
Hallo Ewald,
ja , da gebe ich Dir recht und das ist auch ein guter Hinweis.
Man sollte also darauf achten, die Namenszelle bei Verbundzellen oben links zu platzieren,
ggf. die Namenzelle vorher ausschneiden und entsprechend platzieren.
Ohne das vorher gewusst zu haben, bin ich bisher sowieso immer in dieser Weise vorgegangen.
Gruß
Klaus
@Luc
Ich empfinde Deine Aussagen hier nicht gerade als sehr einladend.
[ Dein Fehler bestand wohl darin, dass du erst die Zellen verbunden und anschließend den Namen definiert hast ]
[ Und wenn Klaus dieses eigentlich viel mächtigere Tool als MS je bezweckt hat, nun unnötigerweise einsetzt, ist das ja nun
allein sein und hier tatsächlich nicht das HauptProblem, sondern nur eine Nebensache, die richtig gestellt wdn sollte… ]
[ ... was Klaus getan haben mag, ich aber niemals tue, weil ich das weiß. ;-) ]
Ich habe weder einen Fehler begangen noch etwas getan oder etwas unnötigerweise eingesetzt. Ich habe hier eine
Fremddatei herunter geladen und eine Frage gestellt. Das hatte ich Dir an anderer Stelle schon geschrieben. Das immer noch
zu ignorieren und die Art Deiner Schreibe klingt für mich beleidigend. Ich möchte Dich also höflich bitten, meinen Namen hier
nicht weiterhin für Deine Selfie-Antworten zu benutzen.
Meine Eingangsfrage betraf ein paar Fragezeichen hinter Select Case. Die Frage wurde für mich vollständig beantwortet.
Das kann man auch einfach so stehen lassen ...

So, so, du hast also auch die VerbundZellen so ...
23.10.2014 17:24:03
Luc:-?
…übernommen, Klaus;
dann bist du natürlich primär nicht der Verursacher. Aber du schreibst jetzt ja auch, dass du auch immer nur die 1.Zelle eines Verbunds benennst, was es dir dann auch kaum ermöglicht, den diesbzgl Fehler zu erkennen. Also könntest du das auch selbst erstellt haben, es hätte die gleiche Wirkung gehabt… ;-)
Deshalb musst du auch nicht beleidigt sein oder tun, immerhin hast du die fehlerhafte* Datei hier eingestellt. Auch hatte ich dich bisher dahingehend verstanden, dass du nur das Pgm übernommen und angepasst hast.
Ansonsten bestätigst du hiermit leider wieder mal nur meine vorgefasste (und dafür bist ganz allein du verantwortlich!) Meinung… :-<
* Darauf hatte ich bereits hingewiesen! Und so etwas macht man nicht!
Luc :-?

AW: So, so, du hast also auch die VerbundZellen so ...
23.10.2014 20:38:53
KlausF
Meine Güte Luc, was für ein Gebrabbel.
Für die Zukunft wünsche ich mir, dass Du Dich aus meinen Threads ganz raus hälst.

Was Intelligenteres fällt dir wohl als AW nicht...
28.10.2014 00:35:06
Luc:-?
…ein, Klaus;
das bestätigt meine Meinung über dich und deine Fähigkeiten, weshalb ich dir deine Bitte gern erfülle, denn es ist ohnehin zwecklos, dem aus der Folklore bekannten „Bürgermeister von Wesel“ etwas beibringen zu wollen… :->>
Luc :-?

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige