Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1544to1548
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

Adresse von markierten Bereich auslesen.

Adresse von markierten Bereich auslesen.
15.03.2017 08:49:39
markierten
Hallo zusammen,
wie kann ich in Makros mit einem mit der Maus markiertem Bereich arbeiten?
Z.B. bräuchte ich die Adresse der ersten und letzten Zelle.
Ist es möglich diese in Variablen zu speichern?
Erste Zelle = B2
Letzte Zelle = B10
Userbild
Kann mir da jemand helfen?
thx

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
... mit Selection
15.03.2017 09:05:27
Michael
Hallo!
Du suchst nach "Selection" - damit kannst Du auf alle Infos des gerade markierten Blatt-Bereiches zugreifen...
Sub a()
Debug.Print Selection.Address
End Sub
Schau's Dir mal an.
LG
Michael
... na gut, erweitertes Beispiel...
15.03.2017 09:12:00
Michael
...weil ich nicht so bin:
Sub b()
With Selection
Debug.Print .Address 'Adresse Bereich
Debug.Print .Cells.Count 'Anzahl Zellen
Debug.Print Selection(1).Address 'Adresse erste Zelle
Debug.Print Selection(.Cells.Count).Address 'Adresse letzte Zelle
End With
End Sub
Klar?
LG
Michael
Anzeige
AW: ... na gut, erweitertes Beispiel...
15.03.2017 10:11:55
Tim
Ahh Klasse
Ich hätte mir das komplexer vorgestellt.
Danke für deine Beispiele.
Kannst Du mir noch verraten wie ich es in der Praxis anwende, anhand dieses Beispieles.
 Range("B3:B10").Select
With Selection.Interior
.Color = 65535
End With

Das wäre meine Logic, jedoch leider nicht die von VBA :/

Range(Debug.Print Selection(1).Address:Debug.Print Selection(.Cells.Count).Address).Select
With Selection.Interior
.Color = 65535
End With

AW: ... na gut, erweitertes Beispiel...
15.03.2017 10:28:10
Michael
Hallo!
Naja... bevor Du sowas machst, brauchst Du nicht mit Selection zu arbeiten:
 Range("B3:B10").Select
With Selection.Interior
.Color = 65535
End With
...denn, wenn Dir der Bereich sowieso bekannt ist, dann färbe den Bereich direkt, ohne ihn vorher zu selektieren (= unnötig):
Sub b()
With Range("B3:B10")
.Interior.Color = 65535
End With
End Sub
Mit Selection arbeitet man v.a. dann, wenn Deine Routine mit einem Bereich etwas machen soll, der manuell (von dem/der BenutzerIn) gewählt wurde, d.h. Dir also vorab nicht klar ist, um welchen Bereich es sich handelt.
Ansonsten funktioniert der von Dir gepostete Code genauso:
Sub b()
With Selection
.Interior.Color = 65535
End With
End Sub
Da wüsste ich jetzt nicht, was da bei Dir nicht funktioniert.
LG
Michael
Anzeige
AW: ... na gut, erweitertes Beispiel...
15.03.2017 10:46:19
Tim
Ich möchte dies natürlich nicht verwenden um nur die Farbe zu verändern. Das sollte nur als Beispiel dienen.
 With Selection.Interior
.Color = 65535
End With

reicht ja um die Felder Gelb zu färben.
?
15.03.2017 10:49:20
Michael
Ich möchte dies natürlich nicht verwenden um nur die Farbe zu verändern. Das sollte nur als Beispiel dienen.
reicht ja um die Felder Gelb zu färben.

Ähh... ok... hast Du jetzt noch eine Frage, oder wie?
LG
Michael
AW: ... na gut, erweitertes Beispiel...
15.03.2017 10:59:41
Tim
Ich gebe zu das Beispiel war ungeschickt gewählt.
Hier mal das echte Beispiel:
Ich möchte eine Bedingte Formatierung setzen.
In dem unteren Beispiel wird die Bedingte Formatierung in der Markierten Zeile gesetzt, die Rechnung geht aber bis Zeile 999. Ich möchte diesen gerne auf die letzte markierte Zelle beschränken.
a = Chr$(Selection.Column + 64): b = Selection.Row
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=SUMME(" & a & b & ":" & a & "$" & b & ")/SUMME(" & a & "$" & b & ":" & a & "$999)

Anzeige
AW: ... na gut, erweitertes Beispiel...
15.03.2017 11:27:23
Michael

Selection(Selection.Cells.Count)
gibt Dir Zugriff auf die letzte Zelle in einer Auswahl.
LG
Michael
DANKE
15.03.2017 11:29:44
Tim
Danke Du bist Top!
So scheint es zu funktionieren ;)
a = Chr$(Selection.Column + 64): b = Selection.Row
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=SUMME(" & a & b & ":" & a & "$" & b & ")/SUMME(" & a & "$" & b & ":" & a & Selection.Rows. _
Count & ")

Gerne! owT
15.03.2017 12:39:52
Michael

8 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige