Registriert seit: 01.10.2015
Version(en): 2010
15.01.2017, 13:43
(Dieser Beitrag wurde zuletzt bearbeitet: 15.01.2017, 13:43 von zmichael27.)
Hallo an alle, :32:
habe endlich mal wieder etwas Zeit, für mich privat mal was zu machen, und dann das:
Ich habe per Hand, einen Eintrag erzeugt und aufgezeichnet: Dieses Ergebnis kam dabei raus:
ActiveWorkbook.Names.Add Name:="tblVeranstaltungTerminZeileErste", _ RefersToR1C1:="='P-Basis'!R6C5" ActiveWorkbook.Names("tblVeranstaltungTerminZeileErste").Comment = _ "Erste Zeile des benutzten Bereiches in Tabelle VeranstaltungAdresse"
Da ich ja schon öfter, darauf reingefallen bin, was die Aufzeichnung fabriziert, habe ich gleich den Eintrag wieder gelöscht und das Makro unverändert laufen lassen.
Ergebnis:
Statt 'P-Basis'!R6C5 steht 'P-Basis'!'R6C5' im Namensmanager, und egal wie ich den String zusammensetze, mit oder ohne Apostrophe, die beiden hinter dem Ausrufezeichen bleiben.
Wenn ich sie manuell im Namensmanager entferne, ist alles i.O., aber das kannst ja nicht sein.
Ist das sooo schwer, oder verstehe ich da nur irgendwas nicht?
Habt Ihr 'ne Idee?
Danke ;)
LG Michael
P.S. Ich habe Windows 10 und Excel 2016 und arbeite grundsätzlich mit der Z1S1-Bezugsart. ;)
Registriert seit: 12.03.2016
Version(en): Excel 2003
Hallo weil mich dies Sache selbst interessiert hat habe ich es mir mal angesehen. Deer 2. Teil klappt bei mir auch nicht! Man kann die Adresse auch normal eingeben, muss aber $$ verwenden, z.B. $C$8, sonst klappt es nicht!! Den Kommentar konnte ich nur über Add.Comment in die Zelle schreiben. Auf Range().Add.Comment kann m.E. nicht verzichtet werden. Bitte selbst ausprobieren mfg Gast 123 Code: Sub Test() ' ActiveWorkbook.Names.Add Name:="tblVeranstaltungTerminZeileErste", _ RefersToR1C1:="='P-Basis'!R6C5" ActiveWorkbook.Names.Add Name:="tblVeranstaltungZweite", _ RefersToLocal:="='P-Basis'!$C$8"
'Comments in Zelle einfügen With Worksheets("P-Basis") Range("E6").AddComment "Erste Zeile des benutzten Bereiches in Tabelle VeranstaltungAdresse" Range("E6").Comment.Visible = False End With End Sub
Registriert seit: 01.10.2015
Version(en): 2010
Danke Gast 123,
der Kommentar ist nicht das Problem, der kommt 100%ig rüber. Es geht nur um den Bezug, wo nicht nur, links neben dem Ausrufezeichen, die Tabelle in Apostrophe gesetzt wird, das ist ja kein Problem, sondern auch rechts die Zelle, die ich angebe. Vielleicht schaffe ich es, morgen, da nochmal ran zu gehen.
Schönen Abend Euch allen.
Gruß aus Hannover
Michael
Registriert seit: 04.03.2015
Version(en): 2000 + meist 2010
15.01.2017, 19:55
(Dieser Beitrag wurde zuletzt bearbeitet: 15.01.2017, 19:58 von lupo1.)
Es gibt (mindestens) 4 Möglichkeiten der Formeleingabe in Excel (lassen wir Solver, WasWäreWenn und Pivot und andere mal weg):
- die Zellformeln selbst - benutzerdefinierte Datenüberprüfungen (idealerweise so, dass sie boolesch formuliert oder durch Excel umdeutbar sind) - bedingte Formatierungen (idealerweise so, dass sie boolesch formuliert oder durch Excel umdeutbar sind) - formeldefinierte Namen
Nicht bei allen (außer den Zellformeln) funktioniert die R1C1-Bezugsverwendung. Oder, vermutlich genauer: Nicht bei allen klappen zu jeder Zeit (also ohne Umschaltung in den Excel-Optionen) alle Bezugsarten-Eingaben.
Bei den definierten Namen werden die R1C1-Bezüge ja bei relativer A1-Bezugseingabe sowieso verwendet. In Zelle C4 definiertes =B3 bedeutet, dass in Zelle B2 dann =A1 gerechnet wird, weil es wie =R[-1]C[-1] funktioniert. Anders als bei normalem relativen Bezug bleibt bei Einfügen einer Spalte auf B:B dieses A1 nicht stehen, sondern wird wie ein Vektor angepasst auf =B1.
Da zu 99% das hinzugefügte Blatt bei den defN nicht beabsichtigt ist und durch Excel ergänzt wird (auch bei nur einem vorhandenen Blatt!), lasse ich es einfach bei der Definition durch VBA weg. Es gibt übrigens (lokale) Blatt- und (globale) Mappennamen!
.Names.Comment flexe ich immer einfach weg. Das klappt auch bisher immer (hier: xl2010).
Bei Datenüberprüfungen klappt direkt nur die A1-Bezugsverwendung (meine ich, kann mich aber irren, und schaue das gerade nicht nach), bzw. nicht die Funktionalität von R1C1. Wenn man dort genauso "vektoriell" (also nicht relativ zu der bezogenen Zelle, sondern relativ vom Ziel aus, wie eben oben beschrieben) arbeiten möchte, muss ich das gewünschte =R[-1]C[-1] entweder mit defN erzeugen und in der DÜ eingeben, oder ich verwende (wenn nur Spalten eingefügt werden können, aber keine Zeilen) die Krücke C4: =INDEX(3:3;SPALTE(C4)-1). Oder, wenn auch Zeilen eingefügt werden können: =INDEX($A:$Z;ZEILE(C4)-1;SPALTE(C4)-1). Oder irgendwas mit ADRESSE oder BEREICH.VERSCHIEBEN.
Ein spannendes Thema!
Folgende(r) 1 Nutzer sagt Danke an lupo1 für diesen Beitrag:1 Nutzer sagt Danke an lupo1 für diesen Beitrag 28
• zmichael27
Registriert seit: 29.09.2015
Version(en): 2030,5
versuch mal: Code: sheets("P_basis").cells(6,5).name="tblVeranstaltungTerminZeileErste"
Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:1 Nutzer sagt Danke an snb für diesen Beitrag 28
• zmichael27
Registriert seit: 01.10.2015
Version(en): 2010
Hallo an alle, schönen Sonntag. :19:
jetzt habe ich endlich mal wieder Zeit, und all meine Versuche, eine Lösung zu finden, sind fehlgeschlagen.
Aber ich kann erstmal damit leben, dass ich nach dem automatischen Erstellen, im Namensmanager, per Hand die Apostrophe entferne.
Vielleicht kommt ja irgendwann doch noch die Erleuchtung. Ich schließe den Thread, und dankeschön an diejenigen, die versucht haben, das Problem zu lösen. ;)
Gruß aus Hannover
Michael
|