Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Namen einer ganzen Zeile / Spalte zuweisen

Namen einer ganzen Zeile / Spalte zuweisen
Jonathan
Hey,
kann ich einen Namen für eine komplette Spalte / Zeile erstellen, um per VBA darauf zuzugreifen?
So dass ich dann z.B.
.cells(ZeilenName, 1)
schreiben kann
Ich habe es probiert, indem ich für Zeile 66 einen Namen definiert habe: ='UD Buchungsarten'!$66:$66
und dann per VBA wie oben geschrieben benutzt - klappt allerdings leider nicht so einfach.
LG
Anzeige
[Zeilenname] anstatt Cells(Zeilenname,1)
08.07.2011 10:23:43
NoNet
Hallo Jonathan,
Du verwendest die falsche Syntax !
Mit Cells(Zeilenname,1) erwartet VBA, dass Zeilenname eine numerische Variable ist !
Um auf einen definierten (Bereichs-)Namen per VBA zuzugreifen, verwendet man folgende Syntax :
Names("Zeilenname") oder auch verkürzt : [Zeilenname]
Mit folgender VBA Codezeile kann man z.B. die gesamte Zeile FETT drucken :
[Zeilenname].font.bold=true
Um auf eine einzelne Zelle des definierten Namens zuzugreifen, kannst Du die Eigenschaft CELLS() zusätzlich verwenden :
[Zeilenname].Cells(1,5).Font.Color=vbred
formatiert die 5. Zelle (genauer : die Zelle der 1.Zeile, 5.Spalte des definierten Bereiches) in roter Schrift.
Wenn Du für den Bereich B11:H20 den Namen "Test" vergibst, wrüde folgende Zeile also die Zelle F11 rot einfärben :
[Test].Cells(1,5).Font.Color=vbred
Ich hoffe, das war verständlich erklärt und Du kommst damit klar !
Gruß, NoNet
Anzeige
AW: Namen einer ganzen Zeile / Spalte zuweisen
08.07.2011 10:24:51
Matthias
Hallo
myrow ist der definierte Name
so erstellt:
Sub meineZeile()
Rows("66:66").Name = "MyRow" 'Name definieren
End Sub


'Zeigt aus Spalte A,B,C den Wert der Zellen der Zeile 66:
Sub ZeigeBox()
Dim x&
For x = 1 To 3
MsgBox Cells(Range("myrow").Row, x), vbInformation, Cells(Range("myrow").Row, x).Address
Next
End Sub
Gruß Matthias
Anzeige
AW: Namen einer ganzen Zeile / Spalte zuweisen
08.07.2011 13:23:49
Jonathan
Danke für die super Erklärungen! Genau das wollte ich wissen!! ;-)
Gibt es noch eine Möglichkeit, die letzte Zeile/Spalte in einem def. Namensbereich auszugeben?
AW: Namen einer ganzen Zeile / Spalte zuweisen
08.07.2011 14:37:31
Jonathan
Die Markierung als "noch offene Frage" wurde leider durch meine letzte Antwort gelöscht... Die Frage:
"Gibt es noch eine Möglichkeit, die letzte Zeile/Spalte in einem def. Namensbereich auszugeben?"
konnte ich leider noch nicht lösen.
Anzeige
noch eine weitere Rückfrage
08.07.2011 15:29:37
Jonathan
Hey,
wie kann ich denn
1) Anzahl der Zeilen/Spalten in dem def. Bereich zählen
2) und die (wie oben geschrieben) letzte Zeile/Spalte ermitteln (ohne Schleife) und bestenfalls als Ausgabe der richtigen Zelle und nicht der Zelle innerhalb des Namenbereichs
Danke Euch!!!
AW: hier mal zum Testen ...
10.07.2011 17:21:29
Jonathan
Super, vielen vielen Dank!! Hat mir sehr weiter geholfen!
AW: Namen einer ganzen Zeile / Spalte zuweisen
08.07.2011 13:41:06
Jonathan
Zu meiner letzten Frag noch eine Weitere:
Kann ich für einen Bereich auch die "normalen" Werte mit denen des Bereichs kombinieren?
Verwende ich z.B.
.Range([UKAusgaben].Cells(1, TarCol), [UKAusgaben].Cells(LastCell, TarCol)).Name = "xx"
(in der Variablen TarCol ist die aktuelle Spalte gespeichert)
werden Zeilen- und Spaltennummern auf den Bereich bezogen; ich möchte aber die Zeilennummer meines Bereichs und die Spaltennummer der wirklich gerade ausgewählten Spalte haben. Das Ganze mache ich, um nachher im Tabellenblatt noch Spalten und Zeilen einfügen zu können, ohne den VBA Code ändern zu müssen.
Danke Euch!
Anzeige
hat sich erleidgt - habt Ihr schon beantwortet!!
08.07.2011 14:04:46
Jonathan

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Infobox / Tutorial

Namen einer ganzen Zeile / Spalte zuweisen in Excel


Schritt-für-Schritt-Anleitung

Um einer ganzen Zeile oder Spalte in Excel einen Namen zuzuweisen, kannst du die folgenden Schritte befolgen:

  1. Definiere den Namen für eine Zeile oder Spalte:

    • Öffne den VBA-Editor (ALT + F11).
    • Füge einen neuen Modulus hinzu und schreibe den folgenden Code:
    Sub meineZeile()
       Rows("66:66").Name = "MyRow" 'Name definieren
    End Sub
  2. Greife auf den definierten Namen zu:

    • Um über den definierten Namen auf eine Zelle zuzugreifen, benutze die Syntax:
    MsgBox [MyRow].Cells(1, 1).Value ' Gibt den Wert der ersten Zelle in der Zeile "MyRow" aus
  3. Verwende den Namen in einer Funktion:

    • Du kannst auch den Namen in einer Funktion verwenden, um beispielsweise die Schriftfarbe zu ändern:
    [MyRow].Font.Color = vbRed ' Ändert die Schriftfarbe der gesamten Zeile in Rot

Häufige Fehler und Lösungen

  • Fehler: "Objekt nicht gefunden"

    • Ursache: Der Name wurde nicht korrekt definiert oder existiert nicht.
    • Lösung: Stelle sicher, dass der Name korrekt geschrieben ist und tatsächlich auf die Zeile oder Spalte verweist.
  • Problem beim Zugriff auf Zellen:

    • Wenn du versuchst, mit Cells(Zeilenname, 1) auf einen definierten Namen zuzugreifen, wird ein Fehler angezeigt, da Cells eine numerische Variable erwartet.
    • Lösung: Nutze stattdessen Names("Zeilenname") oder [Zeilenname].

Alternative Methoden

  • Verwendung von Namen in Formeln:

    • Du kannst auch in Excel-Formeln auf die definierten Namen zugreifen. Zum Beispiel:
    =SUM(MyRow) ' Summiert alle Werte in der Zeile "MyRow"
  • Definierte Namen in Datenvalidierung:

    • Nutze die definierten Namen in der Datenvalidierung, um sicherzustellen, dass nur Werte aus einer bestimmten Zeile oder Spalte ausgewählt werden können.

Praktische Beispiele

  1. Daten aus einer Zeile ausgeben:

    Sub ZeigeBox()
       Dim x As Integer
       For x = 1 To 3
           MsgBox Cells(Range("MyRow").Row, x), vbInformation, Cells(Range("MyRow").Row, x).Address
       Next
    End Sub

    Dieses Beispiel gibt die Werte der ersten drei Zellen in der Zeile "MyRow" aus.

  2. Letzte Zeile oder Spalte ermitteln:

    Um die letzte Zeile oder Spalte in einem definierten Namensbereich zu ermitteln, kannst du folgende Methode verwenden:

    Sub LetzteZeile()
       Dim letzteZeile As Long
       letzteZeile = Range("MyRow").Rows.Count
       MsgBox "Die letzte Zeile ist: " & letzteZeile
    End Sub

Tipps für Profis

  • Verwende aussagekräftige Namen: Wähle Namen, die den Inhalt der Zeilen oder Spalten beschreiben, um die Lesbarkeit zu erhöhen.

  • Namen formatieren: Du kannst die Schriftart oder Farbe der Namen ändern, um visuelle Abgrenzungen zu schaffen:

    [MyRow].Font.Color = RGB(255, 0, 0) ' Ändert die Schriftfarbe in Rot
  • Vermeidung von Namenskonflikten: Stelle sicher, dass die Namen, die du vergibst, nicht in Konflikt mit anderen Excel-Funktionen stehen.


FAQ: Häufige Fragen

1. Wie kann ich eine ganze Spalte benennen?
Du kannst eine ganze Spalte benennen, indem du einfach Columns("A:A").Name = "MeineSpalte" im VBA-Code verwendest.

2. Wie greife ich auf benannte Bereiche in Formeln zu?
In Excel-Formeln kannst du einfach den Namen verwenden, z. B. =SUM(MyRow).

3. Gibt es eine Möglichkeit, die Anzahl der Zeilen in einem benannten Bereich zu zählen?
Ja, du kannst die Anzahl der Zeilen mit Range("MyRow").Rows.Count ermitteln.

4. Wie kann ich die Schriftfarbe einer bestimmten Zelle in der benannten Zeile ändern?
Verwende die folgende VBA-Zeile: [MyRow].Cells(1, 5).Font.Color = vbRed um die Schriftfarbe der Zelle F66 zu ändern.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige