Tipps & Tricks 10.07.2007, 20:30 Uhr

In Excel-Makro Spaltenbuchstabe in Spaltennummer umwandeln

Problem: Ich habe im Excel-VBA eine Abfrage mit Input-Boxen, bei denen der Benutzer erst die Zeilennummern und dann einige Spalten angeben muss. Nun habe ich jedoch das Problem, das mein Makro auf Spalten-Nummern aufgebaut ist und die Benutzer natürlich immer wie üblich den Spalten-Buchstaben eingeben wollen. Meine Frage lautet also, wie kann ich mein Makro am einfachsten so anpassen, dass der Benutzer den Spaltenbuchstaben angeben kann, ich jedoch mit der entsprechenden Spalten-Nummer weiterfahren kann.
Am Anfang ihres Makros haben Sie die Variablen für die abzufragenden Spalten als "Byte" deklariert (Beispiel: Dim SpalteQ as Byte). Dieser Datentyp kann nur Ganz-Zahlen von 0 bis 255 speichern.
In Excel-Makro Spaltenbuchstabe in Spaltennummer umwandeln
In Excel-Makro Spaltenbuchstabe in Spaltennummer umwandeln
Sie möchten nun aber, dass der Benutzer einen Buchstaben eingeben kann. Buchstaben und Zeichenfolgen sind dem Datentyp "String" zuzuordnen. Das heisst, Sie deklarieren als erstes für jede abzufragende Spalte zusätzlich eine Variable als "String" (Beispiel: Dim SpQ as String).
Nun passen Sie jede Inputbox an, welche eine Spalte abfragt. Ersetzen Sie die bisherigen Variablen (SpalteQ) die Sie vom Benutzer füllen lassen durch die neue, als String deklarierte Variable (SpQ). Am Ende dieses Code-Schnipsels wandeln Sie jetzt den so erhaltenen Spaltenbuchstaben in die entsprechende Spalten-Nummer um mit der Zeile:
"SpalteQ = Columns(SpQ).Column"
In Excel-Makro Spaltenbuchstabe in Spaltennummer umwandeln
In Excel-Makro Spaltenbuchstabe in Spaltennummer umwandeln
Um in unserem Beispiel die Umwandlung zu testen, wurde die anhand des Buchstabens ermittelte Spaltenzahl in einer Message-Box ausgegeben:
In Excel-Makro Spaltenbuchstabe in Spaltennummer umwandeln
--------------------------------------------
MAKRO ZUM KOPIEREN:
--------------------------------------------
Sub SpaltenBuchstabe()
Dim SpQ As String
Dim SpalteQ As Byte
'Spaltenbuchstabe abfragen
SpQ = InputBox( _
"In welcher Spalte steht gesuchte Wert?:", _
"Spalte", "U")
'Spaltenbuchstabe in Spaltennummer umwandeln
SpalteQ = Columns(SpQ).Column
'Spaltennummer in Message-Box ausgeben
'MsgBox SpalteQ
End Sub
--------------------------------------------



Kommentare
Es sind keine Kommentare vorhanden.