Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Excel 2013 Spaltensumme in einem benannten Bereich
#1
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!
Mit freundlichen Grüßen / Best regards
                          //
----------o00o---°(_)°---o00o----------------------

Erich
Antworten Top
#2
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
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • sharky51
Antworten Top
#3
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


Angehängte Dateien
.xlsm   SUMMENBEREICH10.xlsm (Größe: 15,86 KB / Downloads: 4)
Antworten Top
#4
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
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • sharky51
Antworten Top
#5
Danke!

Grüße
Veltepetter
Antworten Top
#6
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.
Mit freundlichen Grüßen / Best regards
                          //
----------o00o---°(_)°---o00o----------------------

Erich
Antworten Top
#7
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
Antworten Top
#8
(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?
Mit freundlichen Grüßen / Best regards
                          //
----------o00o---°(_)°---o00o----------------------

Erich
Antworten Top
#9
Hallo Erich,

"Select Case " was?

Gruß Uwe
Antworten Top
#10
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
Mit freundlichen Grüßen / Best regards
                          //
----------o00o---°(_)°---o00o----------------------

Erich
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste