tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
1
ZUGRIFFE
305
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    DemandX DemandX ist offline Grünschnabel
    Registriert seit
    Mar 2009
    Beiträge
    2
    Hallo,

    ich habe folgendes Problem:

    Ich soll ein Makro schreiben, dass eine Range einliest und dort hochzählt wie viele Zellen blau, rot und grau sind. Das Problem ist, dass die Anzahl der zu zählenden Zellen nich gleich ist.

    So muss ich nun beim Prozeduraufruf die Range (Bsp: I5:K5) übergeben und in der Prozedur mit einer Schleife die Farbwerte hochzählen.

    Ich bin ziemlich neu in der VBA-Programmierung und weiß nicht:
    - wie ich die Farbwerte der Zellen an die Prozedur übergeben kann
    - wie ich die Anzahl der zu zählenden Zellen herausfinde und die Zelle I5 in einer Schleife dann zu J5 hochzählen soll

    Ich hoffe ihr könnt mir helfen.
     

  2. #2
    DemandX DemandX ist offline Grünschnabel
    Registriert seit
    Mar 2009
    Beiträge
    2
    Ok ich bin jetzt soweit, dass er zählt und vergleicht.
    Jetzt muss ich nur noch die Zelle ("C1") durch eine Variable, die beim Prozeduraufruf in die Klammern geschrieben wird ersetzen. Wie schreibe ich das genau aus?
    Kriege da immer fehler.

    Oder kann ich den Aufruf so schreiben?
    Count ("C1")

    und dann in der Prozedur
    Sub Count(ausgangszelle)




    Sub Count()
    '
    ' Makro1 Makro
    '

    Dim ZellenInhalt As String
    ZellenInhalt = Range("C1").Interior.Color

    Dim x As Integer
    Dim y As Integer

    Dim red As Integer
    Dim green As Integer
    Dim grey As Integer
    Dim blue As Integer


    x = 0
    y = 7

    red = 0

    '+++++++++++++++++++-Counter-++++++++++++++++++++++

    For x = 1 To y

    If Range("C1").Offset(0, x).Interior.Color = 255 Then red = red + 1 _
    Else If Range("C1").Offset(0, x).Interior.Color = 65280 Then green = green + 1 _
    Else If Range("C1").Offset(0, x).Interior.Pattern = xlChecker Then grey = grey + 1 _
    Else If Range("C1").Offset(0, x).Interior.Color = 12611584 Then blue = blue + 1

    Next x

    Range("A6") = red
    Range("A7") = green
    Range("A8") = grey
    Range("A9") = blue

    '+++++++++++++++++++-IF THEN-++++++++++++++++++++++
    'Set pattern to "none"
    Range("C1").Offset(0, -2).Select
    With Selection.Interior
    .Pattern = xlSolid
    .PatternColorIndex = xlAutomatic
    .ColorIndex = xlAutomatic
    .TintAndShade = 0
    .PatternTintAndShade = 0
    End With


    If red > 0 Then Range("C1").Offset(0, -2).Interior.Color = 255 _
    Else If grey = y Then Range("C1").Offset(0, -2).Interior.Pattern = xlChecker _
    Else If green > 0 Then Range("C1").Offset(0, -2).Interior.Color = 65280 _
    Else If blue = y Then Range("C1").Offset(0, -2).Interior.Color = 12611584 _
    Else Range("C1").Offset(0, -2).Interior.Pattern = xlChecker


    Range("O5").Interior.Color = 12611584

    '
    End Sub
     

Ähnliche Themen

  1. ## Vektor an eine Prozedur übergeben- ohne Einsatz von 'var' ? ! ? ! ?
    Von webcamping im Forum Delphi, Kylix, Pascal
    Antworten: 2
    Letzter Beitrag: 20.05.10, 14:33
  2. Antworten: 2
    Letzter Beitrag: 25.03.10, 12:52
  3. Oracle 9i : Prozedur in Php
    Von cemiboy im Forum Relationale Datenbanksysteme
    Antworten: 0
    Letzter Beitrag: 11.07.08, 08:51
  4. Click Prozedur innerhalb einer anderen Prozedur aufrufen?!
    Von Blaubmania im Forum Visual Basic 6.0
    Antworten: 1
    Letzter Beitrag: 21.09.06, 12:55
  5. prozedur in prozedur
    Von DarkListener im Forum Delphi, Kylix, Pascal
    Antworten: 2
    Letzter Beitrag: 02.05.02, 21:47