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

Bezugsnamen in VBA

Bezugsnamen in VBA
15.09.2005 15:43:21
Denis
Hallo zusammen,
ich habe folgendes Problem :
Ich will in meiner Tabelle Bezugsnamen zuordnen. Diese Zuordnung soll nicht über die Excel Menue- Leiste gehen, sondern mit Hilfe eines VBA- Codes. Allerdings bin ich ziemlich hilfslos, denn ich kann kein VBA- Code.
Der VBA- Code soll folgendermaßen funktionieren.
1. Suche in Tabelle Spalte A nach dem Namen ("A")
2. Suche in Tabelle Spalte A nach dem Namen ("A_End")
3. Markiere zwischen diesen beiden Bereichen (A-A_End) die Zellen
4. Spalte +1, sodass jetzt nicht Spalte A, sondern Spalte B (zwischen diesen Bereichen A bis A_End)markiert ist
5. Zuordnung des Markierten Bereiches zu einem Namen (Bsp. A)
Nr. 1 und Nr. 2 habe ich mit Hilfe der Makroaufzeichnung herausbekommen :
Cells.Find(What:="A", After:=ActiveCell, LookIn:=xlValues, LookAt:= _xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _True).Activate
A_End entsprechend (cells.Find(What:="A_End"...)
Nun weiß ich nicht, wie ich den Zellbereich zwischen diesen beiden Zellen markieren kann (3.) und wie ich dann von da aus eine spalte nach rechts (Springen kann) und diese Zeilen markieren kann.
Nr.4 kann ich wieder mit der Makroaufzeichnung erreichen :
ActiveWorkbook.Names.Add Name:="A", RefersToR1C1:="=BEREICH"
Hoffentlich kann mir jemand helfen. Falls etwas unklar ist, bitte kurz benachrichtigen.
Besten Dank schonmal im Vorraus
Gruss
Denis

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

Betreff
Datum
Anwender
Anzeige
AW: Bezugsnamen in VBA
15.09.2005 17:48:38
Christoph
Hallo Denis,
das ganze kannst du auch so erreichen - ganz ohne Select
Gruß
Christoph
Sub NeuerName()
Dim fnd As Variant
Dim lngStart As Long
Dim lngEnd As Long
With Worksheets("Tabelle1")
Set fnd = .Columns(1).Find("A", LookAt:=xlWhole)
If Not fnd Is Nothing Then lngStart = fnd.Row
Set fnd = .Columns(1).Find("A_End", LookAt:=xlWhole)
If Not fnd Is Nothing Then lngEnd = fnd.Row
On Error GoTo ErrorHandler
ActiveWorkbook.Names.Add "Test", .Range("B" & lngStart & ":B" & lngEnd)
End With
Exit Sub
ErrorHandler:
MsgBox "Eintrag für Start bzw. Ende nicht gefunden"
End Sub

Anzeige
AW: Bezugsnamen in VBA
16.09.2005 07:14:03
Denis
Danke Dir Christoph,
das ist genau die Lösung, die ich gesucht habe !!!
Besten Dank
Gruss
Denis
AW: Bezugsnamen in VBA
16.09.2005 07:41:55
Denis
Hallo Christoph,
ich hätte da doch noch eine Frage :
In meiner Tabelle in der ich nach dem "A" suche, ist der Zellbereich mit einer anderen Datei verknüpft, d.h. ich finde dementsprechend kein "A" bzw. im Zellbereich steht [='c:\...] Wie kann ich das lösen ?
Besten Dank
Denis
AW: Bezugsnamen in VBA
16.09.2005 09:12:51
Christoph
Hallo Denis,
wenn du den Zell-Wert "A" suchst (also Ergebnis einer Formel oder eins Verweises), dann setze in "Find" das Attribut "LookIn" auf "xlValues"
Set fnd = .Columns(1).Find("A", LookIn:=xlValues, LookAt:=xlWhole)
Details zu Find und dessen Attribute findest du in der VBA-Hilfe
Gruß
Christoph
Anzeige
AW: Bezugsnamen in VBA
16.09.2005 14:01:02
Denis
Hallo Christoph,
jetzt muß ich Dich noch etwas fragen, ich hoffe Du kannst mir weiterhelfen :
Folgendes :
Mit Hilfe deines kleinen Programmes kann ich jetzt Verschiedene Bereiche Namen zuordnen. Da ich jetzt sehr viele Bereiche zuzuordenen habe (A..A_End; B..B_End, ....) - insg. so um die 30 stück, würde ich dies gerne mit Hilfe einer Schleife ausführen, sodass ich nicht 30 Mal den VBA- Code einfügen und verändern muß. Leider habe ich wieder mal keine Ahnnung, wir dies im VBA- Code möglich ist.
Vielleicht kannst Du mir nochmals weiterhelfen.
Wäre nett von Dir.
Gruss
Denis
Anzeige
AW: Bezugsnamen in VBA
15.09.2005 18:02:09
Volker
Hallo Denis,
nach Christoph's Beitrag bin ich zwar nicht mehr sicher, ob du so was hier meintest.
Aber wenn ich schon getippt hab, will ich's dir auch um die Ohren hauen ;-)

Sub Makro1()
unter_a_end = Range("A").Row + Range("A").Rows.Count
b_anf = Range("B").Row
a_col = Range("A").Column
b_col = Range("B").Column
Range(Cells(unter_a_end, a_col + 1), Cells(b_anf - 1, b_col + 1)).Select
End Sub

Wenn du tatsächlich nicht selektieren willst, sondern den bereich anders benutzen oder bearbeiten, kannst du sowas wie das hier nehmen:

Sub Makro1()
Dim rng As Range
a_end = Range("A").Row + Range("A").Rows.Count
b_anf = Range("B").Row
a_col = Range("A").Column
b_col = Range("B").Column
Set rng = Range(Cells(a_end, a_col + 1), Cells(b_anf - 1, b_col + 1))
For Each zelle In rng
'tue die und jenes mit jeder zelle des bereiches
Next
End Sub

Gruß und bis Morgen
Volker
Anzeige
AW: Bezugsnamen in VBA
16.09.2005 07:17:12
Denis
Danke Dir Volker,
Dein Vorschlag kann ich auch gut gebrauchen, für die weitere Bearbeitung.
Besten Dank nochmals
Gruss
Denis
War mir ein Fest (o.T.)
16.09.2005 07:30:50
Volker
.
AW: Bezugsnamen in VBA
15.09.2005 18:12:17
Thomas
Das meiste hast Du ja schon.
'R_A = Zeilennummer_in_der_A_gefunden_wird
R-A = Cells.Find(What:="A", After:=ActiveCell, LookIn:=xlValues, LookAt:= _xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _True).Row~f~
bzw.
'C_A =&gt Spaltennummer_in_der_A_gefunden_wird
~f~C_A = Cells.Find(What:="A", After:=ActiveCell, LookIn:=xlValues, LookAt:= _xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _True).Column
Range(Cells(R_A, c_A), Cells(R_A_End, C_A_End)).Select
Damit markierst Du den Bereich zwischen "A" und "A_End".
Na ja, der Rest ist ein bischen rechnen.
Hoffe das hilft Dir weiter!
Gruß von Thomas
Anzeige
AW: Bezugsnamen in VBA
16.09.2005 07:18:14
Denis
Danke Dir Thomas
Gruss
Denis

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige