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

Forumthread: Spalten mit Überschriften-Namen ansprechen

Spalten mit Überschriften-Namen ansprechen
14.01.2013 15:36:33
Martin
hallo!
ich habe zwar schon viel gesucht, leider bin ich nicht fündig geworden. ich möchte nur eine bestimmte spalte umformatieren. da sich die position der spalte verändern kann, hilft mir das ansprechen mit
Range(E:E).Select
leider nicht. ich habe leider keine lösung gefunden, wie ich die spalte (z.b. ist der name, der in der ersten zeile steht "description") mit dem überschriftennamen selektieren kann, und damit dann meine notwendigen umformatierungen machen kann.
vielen dank im voraus für eure hilfe,
gruss,
martin

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spalten mit Überschriften-Namen ansprechen
14.01.2013 15:42:49
Klaus
Hi Martin,
dieser Code sucht die Überschrift und selektiert die entsprechende Spalte.
Option Explicit
Sub MarkiereSpalte()
On Error GoTo hell
Dim sText As String
Dim iCol As Integer
Dim lRow As Long
'nach dieser Überschrift suchen!
sText = "description"
'in dieser Zeile stehen die Überschriften!
lRow = 1
iCol = Application.WorksheetFunction.Match(sText, Cells(lRow, 1).EntireRow, False)
Cells(1, iCol).EntireColumn.Select
GoTo heaven
hell:
MsgBox ("Überschrift " & sText & " nicht vorhanden!")
heaven:
End Sub
Grüße,
Klaus M.vdT.

Anzeige
AW: Spalten mit Überschriften-Namen ansprechen
14.01.2013 16:14:38
Martin
halo Klaus!
vielen dank fuer die rasche antwort. das selektieren funktioniert perfekt! nun habe ich noch eine blöde frage (das ist wahrscheinlich meinem vba anfängerstatus geschuldet), wenn ich nun die selektierten zellen formatieren wil, müesste es mit
....
iCol = Application.WorksheetFunction.Match(sText, Cells(lRow, 1).EntireRow, False)
Cells(1, iCol).EntireColumn.Select
ActiveCells.EntireColumn.ColumnWidth = 80
ActiveCells.EntireColumn.HorizontalAlignment = xlLeft
....

funktionieren, oder? (Es tuts bei mir leider nicht!)
danke im voraus für die nochmalige hilfe,
herzliche gruesse,
martin

Anzeige
AW: Spalten mit Überschriften-Namen ansprechen
14.01.2013 16:39:45
Rudi
Hallo,
Sub aaaa()
With Columns(Application.Match("description", Rows(1), 0))
.ColumnWidth = 80
.HorizontalAlignment = xlLeft
End With
End Sub

Gruß
Rudi

AW: Spalten mit Überschriften-Namen ansprechen
14.01.2013 16:49:29
Martin
hallo rudi!
vielen dank!!!!
lg martin

.selection usw
15.01.2013 08:22:36
Klaus
Hi Martin,
schau dir Rudis Code nochmal in Ruhe an (er hat auf .select und .selection verzichtet!) und lies dann diese hervorragende Erklärung von Peter Haserodt:
http://www.online-excel.de/excel/singsel_vba.php?f=78
Wenn du das beachtest, bist du im VBA-Scripten gleich ein Level höher.
Grüße,
Klaus M.vdT.
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Spalten mit Überschriften-Namen ansprechen in Excel VBA


Schritt-für-Schritt-Anleitung

Um eine bestimmte Spalte in Excel VBA anhand der Überschrift anzusprechen, kannst Du folgenden Code verwenden:

Option Explicit
Sub MarkiereSpalte()
    On Error GoTo hell
    Dim sText As String
    Dim iCol As Integer
    Dim lRow As Long
    ' nach dieser Überschrift suchen!
    sText = "description"
    ' in dieser Zeile stehen die Überschriften!
    lRow = 1
    iCol = Application.WorksheetFunction.Match(sText, Cells(lRow, 1).EntireRow, False)
    Cells(1, iCol).EntireColumn.Select
    GoTo heaven
hell:
    MsgBox ("Überschrift " & sText & " nicht vorhanden!")
heaven:
End Sub

Mit diesem Code wird die Spalte mit der Überschrift "description" selektiert. Achte darauf, dass die Überschrift in der ersten Zeile steht.


Häufige Fehler und Lösungen

  • Fehler: Überschrift nicht vorhanden
    Wenn die angegebene Überschrift nicht gefunden wird, gibt es eine Fehlermeldung. Stelle sicher, dass die Überschrift korrekt geschrieben ist und in der angegebenen Zeile vorhanden ist.

  • Problem mit Formatierung
    Wenn die Formatierung nicht funktioniert, überprüfe, ob Du ActiveCells anstelle von ActiveCell verwendest. Der richtige Code zur Formatierung könnte wie folgt aussehen:

Cells(1, iCol).EntireColumn.ColumnWidth = 80
Cells(1, iCol).EntireColumn.HorizontalAlignment = xlLeft

Alternative Methoden

Eine andere Methode, um die Spalte anzusprechen, ist die Verwendung der With-Anweisung:

Sub AendereSpalte()
    With Columns(Application.Match("description", Rows(1), 0))
        .ColumnWidth = 80
        .HorizontalAlignment = xlLeft
    End With
End Sub

Dies vermeidet die Verwendung von .Select und macht den Code effizienter.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie Du die Spalte einer Tabelle ansprechen und umformatieren kannst:

  1. Hintergrundfarbe ändern:

    Cells(1, iCol).EntireColumn.Interior.Color = RGB(255, 255, 0) ' Gelb
  2. Schriftart und -größe ändern:

    Cells(1, iCol).EntireColumn.Font.Name = "Arial"
    Cells(1, iCol).EntireColumn.Font.Size = 12

Diese Beispiele zeigen, wie Du verschiedene Eigenschaften einer gesamten Spalte ändern kannst.


Tipps für Profis

  • Verwende ListObjects: Wenn Du mit Tabellen in Excel arbeitest, kannst Du ListObjects verwenden, um Spalten einfacher anzusprechen. Zum Beispiel:
Dim lo As ListObject
Set lo = ActiveSheet.ListObjects("Tabelle1")
lo.ListColumns("description").Range.Interior.Color = RGB(0, 255, 0) ' Grün
  • Optimierung durch Fehlerbehandlung: Füge eine umfassende Fehlerbehandlung hinzu, um den Code robuster zu machen.

FAQ: Häufige Fragen

1. Wie kann ich die Überschrift einer Spalte ändern?
Du kannst die Überschrift einer Spalte mit folgendem Code ändern:

Cells(1, iCol).Value = "Neue Überschrift"

2. Was ist der Unterschied zwischen ActiveCell und ActiveCells?
ActiveCell bezieht sich auf eine einzelne Zelle, während ActiveCells mehrere Zellen bezeichnen kann. Verwende ActiveCell, wenn Du nur eine Zelle ansprechen möchtest.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige