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
Kann mir da jemand helfen?
thx
Sub a()
Debug.Print Selection.Address
End Sub
Schau's Dir mal an.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? Range("B3:B10").Select
With Selection.Interior
.Color = 65535
End With
Range(Debug.Print Selection(1).Address:Debug.Print Selection(.Cells.Count).Address).Select
With Selection.Interior
.Color = 65535
End With
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.Sub b()
With Selection
.Interior.Color = 65535
End With
End Sub
Da wüsste ich jetzt nicht, was da bei Dir nicht funktioniert. With Selection.Interior
.Color = 65535
End With
a = Chr$(Selection.Column + 64): b = Selection.Row
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=SUMME(" & a & b & ":" & a & "$" & b & ")/SUMME(" & a & "$" & b & ":" & a & "$999)
Selection(Selection.Cells.Count)
gibt Dir Zugriff auf die letzte Zelle in einer Auswahl.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 & ")