Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
672to676
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
672to676
672to676
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zellenname

Zellenname
28.09.2005 11:47:04
Kira
Hallo,
ich habe folgenden Code, mit dem ich im die Zelle mit dem Namen "currency" markieren lasse, um diese dann zu ändern:
Dim ZellName As Name
For Each ZellName In ActiveWorkbook.Names
Range("currency").Select
'weiterer Code steht hier
Next ZellName
Das ganze funktioniert aber nur, wenn der Name im aktiven Blatt vorhanden ist.
Ich habe es auch schon umgestaltet, dass immer die Tabelle ausgewählt wird, auf der sich die Zelle mit dem Namen befindet. Ziel sollte aber sein die Namenszelle zu markieren, egal in welcher Tabelle sie sich befindet und egal von welcher Tabelle aus ich diesen Befehl gebe. D.h. meine aktuelle Tabelle soll aktiv bleiben und der Befehl quasi im Hintergrund ablaufen. Am Ende soll die Markierung wieder aufgehoben werden.
Hoffe, es kann mir jemand helfen.
Gruß
Kira

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellenname
28.09.2005 11:50:53
Matthias
Hallo Kira,
ohne Select:
Range("currency") = irgendwas
Gruß Matthias
AW: Zellenname
28.09.2005 11:55:03
Peter
Servus,
da ich nicht weiß was du nach dem Select machen willst, ein Bsp. siehe unten.
P.S.: das mit dem Select würd ich lassen.
Sub t2()
Dim namName As Name
For Each namName In ThisWorkbook.Names
If namName.Name = "Test" Then MsgBox namName.RefersToRange.Address(0, 0)
Next
End Sub

MfG
Peter
AW: Zellenname
28.09.2005 12:10:19
Kira
Hallo Peter,
genauer genommen sieht das ganze bisher so aus:
Dim ZellName As Name
For Each ZellName In ActiveWorkbook.Names
Range("currency").Select
If OptionButton1.Value = True Then Range("currency").Value = "EURO"
If OptionButton2.Value = True Then Range("currency").Value = "CAD"
If OptionButton3.Value = True Then Range("currency").Value = "EURO"
If OptionButton4.Value = True Then Range("currency").Value = "USD"
If OptionButton5.Value = True Then Range("currency").Value = "USD"
If OptionButton6.Value = True Then Range("currency").Value = "CAD"
Next ZellName
Von daher ist das mit der If-Sache nicht so ideal.
Gruß
Kira
Anzeige
AW: Zellenname
28.09.2005 12:32:09
Peter
Servus,
das ist nicht ganz korrekt.
Sub t2()
Dim ZellName As Name
Dim strRange As String
For Each ZellName In ThisWorkbook.Names
If ZellName.Name = "currency" Then _
strRange = ZellName.RefersToRange.Address(0, 0)
Next
If OptionButton1.Value = True Then Range(strRange) = "EURO"
'usw.
End Sub

AW: Zellenname
28.09.2005 12:48:54
Kira
Hallo Peter,
hab jetzt deinen Code eingefügt, es passiert aber nichts. Die Währung ändert sich nicht, wenn ich die entsprechenden Optionbuttons markiere.
Gruß
Kira
AW: Zellenname
28.09.2005 12:55:14
Peter
Servus,
wundert mich ehrlich gesagt auch nicht.
Wo sind die OB´s ? Werden die OB´s richtig angesprochen ?
Ehrlich gesagt glaub ich sowieso das die Schleife sinnlos ist, ausser der Name wäre immer in unterschiedlichen Ranges, Sheets.
Mach mal ein Bsp. Das es geht siehst du an der Bsp. Datei
https://www.herber.de/bbs/user/27000.xls
Anzeige
AW: Zellenname
28.09.2005 13:11:06
Kira
Hallo Peter,
der Sinn der Sache ist, dass je nach Optionbutton-Auswahl die entsprechende Währung in der Zelle mit dem Namen currency erscheint. Um den Inhalt der Zelle aber ändern zu können, muss ich diese ja erst markieren. Wenn ich die entsprechende Tabelle+Zelle mit select auswähle, dann springt er mir automatisch auf diese Tabelle. Das sollte aber nicht sein. Die Zelle soll einfach nur geändert werden, egal ob ich mich nun auf diesem Blatt mit dieser Zelle befinde oder nicht. Daher muss ja erst geprüft werden, welches Blatt und welche Zelle die entsprechende ist.
Gruß
Kira
Anzeige
AW: Zellenname
28.09.2005 13:24:18
Peter
Servus,
Um den Inhalt der Zelle aber ändern zu können, muss ich diese ja erst markieren
Falsch, siehe Achtung Makrorekorder oder Wer selektiert denn da?
springt er mir automatisch auf diese Tabelle
siehe link oben.
Aber ich wiederhol mich ja gerne, deshalb nochmal meine frage, wenn die Namenszeile fest ist, kann man sich die Schleife auch sparen !!!
Da du mir aber kein Bsp. zeigen willst, können wir das ganze gerne noch bis heut abend machen, hat aber für mich wenig sinn.
Sub t2()
Dim ZellName As Name
Dim strRange As String, strSheet As String
For Each ZellName In ThisWorkbook.Names
If ZellName.Name = "currency" Then
strRange = ZellName.RefersToRange.Address(0, 0)
strSheet = Mid(ZellName.RefersTo, 2, InStr(1, ZellName.RefersTo, "!") - 2)
End If
Next
Sheets(strSheet).Range(strRange) = "Test"
'If OptionButton1.Value = True Then Range(strRange) = "EURO"
'usw.
End Sub

MfG
Peter
Anzeige
AW: Zellenname
28.09.2005 13:51:52
Kira
Hallo Peter,
ich würde dir ja gerne ein Bsp. zeigen, nur habe ich keines. Sonst hätte ich vermutlich auch nicht dieses Problem.
Es ist mir auch klar, dass ich select weglassen kann. Ohne select lief meine Prozedur aber nicht und mit select ist er in die entspechende Tabelle gesprungen (was er aber nicht sollte).
Natürlich kann man die Schleife weglassen, wenn es ohne ihr den Zweck erfüllt. In meinem Ausgangscode war sie eben enthalten, da diese so funktionierte, nur hat sie so eben nicht ganz den gewünschten Erfolg gebracht.
Im Grunde geht es mir eben lediglich darum, dass je nach OptButton-Auswahl EURO, CAD oder USD in der Zelle "currency" steht. Es soll aber eben nicht auf diese entsprechende Tabelle gesprungen werden. Man kann ja einfach mal sagen, dass diese Zelle H1 auf Tabelle 2 ist.
Gruß
Kira
Anzeige
Lösungsweg gefunden
28.09.2005 15:20:53
Kira
Danke an Peter

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige