Anzeige
Archiv - Navigation
960to964
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
960to964
960to964
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Name definieren

Name definieren
23.03.2008 11:53:06
Schallbach
Hallo!
Habe jetzt noch ein Problem!
Ich definiere über VBA einige Namen.
Normalerweise kann ich die Definitionen dann über das Namenfeld (hoffe der Ausdruck stimmt)abrufen. Wenn ich die Definitionen über VBA mache dann geht das nicht.
Wie kann ich das ändern?
Gruss
Schallbach

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Name definieren
23.03.2008 11:58:00
Nepumuk
Hi,
mit welcher Prozedur definierst du den Namen?
Gruß
Nepumuk

AW: Name definieren
23.03.2008 12:10:00
Schallbach
Hallo!
Ich definiere es nit folgenden Macro:

Sub SuchbereichGFestlegen()  'Name = Suchbereich im Sheet (Gesamtbestand)
Dim strSuchbereichG As String
Dim strAktiveSelection As String
Windows(strNameDatenbank).Activate
Sheets("Gesamtbestand").Activate
strAktiveSelection = Cells(Cells(Rows.Count, 1).End(xlUp).Row, _
Cells(2, 256).End(xlToLeft).Column).Address(RowAbsolute:=False)
strSuchbereichG = strSuchbereichAnfang & ":" & strAktiveSelection
'Range(strSuchbereichAnfang & ":" & strAktiveSelection).Select
ActiveWorkbook.Names.Add Name:="Suchbereich", RefersTo:="Gesamtbestand!" & strSuchbereichG
Range("A2").Select
End Sub


Leider hab ich damit keinen Eintrag im Namesfeld. Ich definiere damit auch den Sortierbereich und das wäre schön wenn ich den über das Namensfeld aufrufen könnte.
Gruss
Schallbach

Anzeige
AW: Name definieren
23.03.2008 12:37:00
Tino
Hallo,
soweit wie ich es kenne, musst du es in der R1C1 Schreibweise machen.
Hier mal ein Beispiel.

Sub ezwgqz()
Dim Zelle As String
Zelle = ActiveSheet.Name & "!" & _
Range("A1:A10").Address(ReferenceStyle:=xlR1C1)
ActiveWorkbook.Names.Add "Schallbach", "=" & Zelle
End Sub


Gruß
Tino

AW: Name definieren
23.03.2008 13:02:00
Tino
Hallo,
in deinem Beispiel, würde ich es in etwa so umsetzen.
strAktiveSelection = Range("A1", Cells(Cells(Rows.Count, 1).End(xlUp).Row, _
Cells(2, 256).End(xlToLeft).Column)).Address(ReferenceStyle:=xlR1C1)
ActiveWorkbook.Names.Add "Suchbereich", "=Gesamtbestand!" & strAktiveSelection
Gruß
Tino

Anzeige
AW: Name definieren
23.03.2008 12:42:00
Nepumuk
Hi,
so definierst du ja auch einen String als Bezug. Dieser muss beim anlegen aber ein Rangeobjekt oder eine Formel sein. In deinem Fall, im Prinzip so:
ActiveWorkbook.Names.Add Name:="Suchbereich", RefersTo:="=Gesamtbestand!" & strSuchbereichG

Da der Name aber keine absoluten Bezüge enthält, ist er immer relativ zur aktiven Zelle. Wenn du als Bezug beispielsweise "$A$1:$H23" angibst und die aktive Zelle ist A2, dann bezieht sich der Name auf A1:H24. Ist die Zeile im Startwert auch relativ, also $A1:$H23 und die aktive Zelle ist A2, dann verschiebt sich der Bezug auf A2:H24.
Ein Name, bei dem nicht alle Bezüge absolut sind, kann im Namesfeld nicht angezeigt werden.
Gruß
Nepumuk

Anzeige
AW: Name definieren
23.03.2008 13:20:40
Schallbach
Hallo !
Wenn ich aber alles Absolut mache dann wird aber nicht erweitert wenn ich z. B. eine Zeile hizufüge!
Ich will eigentlich nur einen Sortierbereich von A2 bis M23. Dabei soll der Zeilenberich variabel bleiben falls eine Zeile eingefügt wird dass sich dann das ganze erweitert automatisch auf z. B. M24.
Gruss
Schallbach

AW: Name definieren
23.03.2008 13:35:00
Beate
Hallo,
Sub Name_Suchbereich_dynamisch()
    ActiveWorkbook.Names.Add Name:="Suchbereich", RefersToR1C1:= _
        "=OFFSET(Gesamtbestand!R2C1,,,COUNT(Gesamtbestand!R2C1:R65536C1),13)"
End Sub

Letzte Spalte ist immer M, aber die Zeilenzahl ist dynamisch ab A2.
Gruß,
Beate

Anzeige
AW: Name definieren
23.03.2008 14:04:00
Tino
Hallo,
dein Beispiel funktioniert bei mir nicht.
Habe aber auch Office 2003, daran wird es aber nicht liegen.
Bei mir geht es auf diese weise.

strAktiveSelection = "R1C1:" & Cells(Cells(Rows.Count, 1).End(xlUp).Row, _
Cells(2, 256).End(xlToLeft).Column).Address(columnAbsolute:=False, ReferenceStyle:=xlR1C1)
ActiveWorkbook.Names.Add "Suchbereich", "=Gesamtbestand!" & strAktiveSelection


In der A1 Schreibweise geht bei mir gar nichts.
Gruß
Tino

AW: Name definieren
23.03.2008 14:11:07
Nepumuk
Hallo Tino,
das geht bei mir in xl2000 und xl2003. Sowohl in A1 wie in R1C1.
Gruß
Nepumuk

Anzeige
AW: Name definieren
23.03.2008 14:21:45
Tino
Hallo,
verstehe ich nicht, habe beide Versionen getestet.
Die zweite will bei mir nichts anzeigen, finde zwar den Formeleintrag unter
Einfügen – Name aber in der Auswahl ist er einfach nicht zu sehen.
Habe es auch mit absoluten Bezügen versucht gleiches Ergebnis?!!!

Sub TestName()
Dim strAktiveSelection As String
'Test 1 in R1C1 Schreibweise
On Error Resume Next
ActiveWorkbook.Names("Suchbereich").Delete
On Error GoTo 0
strAktiveSelection = "R1C1:" & Cells(Cells(Rows.Count, 1).End(xlUp).Row, _
Cells(2, 256).End(xlToLeft).Column).Address(columnAbsolute:=False, ReferenceStyle:=xlR1C1)
ActiveWorkbook.Names.Add "Suchbereich", "=Gesamtbestand!" & strAktiveSelection
Stop 'überprüfen ob Name vorhanden
'Test 2 in A1 schreibweise
On Error Resume Next
ActiveWorkbook.Names("Suchbereich").Delete
On Error GoTo 0
strAktiveSelection = "$A$1:" & Cells(Cells(Rows.Count, 1).End(xlUp).Row, _
Cells(2, 256).End(xlToLeft).Column).Address(columnAbsolute:=False)
ActiveWorkbook.Names.Add "Suchbereich", "=Gesamtbestand!" & strAktiveSelection
End Sub


Gruß
Tino

Anzeige
AW: Name definieren
23.03.2008 14:32:35
Nepumuk
Hallo Tino,
hat deine Tabelle auch den Namen "Gesamtbestand"?
Gruß
Nepumuk

AW: Name definieren
23.03.2008 14:40:56
Tino
Hallo Nepumuk,
ja, sonst würde die erste Version auch nicht Funktionieren.
Habe jetzt bei mir noch in den Optionen nachgesehen,
ob es irgendwo eine Einstellung gibt, aber ich finde keine.
Unter Allgemein ist die Z1S1 Bezugsart nicht aktiv.
Gruß
Tino

AW: Name definieren
23.03.2008 14:48:00
Nepumuk
Hallo Tino,
doch, die funktioniert trotzdem. Denn beim Namen per VBA setzen sind die ziemlich tolerant. Das ist schließlich eine Formel und du kannst Formeln mit falschen Bezügen durchaus in eine Zelle eingeben. Sie meldet dir zwar einen Fehler (#Ref oder #Bezug) aber es geht. Wenn du dir so einen falsch gesetzten Namen in VBA ansiehst, gibt dir die Value-Eigenschaft auch #Ref zurück.
Gruß
Nepumuk

Anzeige
AW: Name definieren
23.03.2008 15:01:00
Tino
Hallo,
habe jetzt den Namen der Tabelle aus den Code kopiert und damit den Namen
der Tabelle festgelegt, aber wie zuvor gleiches Ergebnis.
R1C1- geht
A1- geht nicht
Vielleicht ist ja auch mit meinem Office etwas faul!
Die R1C1 Schreibweise ist für mich zwar immer ein Horror, aber ich weis mir
zu helfen.
Ich schreibe mir die normale Formel in eine Zelle, zeichne dies mit dem Rekorder auf
und picke mir die notwendigen Sachen raus.
Also ich kann damit leben, da es sowieso nicht oft vor kommt dass ich diese Schreibweise brauche.
Aber es ist nichts mehr von Schallbach zu hören, ist seine Frage beantwortet?
Noch einen schönen Ostersonntag, wünsche ich allen Beteiligten.
Gruß
Tino

Anzeige
AW: Name definieren
23.03.2008 12:02:00
Beate
Hallo,
Guckst Du: Namenfeld - Navigation und weitere Möglichkeiten
Dies dürfte die gesuchte Erklärung sein:
Dynamisch definierte Namen werden dort nicht angezeigt. Aber durch das Eintippen derselben in das Namenfeld und Abschluss der Eingabe über die Enter-Taste werden auch diese Bereiche markiert.
Gruß,
Beate

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige