Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema RefEdit
BildScreenshot zu RefEdit RefEdit-Seite mit Beispielarbeitsmappe aufrufen

Bereich auswählen, Namensmanager - VBA | Herbers Excel-Forum


Betrifft: Bereich auswählen, Namensmanager - VBA von: Jonathan
Geschrieben am: 01.02.2010 01:00:16

Hallo zusammen!

Ich habe ein Makro aufgezeichnet, zum def. von Namensbereichen. Der ausgewählte Bereich wird in VBA wie folgt ausgegeben:

"=Ursprungsdaten!R18C13:R26C13"
Nun soll dieser Bereich aber immer automatisch ermittelt werden.In Zelle M17 steht die Überschrift des Bereiches, es sollen also alle Zellen von M17:Mx (letzte Zeile im Bereich von M17:M25, da darunter wieder weitere Daten stehen, welche nicht berücksichtigt werden sollen) definiert werden.

Jetzt komme ich zu der zweiten Frage:
Mit
ActiveWorkbook.Names.Add

Habe ich es geschafft, neue Namensbereiche zu erstellen, allerdings tritt ein Problem auf, wenn der Name schon besteht. Irgendwie muss also vorher geprüft werden, ob der Bereich existiert, wenn ja, soll er erweitert werden. Dies habe ich aufgezeichnet:
ActiveWorkbook.Names("OKForderungen").RefersToR1C1

Wofür steht das RefersToR1C1 und wie kann ich überprüfen, ob der Name besteht?

Ich hoffe, Ihr könnt mir bei dieser umfangreichen Sache kurz helfen.

LG

Jonathan

  

Betrifft: AW: Bereich auswählen, Namensmanager - VBA von: Renee
Geschrieben am: 01.02.2010 09:30:14

Hi Jonathan,

Wieso brauchst du dazu VBA ?
Definier doch deinen Namen einmal in der Mappe und er passt sich automatisch an:

=BEREICH.VERSCHIEBEN(OKForderungen!$M$17;0;0;ANZAHL2(OKForderungen!$M$17:$M$25))

Voraussetzung ist, das in den Zeilen 17..25 keine Leerzeilen vorkommen.

GreetZ Renée


  

Betrifft: AW: Bereich auswählen, Namensmanager - VBA von: Jonathan
Geschrieben am: 01.02.2010 12:46:29

Hey,

danke für den Tipp - leider ist die Anzahl der Leerzeichen genau ein Problem. Das zweite ist, dass ich einen bestimmten Bereich vorgegeben habe, in dem auch neue Bereiche erstellt werden können (klingt jetzt schwachsinnig, ist aber wichtig...) und dies soll halt automatisch mit VBA passieren...


  

Betrifft: AW: Bereich auswählen, Namensmanager - VBA von: Renee
Geschrieben am: 01.02.2010 13:33:40

Hi,

So schnell wechsle ich nicht auf VBA ;-)
Mit Leerzeilen (was du mit Leerzeichen ist mir nicht klar!):

=BEREICH.VERSCHIEBEN(Tabelle2!$M$17;0;0;VERWEIS(2;1/(Tabelle2!$M$17:$M$25<>"");ZEILE(Tabelle2!$M:$M)) )
GreetZ Renée


  

Betrifft: AW: Bereich auswählen, Namensmanager - VBA von: Jonathan
Geschrieben am: 01.02.2010 23:42:14

Hey,

das "Problem" und der Grund für eine VBA Lösung ist, dass ich die Spalten A-Z (z.B.) vorgebe. In Zeile 1 KANN eine Überschrift für den Bereich vergeben werden, in den Zeilen 2-15 können dann die Werte des Bereichs eingegeben werden. Steht in Zeile 1 nichts, gibts auch keinen Bereich. Erst wenn eine Eingabe erfolgt, soll ein Bereich def. werden. Erweiter ich die Werte einer Spalte, soll der Bereich angepasst werden.

Die Formel für den Bereich funktioniert ja nur bei bereits selbst def. Bereichen.

Ich hoffe, ich konnte es einigermaßen verständlich erklären!?

LG


  

Betrifft: AW: Bereich auswählen, Namensmanager - VBA von: Renee
Geschrieben am: 02.02.2010 11:17:02

Hi Jonathan,

...jetzt kann ich dir leider nicht mehr folgen. Error: inconsistent information overflow... ;-)

Um auf deine Ursrpungsfragen zurückzukommen.
1. Grundsätzlich gibt es in VBE eine Hilfsfunktion, also Cursor auf .RefersToR1C1 und F1 drücken. Diese Eigenschaft gibt an auf welchen Bereich / Formel sich der Name bezieht.
2. Testen ob Name schon existiert kannst du mit testen auf einen VBA-Fehler abfangen:

    Dim strBezug As String
    On Error Resume Next
    strBezug = ThisWorkbook.Names("BlaBla").RefersToR1C1
    If Err = 0 Then
        MsgBox "Bezieht sich auf: " & strBezug
    Else
        MsgBox "Name existiert nicht!"
    End If
    On Error GoTo 0

GreetZ Renée


Beiträge aus den Excel-Beispielen zum Thema "Bereich auswählen, Namensmanager - VBA"