Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Spaltennummer anhand der aktiven Zelle auswählen

Spaltennummer anhand der aktiven Zelle auswählen
28.06.2024 19:25:47
GerdB51
Hallo,
für Cracks ein Kinderspiel. Mit meinen limitierten VBA-Kenntnissen stoße ich aber hier an meine Grenzen.
Ich möchte einen Zellbezug (A1:E1) anhand der Spaltennummer der aktiven Zelle ansprechen.
Mit:

Sub nachSpalte()
Dim dieSpalte As String
ActiveCell.Offset(dieSpalte - 2).Select
If dieSpalte Is 12 Then
ActiveCell.Offset(0, 1).Range("A1:E1").Select
Else
ActiveCell.Offset(0, 11).Range("A1:E1").Select
If dieSpalte Is 114 Then
ActiveCell.Offset(0, 1).Range("A1:E1").Select
Else .....
End Sub


Klappt es nicht. Vor allem bei der Zeile („If dieSpalte Is 12“) steigt Excel aus.
Ich bin für jede Hilfe dankbar.
Anzeige
AW: Spaltennummer anhand der aktiven Zelle auswählen
28.06.2024 19:53:26
BoskoBiati2
Hi,

Dim dieSpalte As String

Dim dieSpalte As long

Außerdem hat dieSpalte keinen Wert, was soll das werden?

Ich verstehe den Sinn dieses Makros nicht, vielleicht hat es auch keinen.......

Gruß

Edgar
AW: Spaltennummer anhand der aktiven Zelle auswählen
28.06.2024 21:39:01
GerdL
Hallo GerdB51

Sub nachSpalte_2()


Select Case ActiveCell.Column
Case 12, 114: ActiveCell.Offset(0, 1).Resize(1, 5).Select
Case Else: ActiveCell.Offset(0, 11).Resize(1, 5).Select
End Select

End Sub

Gruß Gerd
Anzeige
AW: Spaltennummer anhand der aktiven Zelle auswählen
29.06.2024 11:03:05
GerdB51
Hallo GerdL,
vielen Dank für Deine Hilfe. Es ist schon der richtige Ansatz, doch noch nicht genau das, was ich brauche. Ich lade hier mal eine Probedatei hoch.

Die Ausgangssituation ist wie in Zeile 12. Ich möchte, abhängig davon, in welcher Spalte sich der Wert „Spieler“ befindet, die Zeile 2 Spalten weiter bis 2 Spalten vor dem Ende der Tabelle markieren.
Also als Beispiel:
befindet sich „SPIELER“ in Spalte K, dann soll die Zeile von Spalte M bis Spalte AW markiert werden (das sind 36 Spalten)
befindet sich „SPIELER“ in Spalte O, dann soll die Zeile von Spalte Q bis Spalte AW markiert werden (das sind 32 Spalten)
befindet sich „SPIELER“ in Spalte S, dann soll die Zeile von Spalte U bis Spalte AW markiert werden (das sind 28 Spalten)
usw. Vielleicht hast Du auch dafür eine Idee. Mir wäre damit sehr geholfen, die Originaldatei besteh aus 6480 Zeilen und 76 Spalten.
Die Daten sollen anschließend „entzerrt“ werden, so wie es in Zeile 14 aussieht. Das müsste ich aber selbst hinbekommen.
Gruß Gerd
https://www.herber.de/bbs/user/170562.xlsm
Anzeige
AW: Spaltennummer anhand der aktiven Zelle auswählen
29.06.2024 04:30:46
Onur
Ich verstehe den Schwachsinn nicht:
ActiveCell.Offset(0, 11).Range("A1:E1").Select 

Was genau soll das denn, deiner Meinung nach, bewirken ?
AW: Spaltennummer anhand der aktiven Zelle auswählen
29.06.2024 11:06:26
Firmus
Hallo Gerd,

ich erkenne nicht, was GENAU du tun willst.
Hier mal ein Beispiel mit einigen Aspekten, die vielleicht etwas für deinen Ansatz sind.



Option Explicit
Sub test()
Dim ZeilNRa As Long, SpaltNRa As Long
Dim Zelldaten As String
Dim ZeilNRb As Long, SpaltNRb As Long
Dim Adresse As String

Adresse = "A1:E1" 'nur für Postionierung im Test
Range(Adresse).Select 'nur für Postionierung im Test, setzt ActiveCell auf ERSTE Zelle im Range
ZeilNRa = ActiveCell.Row
SpaltNRa = ActiveCell.Column
Zelldaten = Cells(ZeilNRa, SpaltNRa).Value 'Daten aus einer Zelle in eine Variable setzen (String = Text)
MsgBox "Test-1: " & Zelldaten

Adresse = "E1" 'nur für Postionierung im Test
Range(Adresse).Select 'nur für Postionierung im Test, setzt ActiveCell auf ERSTE Zelle im Range
ZeilNRb = ActiveCell.Row
SpaltNRb = ActiveCell.Column
Range(Cells(ZeilNRa, SpaltNRa), Cells(ZeilNRb, SpaltNRb)).Select

