Microsoft Excel

Herbers Excel/VBA-Archiv

Wenn Formel?

Betrifft: Wenn Formel?
von: Max M.
Geschrieben am: 18.04.2003 - 21:11:54

Hallo Excelfreunde,

wie kann ich eine Summe ermitteln aus den Zellen, die ich unterstrichen habe???
Von Zelle B6 bis Zelle B25 stehen Zahlen, 100 bis 2000, einige Zellen muss ich unterstreichen und die unterstrichene Zellen sollen dann in Zelle A6 eine Summe ergeben.
Geht da etwas mit einer Wenn Formel???

Max M.

  

SUMMEWENN Rahmenlinie ohne VBA
von: Boris
Geschrieben am: 18.04.2003 - 21:33:16

Hi Max,

ich geh mal davon aus, dass du mit unterstreichen einen unteren Zellrahmen meinst (das entnehme ich aus deinem letzten Thread).

Geh über Einfügen-Namen-Festlegen, Name = rahmenunten
bezieht sich auf:
=ZELLE.ZUORDNEN(12;INDIREKT("ZS(-1)";0))

Schreibe in C6 (also RECHTE Nachbarzelle von B6):
=rahmenunten
und kopier das nach unten.
Als Ergebnis erhälst du eine Nummer zwischen 0 und 7, die den unteren Rahmentyp angibt (0 = kein Rahmen).
Die Summe aus B6:B25 MIT Rahmen erhälst du dann mit
=SUMMEWENN(C6:C25;">0";B6:B25)

Wenn du mit unterstreichen nicht den Rahmen, sondern echtes Unterstreichen meinst, dann definiere den Namen unterstrich, bezieht sich auf:
=ZELLE.ZUORDNEN(22;INDIREKT("ZS(-1)";0))

In C6: =unterstrich, nach unten kopieren.
Ergebnis: WAHR oder FALSCH.
Die Summe dann mit =SUMMEWENN(C6:C25;WAHR;B6:B25)

In beiden Fällen löst übrigens eine Änderung der Formate KEINE Neuberechnung der SUMMEWENN-Formel aus. Die musst du z.B. mit F9 selbst vornehmen.

Gruß Boris



  

Mit einer WENN-Formel geht nix
von: Ramses
Geschrieben am: 18.04.2003 - 21:37:28

Hallo Max,

das geht nur über eine UDF und einem Worksheets.Change Ereignis

Das muss in das Klassenmodul der Tabelle in der das funktionieren soll:


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 2 Then
Calculate
End If
End Sub


und das muss in ein Modul dieser Arbeitsmappe;

Function Sum_Underline(rng As Excel.Range)
Application.Volatile
Dim intSum As Variant
Dim c As Range
intSum = 0
For Each c In rng
If c.Borders(xlEdgeBottom).LineStyle = xlContinuous Or c.Borders(xlEdgeBottom).LineStyle = xlDouble Then
intSum = intSum + c.Value
End If
Next
Sum_Underline = intSum
End Function


Jetzt ist das Ergebnis folgendes:

Tabelle1
 AB
1KontonummerBetrag
247111
352111
447111
5521111
6471111
7  
8Ergebnis12
Formeln der Tabelle
B8 : =sum_underline(B2:B6)
Excel Tabellen einfach im Web darstellen   Excel Jeanie HTML  2.0    Download  


Die Formel wird jedoch erst aktualisiert, wenn nach dem Unterstreichen eine andere Zelle angewählt wird.
Zum unterstreichen stehen NUR einfaches unterstreichen und dickes Unterstreichen zur Verfügung.

Gruss Rainer


  

Raffiniert :-)) o.T.
von: Ramses
Geschrieben am: 18.04.2003 - 21:38:29

...

  

Immer ganz nach dem Motto:
von: Boris
Geschrieben am: 18.04.2003 - 21:42:17

Hi Ramses,

"So wenig VBA wie möglich", aber auch nur, weil ich davon keine Ahnung habe;-)))

Grüße Boris

  

Re: Wenn Formel?
von: Max M.
Geschrieben am: 18.04.2003 - 21:43:45

Vielen Dank für eure Antwort.
Werde Morgen alles einmal Testen.

  

Re: Immer ganz nach dem Motto:
von: Forum
Geschrieben am: 19.04.2003 - 09:15:32

Hallo Boris

kein Ahnung würde ich nun auch nicht schreiben. Ich habe schon paar Code von Dir gesehen. Obwohl die Devise richtig ist "So wenig VBA wie möglich"

Noch ein schönes Osterfest.

Gruß Hajo
Der Code wurde getestet unter Betriebssystem XP Pro und Excel Version XP SBE.
Bitte kein Mail, Probleme sollen im Forum gelöst werden.

Microsoft MVP für Excel

  

Danke, auch dir schöne Ostertage! Grüße Boris
von: Boris
Geschrieben am: 19.04.2003 - 22:25:58



 

Beiträge aus den Excel-Beispielen zum Thema "Wenn Formel?"