wie kann ich in VB einen "Spaltenbuchstaben" in die "Spaltenzahl" wandeln?
z.B. A = 1; B = 2 usw.
Mit Select Case ist es mir klar, aber ich denke das müsste doch eleganter gehen
Vielen Dank im Voraus
Gruß Horst
Sub Horst()
Dim SpNr As Integer
SpNr = ActiveCell.Column
MsgBox SpNr
SpNr = Range("A1").Column
MsgBox SpNr
End Sub
Sub SpaltenNummer()
Dim s As String
s = InputBox(vbCr & vbCr & vbCr & "Spaltenbuchstabe(n):", "Spaltennummer")
If s = "" Then
MsgBox "Keine Eingabe !" & vbCr & vbCr & "Makro-Abbruch !", 0, _
"Dezenter Hinweis für " & Application.UserName & ":"
Exit Sub
End If
s = UCase(s)
MsgBox "Spaltennummer Spalte " & s & ": " & Range(s & "1").Column
End Sub
Um in Excel VBA eine Spaltenbezeichnung in eine Spaltenzahl umzuwandeln, kannst Du das folgende Makro verwenden:
Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
Klicke auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.
Kopiere den folgenden Code in das Modul:
Sub SpaltenNummer()
Dim s As String
s = InputBox("Spaltenbuchstabe(n):", "Spaltennummer")
If s = "" Then
MsgBox "Keine Eingabe! Makro-Abbruch!", vbExclamation
Exit Sub
End If
s = UCase(s)
MsgBox "Spaltennummer für Spalte " & s & ": " & Range(s & "1").Column
End Sub
Schließe den VBA-Editor und kehre zu Excel zurück.
Führe das Makro mit ALT + F8 aus und wähle SpaltenNummer aus.
Das Makro fragt nach einer Spaltenbezeichnung wie "A" oder "AB" und gibt die entsprechende Spaltennummer aus.
Fehler 1: Leere Eingabe
Fehler 2: Ungültiger Spaltenbuchstabe
Neben dem oben beschriebenen Makro gibt es alternative Methoden, um die Excel Adresse zu manipulieren:
Verwende die Cells-Funktion:
Dim spnr As Integer
spnr = Cells(1, 1).Column ' Gibt die Spaltennummer von Zelle A1 zurück
MsgBox spnr
Nutze die Range-Funktion, um direkt auf die Spaltennummer zuzugreifen:
Dim spnr As Integer
spnr = Range("C1").Column ' Gibt die Spaltennummer von Zelle C1 zurück
MsgBox spnr
Hier ist ein praktisches Beispiel, wie Du die Umwandlung in einer Excel-Tabelle nutzen kannst:
Nutze die Application.InputBox-Funktion, um sicherzustellen, dass die Eingabe nur gültige Daten akzeptiert:
Dim s As String
s = Application.InputBox("Gib die Spaltenbezeichnung ein:", Type:=2)
Halte deine Makros organisiert, indem Du sie in separate Module unterteilst, insbesondere wenn Du mehrere Funktionen zur Umwandlung von Adressen in Excel hast.
1. Wie kann ich die Excel Adresse in VBA umwandeln?
Du kannst die Range- und Cells-Methoden verwenden, um auf bestimmte Zellen zuzugreifen und deren Spaltennummern zu ermitteln.
2. Was ist der Unterschied zwischen Range und Cells?
Range verwendet die Zelladresse (z.B. "A1"), während Cells die Zeilen- und Spaltennummer als Argumente benötigt (z.B. Cells(1, 1) für A1).
3. Kann ich die Spaltennummer direkt in einer Formel verwenden? Ja, Du kannst die Spaltennummer in Formeln verwenden, um Berechnungen basierend auf der Position von Zellen durchzuführen.