'hier könnte sortiert, gelöscht, moved oder in andere Range kopiert werden, usw.
'Übertragen der 4 Werte (A1:E1) in die Variable Zelldaten geht nicht, da sich TYP Range und String nicht vertragen.

End Sub



Gruß
Firmus
Anzeige
AW: Spaltennummer anhand der aktiven Zelle auswählen
29.06.2024 11:39:12
GerdB51
Hallo Firmus,
danke für Deine Hilfe, trifft meinProblem aber nicht ganz. Folgenden Text habe ich auch schon User GerdL gesendet. Ich steh auf dem Schlauch und finde nicht das Feld im Forumsformuar wo ich die hochgeladene Beispielsdatei einfügen kann.

Die Ausgangssituation ist wie in Zeile 12. Ich möchte, abhängig davon, in welcher Spalte sich der Wert „Spieler“ befindet, die Zeile 2 Spalten weiter bis 2 Spalten vor dem Ende der Tabelle markieren.
Also als Beispiel:
befindet sich „SPIELER“ in Spalte K, dann soll die Zeile von Spalte M bis Spalte AW markiert werden (das sind 36 Spalten)
befindet sich „SPIELER“ in Spalte O, dann soll die Zeile von Spalte Q bis Spalte AW markiert werden (das sind 28 Spalten)
usw. Vielleicht hast Du auch dafür eine Idee. Mir wäre damit sehr geholfen, die Originaldatei besteh aus 6480 Zeilen und 76 Spalten.
Die Daten sollen anschließend „entzerrt“ werden, so wie es in Zeile 14 aussieht. Das müsste ich aber selbst hinbekommen.
Gruß Gerd
https://www.herber.de/bbs/user/170566.xlsm
Anzeige
AW: Spaltennummer anhand der aktiven Zelle auswählen
29.06.2024 12:04:50
GerdL
Hallo Gerd

Sub nachSpiel_3()


If WorksheetFunction.CountIf(ActiveCell.EntireRow, "SPIELER") > 0 Then
Range(Cells(ActiveCell.Row, Application.Match("SPIELER", ActiveCell.EntireRow, 0) + 2), Cells(ActiveCell.Row, "AY")).Select
End If

End Sub

Gruß GerdL
Anzeige
AW: Spaltennummer anhand der aktiven Zelle auswählen
29.06.2024 13:19:10
GerdB51
Super! Das müsste die Lösung sein. Danke. Falls ich nicht mehr weiter weiß, melde ich mich im Forum. Ich würde mich expliziert an Dich wenden, finde aber keine Option, wo man gezielt Experten fragen kann.
Gruß (Dein Namenskollege) Gerd
AW: Spaltennummer anhand der aktiven Zelle auswählen
29.06.2024 09:00:50
RPP63
Moin Onur!
Ja, sonderlich geschickt ist der Befehl nicht.
Der zweite Range() beginnt "oben links" im ersten Range() mit A1
Range("RPP63:USA742").Range("X18:AB42").Address(0, 0)

ergibt logischerweise RQM80:RQQ104
;)

Gruß Ralf
Anzeige
AW: Spaltennummer anhand der aktiven Zelle auswählen
29.06.2024 11:07:12
GerdB51
Danke für Deine tolle Hilfe. Dein Beitrag (bezüglich „Schwachsinn“) hat mit sehr geholfen. Aber es gibt ja im Forum durchaus auch kompetente User wie GerdL, die sich der Sache gewissenhaft annehmen und KONSTRUKTIVE Hilfe leisten.
AW: Spaltennummer anhand der aktiven Zelle auswählen
29.06.2024 12:41:50
Onur
Ich hatte dir noch gar nicht helfen können, da du ja nicht auf meine Frage geantwortet hast!
Jetz habe ich aber trotzdem verstanden, was du willst - glaube ich....
Guckst du hier:

https://www.herber.de/bbs/user/170567.xlsm

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim ze, sp, s
ze = Target.Row: sp = Target.Column
For s = 1 To 49
If Cells(ze, s) = "SPIELER" Then
Range(Cells(ze, s + 2), Cells(ze, 49)).Select
End If
Next s
End Sub

Anzeige
AW: Spaltennummer anhand der aktiven Zelle auswählen
29.06.2024 13:13:22
GerdB51
Danke!
Ich komm zwar damit noch nicht ganz zurecht (wie kann ich das Makro aufrufen), aber GerdL hatte eie praktikable Lösung.
Gruß Gerd
AW: Spaltennummer anhand der aktiven Zelle auswählen
29.06.2024 13:16:09
Onur
Aufrufen brauchst du nicht - nur Zeile anklicken.
Das Makro muss sich natürlich im Codemodul des Blattes "Tabelle4 (2)" befinden - so wie in der von mir geposteten Datei.
Anzeige
AW: Spaltennummer anhand der aktiven Zelle auswählen
29.06.2024 10:04:53
{Boris}
Logisch:

MsgBox Len(Range("RPP63:USA742").Range("X18:AB42").Address(0, 0)) * 3 + 6

;-)

VG, Boris

P.S.: Kleiner Insider
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige