Hallo zu so später Stunde,
ich habe mal wieder ein Problemchen und hoffe auf Eure Hilfe.
In einem benannten Bereich einer Tabelle z.B. "Summenbereich10" ='Auswertung'!$227:$240 möchte ich alle Werte einer Spalte in diesem Bereich aufaddieren. Also so etwas wie Autosumme.
Dies soll geschehen wenn auf die nächste Zelle unterhalb des benannten Bereiches dieser Spalte ein Doppelklick erfolgt.
Es kann dabei durchaus vorkommen dass nicht alle Zellen in dieser Spalte einen Wert besitzen.
Vielleicht kann mir jemand einen Tipp geben.
Vielen Dank im Voraus!
Hallo Erich,
Code im schon vorhandenen VBA-Modul des entsprechenden Tabellenblattes:
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
With Range("Summenbereich10")
If Not Application.Intersect(Target, .Resize(1).Offset(.Rows.Count)) Is Nothing Then
Cancel = True
Target.Value = Application.Sum(.Columns(Target.Column))
End If
End With
End Sub
Gruß Uwe
Hallo Uwe,
so etwas suche ich auch.
Allerdings summiert Dein Code nicht den definierten Bereich,
sondern den Bereich rechts daneben.
Wie kann man das ändern.
Grüße
Veltepetter
Hallo Veltepetter,
erwischt. ;)
So passt es immer:
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
With Range("Summenbereich10")
If Not Application.Intersect(Target, .Resize().Offset(.Rows.Count)) Is Nothing Then
Cancel = True
Target.Value = Application.Sum(Application.Intersect(.Columns, Target.EntireColumn))
End If
End With
End Sub
Gruß Uwe
Super, vielen Dank für die Hilfe!
Genau das habe ich gesucht.
Schon klasse dieses Forum mit all seinen Könnern!!
Eine Frage hätte dazu hätte ich noch:
Ich habe ja mehrere Summenbereiche (1-10) und alle sind mit Bereichsnamen versehen.
Die Idee ist dies mit Case abzuhandeln...zu sehen in welchem Bereich man sich bewegt.....nur wie kann ich dies aufbauen.
D.h. es soll genau so funktionieren wie in Eurem gezeigten Beispiel.
Wenn ich einen Doppelklick in der Zelle unterhalb des darüber liegenden Bereiches mache soll diese Spalte im Bereich addiert werden.
Hallo Erich,
dann vielleicht so:
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim i As Long
For i = 1 To 10
With Range("Summenbereich" & i) 'für z.B. "Summenbereich1"
'oder
'With Range("Summenbereich" & Format(i, "00")) 'für z.B. "Summenbereich01"
If Not Application.Intersect(Target, .Resize().Offset(.Rows.Count)) Is Nothing Then
Cancel = True
Target.Value = Application.Sum(Application.Intersect(.Columns, Target.EntireColumn))
Exit For
End If
End With
Next i
End Sub
Gruß Uwe
(06.06.2015, 19:49)Kuwer schrieb: [ -> ]Hallo Erich,
dann vielleicht so:
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim i As Long
For i = 1 To 10
With Range("Summenbereich" & i) 'für z.B. "Summenbereich1"
'oder
'With Range("Summenbereich" & Format(i, "00")) 'für z.B. "Summenbereich01"
If Not Application.Intersect(Target, .Resize().Offset(.Rows.Count)) Is Nothing Then
Cancel = True
Target.Value = Application.Sum(Application.Intersect(.Columns, Target.EntireColumn))
Exit For
End If
End With
Next i
End Sub
Gruß Uwe
Hallo Uwe,
ich meine das mit der Laufvariablen (i) funktioniert so nicht.
Wenn ich einen Bereich anklicke der nicht mit "i" übereinstimmt bekomme ich eine Fehlermeldung - "Die Methode Range für das Objekt _Worksheet ist fehlgeschlagen"
Diese Fehlermeldung bekomme ich immer wenn ich einen anderen Bereich als den Summenbereich1 anklicke.
Deshalb hatte ich ja die Idee mit Case select.
Nur weiß ich nicht wie das gehen könnte. Die Prüfung wo ich gerade bin - also unter welchem Bereich ich den Doppelklick mache - fehlt mir dazu.
Vielleicht hast Du noch ne Idee?
Hallo Erich,
"Select Case " was?
Gruß Uwe
Hallo Uwe,
das ist ja meine Frage, ich dachte mir so etwas
Select Case "ja wo bin ich denn" ---- hier weiß ich nicht wie ich das definieren soll-----müsste ja wissen welcher Bereich gerade "doppelgeklickt" wird---um dann mit "case" zu verzweigen
Case Summenbereich1
.
Case Summenbereich2
.
Case ......usw
.
Case Else
End Select
Aber wie ich schon beschrieben habe fehlt mir die Idee