Visual Basic in Excel

  • #1
C

Ch.R

Bekanntes Mitglied
Themenersteller
Dabei seit
11.11.2001
Beiträge
66
Reaktionspunkte
0
Ort
??????????
Hallo Excel Gemeinde ;D

Ich hab im Microsoft Visual Basic folgende Funktion geschrieben:

Function GrünAddieren(r As Range)
For Each r In r.Cells
If IsNumeric(r) Then
If r.Interior.ColorIndex = 4 Then
GrünAddieren = _
GrünAddieren + r.Value
End If
End If
Next r
End Function

Damit sollen alle grün eingefärbte Zellen eines bestimmten (Excel-) Bereichs berechnet werden.

Die Funktion kann ich im Funktionsassistent aufrufen, was auch funktioniert.

Zum berechnen muss ich allerdings immer F2 und Return drücken. Aber es müsste doch auch automatisch gehen, wenn ich die Zellinhalte ändere !, bzw. grün einfärbe.
Leider kann ich den Fehler nicht finden. ??? Vielleicht kann mir geholfen werden. ;D

Ola ! Microsoft Visual Basic Vers. 6.0
Excel 2000
 
  • #2
Hallo,
die Frage ist, was Du mit dem Ergebnis der Funktion machen willst.
Wenn Du das Ergebnis in einer Zelle anzeigen lässt, funktioniert alles automatisch, sofern unter Extras, Optionen, automatische Berechnung angewählt ist.

In die Zelle die Formel eintragen:
=GrünAddieren(A1:A10)
in der Klammer muss natürlich Dein gewünschter Range stehen.
Geht auch mit Namen:
=GrünAddieren(GruenZaehlen)
wobei GruenZaehlen der Name für den Bereich ist.

Ansonsten eine Schaltfläche in einer Symbolleiste erstellen, eine Prozedur erstellen, welche die Funktion aufruft und per MsgBox das Ergebnis anzeigt.
 
  • #3
Ola,

Wenn Dein Code auf die Veränderung in einem bestimmten Zellbereich reagieren soll, dann muss der Code in das Tabellenblatt und dort das Ereignis Change bzw. Calculate auswerten.

Das Change-Ereignis tritt ein, wenn Zellen des Arbeitsblattes durch den Benutzer oder durch eine externe Verknüpfung geändert werden.

Private Sub Worksheet_Change(ByVal Target As Range)

Target Der geänderte Bereich. Er kann mehr als eine Zelle umfassen.

Anmerkung zu Change
Dieses Ereignis tritt nicht ein, wenn sich Zellen während einer Neuberechnung verändern. Verwenden Sie das Calculate-Ereignis, um eine Neuberechnung des Blattes aufzufangen.

Weitere Anmerkung
Das Verändern der Zelleigenschften (Grün) löst allerdings keines der Ereignisse aus ...
 
  • #4
Hallo

Karlheinz : Die automatische berechnung hab ich hinbekommen(*freu*). Stichwort Optionen > .......

Nur. wenn ich die Eigenschaften ändere, tut sich nix.*grübel* :-\


Weitere Anmerkung
Das Verändern der Zelleigenschften (Grün) löst allerdings keines der Ereignisse aus ...

PcdJoe, genau das ist das zweite Problem *seufz*
Aber Danke schon mal,wenn ihr ne Lösung kennt bitte Mitteilen. ;D
 
  • #5
Hi Ch.R,

ich habe mir das mal angeschaut. Bei der Farbänderung wird kein Ereignis ausgelöst. :mad: (Formatierung ist halt keine Wertänderung)

Einzige Möglichkeit besteht darin, den Zellinhalt einer Zelle zu verändern und sei es mit demselben Wert der schon drinsteht oder eine leere Zelle beschreiben und wieder löschen. Dann wird ein Ereignis ausgelöst und neu berechnet.

Gruß Matjes :)
 
  • #6
Hallo

Danke an alle. :D

Vieleicht geht ja bei der nächsten Version ! ;)
 
Thema:

Visual Basic in Excel

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.836
Beiträge
707.957
Mitglieder
51.489
Neuestes Mitglied
DonMartin
Oben