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

Sheet Range B6:B12 für Tab.namen verw

Sheet Range B6:B12 für Tab.namen verw
19.06.2007 23:37:00
Peter
Guten Abend
In meiner Tabelle möchte ich in einer Tabelle in den Felder B6 - B12 ein Name erfassen können, der dann für die Tabellennamen verwendet wird. Ist in einem der Felder nichts enthalten, ist ein "Ersatzname" vorgesehen.
Mit nachfolgendem Code passiert leider nichts; ich kann es nicht ganz nachvollziehen warum - und insbesondere was zu ändern wäre.
Danke für ein Feedback, Peter

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = Cells(6, 2) And Len(Cells(6, 2)) = 1 Then Tabelle11.Name = Target.Text
If Target.Address = Cells(7, 2) And Len(Cells(7, 2)) = 1 Then Tabelle12.Name = Target.Text
If Target.Address = Cells(8, 2) And Len(Cells(8, 2)) = 1 Then Tabelle13.Name = Target.Text
If Target.Address = Cells(9, 2) And Len(Cells(9, 2)) = 1 Then Tabelle14.Name = Target.Text
End Sub


8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Sheet Range B6:B12 für Tab.namen verw
20.06.2007 00:00:28
Matthias
Hallo Peter
probier mal statt Then Tabelle11.Name
... Then Worksheets("Tabelle11").Name u.s.w.
Gruß Matthias

AW: Sheet Range B6:B12 für Tab.namen verw
20.06.2007 00:10:00
Peter
HalloMatthias
Meines Erachtens ist meine Schreibweise des Namens richtig, denn ich habe nicht den Tabellennamen verwendet, sondern den VBA-Namen (Name der im VBA-Eigenschaften Fenster unter Name ersichtlich ist - nicht identisch mit dem wirklichen Namen).
Eines der Probleme ist, dass ich mit dm Ereignis mehrere Tabellennamen beeinflussen will. Wenn ich's nur mit einem mache, hat's geklappt (mit der gleichen Schreibweise des VBA-Tabellennamens; wie der Code insgesamt lautete, weiss ich nicht mehr).
Gruss, Peter

Anzeige
Der Fehler liegt womöglich hier,...
20.06.2007 02:01:36
Luc:-?
...Peter:

If Target.Address = Cells(6, 2) And ... Then


Damit das fkt muss hier in Zelle B6 die Adresse der Zelle stehen, die gerade geändert wird. Offensichtlich ist das aber bei keiner der in der Prozedur verglichenen Zellen der Fall, so dass keine Reaktion erfolgt. Setze doch mal einen Haltepkt und arbeite das dann schrittweise ab!
Falls das so nicht beabsichtigt ist, würde ich es mal mit...


If Target.Address = "$B$2" Then
If Cells(6, 2) = "" Then Tabelle11.Name = "frei 1" Else Tabelle11.Name = Target
ElseIf Target.Address...
End If 


...versuchen! Die 2.Zeile kann alternativ auch...


Tabelle11.Name = IIf(Cells(6, 2) = "", "frei 1", Target)


...lauten. Statt = "$B$2" kann auch Cells(6, 2).Address, statt = Target auch = Cells(6, 2) geschrieben wdn, wenn ich mit meiner Vermutung richtig liege.
Gruß Luc :-?

Anzeige
angelehnt an die Idee von Luc :-)
20.06.2007 08:15:09
Luc
Hallo Peter
so geht es aber ...

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = Cells(6, 2).Address And Len(Cells(6, 2)) = 1 Then Tabelle11.Name = Target. _
Text
If Target.Address = Cells(7, 2).Address And Len(Cells(7, 2)) = 1 Then Tabelle12.Name = Target. _
Text
If Target.Address = Cells(8, 2).Address And Len(Cells(8, 2)) = 1 Then Tabelle13.Name = Target. _
Text
If Target.Address = Cells(9, 2).Address And Len(Cells(9, 2)) = 1 Then Tabelle14.Name = Target. _
Text
End Sub


Anmerkung:
Wenn Du z.B. in B6 und B7 den selben Text einträgst, gibt es aber einen Fehler der noch abgefangen werden sollte.

in etwa so:


Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Fail
If Target.Address = Cells(6, 2).Address And Len(Cells(6, 2)) = 1 Then Tabelle11.Name = Target. _
Text
If Target.Address = Cells(7, 2).Address And Len(Cells(7, 2)) = 1 Then Tabelle12.Name = Target. _
Text
If Target.Address = Cells(8, 2).Address And Len(Cells(8, 2)) = 1 Then Tabelle13.Name = Target. _
Text
If Target.Address = Cells(9, 2).Address And Len(Cells(9, 2)) = 1 Then Tabelle14.Name = Target. _
Text
Exit Sub
Fail:
MsgBox ("Doppelte Namen sind nicht erlaubt!"): Target = ""
End Sub


Gruß Matthias

Anzeige
AW: angelehnt an die Idee von Luc :-)
20.06.2007 08:38:05
Luc
Hallo Luc:-) und Matthias
Das war jetzt echt genial und die Lösung meines Problems.
Damit ich die Eingabefelder, welche abgefragt werden, innerhalb der Tabelle verschieben kann, habe ich diese nun benannt (class1, class2, etc.) und habe mich nun nicht mehr auf den absoluten Zellbezug bezogen, sondern die Zelladresse vom Namen abgeleitet.
Herzlichen Dank für eure Mithilfe zu späten und frühen Stunden!!
Peter

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = Range("class1").Address And Len(Range("class1")) = 1 Then Tabelle11.Name =  _
Target. _
Text
If Target.Address = Range("class2").Address And Len(Range("class2")) = 1 Then Tabelle12.Name =  _
Target. _
Text
If Target.Address = Range("class3").Address And Len(Range("class3")) = 1 Then Tabelle13.Name =  _
Target. _
Text
If Target.Address = Range("class4").Address And Len(Range("class4")) = 1 Then Tabelle14.Name =  _
Target. _
Text
End Sub


Anzeige
AW: angelehnt an die Idee von Luc :-)
20.06.2007 09:03:05
Luc
Hallo Peter
Du hast aber jetzt keine Fehlerbehandlung drin!
Userbild
Ersetzt Du jetzt Morgen durch Peter, gibt es einen Fehler, da das Tabellenblatt Peter schon vorhanden ist.
Userbild

Deshalb in meinem letzten Beitrag der Vorschlag mit der Fehlerbehandlung.


Gruß Matthias

AW: angelehnt an die Idee von Luc :-)
20.06.2007 09:19:00
Luc
Hallo Matthias
Vielen Dank für diesen Hinweis - deine Anmerkung im vorigen Beitrag habe ich schlicht übersehen, da ich schon so froh war, dass ich mit copy - paste eine gute Lösung hatte!
Das Problem wegen dem gleichen Namen war mir zwar bewusst und ich hatte es auf uneligante Weise gelöst, indem ich bei den Eingabefeldern nur vermerkt habe, dass Doppeleinträge nicht zulässig sind.
So ist es natürlich viel besser.
Nochmals besten Dank!
Peter

Anzeige
Apropos "elegant"...
20.06.2007 12:39:00
Luc:-?
...vielleicht solltest du dich an meinem Abfrageaufbau orientieren, Peter... ;-)
Gruß Luc :-?

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige