Visual Basic in Excel

Dieses Thema Visual Basic in Excel im Forum "Microsoft Office Suite" wurde erstellt von Ch.R, 9. März 2003.

Thema: Visual Basic in Excel Hallo Excel Gemeinde ;D Ich hab im Microsoft Visual Basic folgende Funktion geschrieben: Function GrünAddieren(r...

  1. 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* :-\


    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 ! ;)
     
Die Seite wird geladen...

Visual Basic in Excel - Ähnliche Themen

Forum Datum
Visual Basic 2008 - Probleme beim Debuggen Windows XP Forum 26. Dez. 2009
Visual Basic-Befehle oder Makros aufzeichnen - Befehlsketten automatisieren? Windows XP Forum 5. Apr. 2009
Textzeile Visual Basic 2005 Windows XP Forum 5. Jan. 2009
Wininet.dll in Visual Basic 6.0 - Auslesen des verwendeten Proxys bzw. Proxyskri Windows XP Forum 9. Dez. 2008
Veröffentlichen von Projekten in Microsoft Visual Basic 2005 Express Edition Windows XP Forum 23. Dez. 2007