Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1604to1608
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Range: Rückgabe des Spaltennamens

Range: Rückgabe des Spaltennamens
04.02.2018 16:29:40
Hans-Jürgen
Hallo Wissende,
kurze Frage - kurze Antwort:
Gegeben sei ein Range, beispielsweise A1:AD100.
Ich weiß, dass man mit .Column und .Count diverse Möglichkeiten hat. Ich suche aber nach einer Möglichkeit, die Spaltennummer in einen String umzurechnen, der der Spaltenbezeichnung entspricht. Beispielsweise soll die .cells(28).column den Wert "AB" ergeben.
Geht das irgendwie?
Oder hilfsweise: Gibt es eine handliche Funktion, mit der man die Spaltennummern in die entsprechenden Buchstaben umrechnen kann?
Vielen Dank!
Hans-Jürgen

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

Betreff
Datum
Anwender
Anzeige
AW: Range: Rückgabe des Spaltennamens
04.02.2018 16:35:36
Hajo_Zi
Hallo Hans-Jürgen,
Cells(9 benötig immer 2Angaben.
Warum "AB" aus dem Bereich "A:AD"?

Ich gebe keinen Dank für eine Rückmeldung, da ich durch solche Beiträge nicht meine Beitragszahl erhöhen muss.
Also ich schreibe keine Beiträge mit dem Betreff "Gerne u. Danke für die Rückmeldung....."
Rückmeldung ist ja in der Heutigen Zeit nicht üblich und die wenigen die eine Rückmeldung geben,
mögen mir das verzeihen, das kein Danke für eine Rückmeldung kommt.
Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Anzeige
AW: Range: Rückgabe des Spaltennamens
04.02.2018 16:53:32
Hans-Jürgen
Hallo Hajo,
ich habe konkret folgendes Problem:
Dieser Range A1:AD100 ist der Datenbereich, so wie er auf dem Sheet mit Linien markiert ist. (Außerhalb dieses Range ist die Erfassung nicht erlaubt).
Es sind allerdings nicht alle Zeilen belegt (die 100 ist der Maximalwert) und auch nicht alle Spalten (AD ist der Maximalwert)
Beispielsweise erfolgten die Eingaben in Zeilen nur bis 76 und in den Spalten nur bis AB.
Ich will nun einen zweiten Range machen (für den auch z.B. die Pflichtfelder und Gültigkeitsregeln geprüft werden müssen), der den variabel erfassten Bereich darstellt, also A1:AB76. Für die Zeile ist das kein Problem, aber für die Spalten wollte ich mit einem For Each die Zellen durchlaufen und schauen, ob sie leer sind. Am Ende habe ich dann eine (in diesem Beispiel) 28 und muss das zu "AB" machen
Vielen Dank
Hans-Jürgen
Anzeige
AW: Range: Rückgabe des Spaltennamens
04.02.2018 17:03:32
Hajo_Zi
Hallo Hans-Jürgen,
die Zeile die geprüft wird hast Du ja. Als lese bei Cells().Address(false,false) aus was vor der Zahl steht.
Gruß Hajo
AW: Range: Rückgabe des Spaltennamens
04.02.2018 17:12:24
Sepp
Hallo Hans-Jürgen,
wozu braucht man in VBA die Adresse der Spalte?
Möglichkeiten gibt es vile.
Modul Modul2
Option Explicit 
 
Sub hans_juergen() 
Dim lngLastRow As Long, lngLastCol As Long 
 
With Sheets("Tabelle1") 
lngLastRow = lastCell(.Name & "!A1:AD100") 
lngLastCol = lastCell(.Name & "!A1:AD100", False) 
 
MsgBox "lezte Zeile:" & vbTab & .Rows(lngLastRow).Address & vbLf & _
  "Letzte Spalte:" & vbTab & .Columns(lngLastCol).Address 
End With 
End Sub 
 
Private Function lastCell(ByVal RangeAddress As String, Optional ByVal lastRow As Boolean = True) As Long 
Dim varLast As Variant 
 
If lastRow Then 
  varLast = Evaluate("MAX(IF(" & RangeAddress & "<>"""",ROW(" & RangeAddress & ")))") 
Else 
  varLast = Evaluate("MAX(IF(" & RangeAddress & "<>"""",COLUMN(" & RangeAddress & ")))") 
End If 
 
If IsError(varLast) Then 
  lastCell = -1 
Else 
  lastCell = Application.Max(1, varLast) 
End If 
End Function 

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0

Gruß Sepp

Anzeige
AW: Range: Rückgabe des Spaltennamens
04.02.2018 18:42:37
Werner
Hallo Hans-Jürgen,
ehrlich gesagt ist mir auch nicht so recht klar, wozu du das brauchst.
Public Sub Spalte()
Dim loSpalteNummer As Long, strSpalteBuchstabe As String
With Worksheets("Tabelle1")
'Ermitteln der letzten belegten Spalte in Zeile 1
loSpalteNummer = Cells(1, Columns.Count).End(xlToLeft).Column
'Ausgabe der Spaltennummer
MsgBox "Letzte belegte Spalte hat die Nummer:  " & loSpalteNummer
'Spaltenbuchstabe aus Zelladresse
strSpalteBuchstabe = Replace(.Cells(1, loSpalteNummer).Address(0, 0), 1, "")
'Ausgabe des Spaltenbuchstabens
MsgBox "Letzte belegte Spalte ist die Spalte:  " & strSpalteBuchstabe
End With
End Sub
Gruß Werner
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige