ich dachte, Du würdest selbst darauf kommen, die 10 in der Zeile
For i = 1 To 10
an Deine Gegebenheiten anzupassen. Uns verrätst Du die ja nicht.
Du weißt doch, wie viele Bereiche es sind.
Alternativ kannst Du auch darüber eine Zeile einfügen mit
On Error Resume Next
Gruß Uwe
Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:1 Nutzer sagt Danke an Kuwer für diesen Beitrag 28 • sharky51
Also es sind 10 Summenbereiche 1-10, die auch so benannt sind.
In dem Arbeitsbeispiel sind nicht alle Summenbereiche benannt und somit läuft die For-Schleife gegen die Wand wenn ein Summenbereich erwartet wird den es gar nicht gibt.
Dank Deinem Hinweis hat es jetzt auch bei mir Klick gemacht, danke!
Damit ist die Idee mit "Case" gestorben.
Vielen Dank nochmals...auch für die Geduld.
Mit freundlichen Grüßen / Best regards
//
----------o00o---°(_)°---o00o----------------------
muss noch mal nachfragen, da es bei mir nicht
so funktioniert, wie ich es vermutet habe.
Ich kann unterhalb der definierten Bereiche
mehrere Zeilen weiter nach unten, durch
Doppelklick summieren.
Außerhalb der definierten Bereiche führt
der Doppelklick zu einem Laufzeitfehler.
das ist mir gar nicht aufgefallen, dass in Deiner ersten Beispielmappe die 1 bei Resize() fehlte.
Ich übernahm es einfach nach der Korrektur aus Deiner Mappe.
Die 1 bewirkt, dass der Doppelklickbereich nur eine Zeile groß ist.
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim i As Long
On Error Resume Next
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(1).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
Also es sind 10 Summenbereiche 1-10, die auch so benannt sind.
In dem Arbeitsbeispiel sind nicht alle Summenbereiche benannt und somit läuft die For-Schleife gegen die Wand wenn ein Summenbereich erwartet wird den es gar nicht gibt.
Dank Deinem Hinweis hat es jetzt auch bei mir Klick gemacht, danke!
Damit ist die Idee mit "Case" gestorben.
Vielen Dank nochmals...auch für die Geduld.
Hallo Uwe,
mir ist da noch eine Frage eingefallen zu dem Thema benannte Bereiche eingefallen.
Wie finde ich per VBA heraus wo die Grenzen eines benannten Bereiches sind?
Damit meine ich in welcher Zeile/Spalte beginnt bzw. endet der Bereich?
Kannst Du mir da einen Tipp geben?
Mit freundlichen Grüßen / Best regards
//
----------o00o---°(_)°---o00o----------------------
Sub aaa()
With Range("Summenbereich1")
MsgBox "Der Bereich """ & .Name.Name & """ beginnt in Zeile " & .Row & " und Spalte " & .Column & vbNewLine & _
" und endet in Zeile " & .Row + .Rows.Count - 1 & " und Spalte " & .Column + .Columns.Count - 1 & ".", vbInformation
End With
End Sub
Gruß Uwe
Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:1 Nutzer sagt Danke an Kuwer für diesen Beitrag 28 • sharky51
Sub aaa()
With Range("Summenbereich1")
MsgBox "Der Bereich """ & .Name.Name & """ beginnt in Zeile " & .Row & " und Spalte " & .Column & vbNewLine & _
" und endet in Zeile " & .Row + .Rows.Count - 1 & " und Spalte " & .Column + .Columns.Count - 1 & ".", vbInformation
End With
End Sub
Gruß Uwe
Super Uwe,
genau das benötige ich.
Herzlichen Dank!!
Mit freundlichen Grüßen / Best regards
//
----------o00o---°(_)°---o00o----------------------