Thema Datum  Von Nutzer Rating
Antwort
Rot variable Anzahl an "if and" verknüpfungen
06.02.2014 08:14:19 Malte
NotSolved
06.02.2014 16:58:06 Gast63755
NotSolved
06.02.2014 18:21:20 Gast67743
NotSolved
06.02.2014 20:02:56 H27
*****
Solved
06.02.2014 23:21:11 Malte
NotSolved

Ansicht des Beitrags:
Von:
Malte
Datum:
06.02.2014 08:14:19
Views:
1446
Rating: Antwort:
  Ja
Thema:
variable Anzahl an "if and" verknüpfungen

Hallo Forum,

 

ich habe ein Problem mit vba.

Ich habe eine Tabelle mit Produkten (x-Achse) und Inhaltsstoffen (y-Achse). Wenn ein Produkt einen Stoff enthält ist in der Zeile ein x.

Jetzt möchte ich mehrere Inhaltsstoffe zu Clustern zusammenfassen und diese in der Tabelle farblich markieren, eben für alle Produkte, die das Cluster ( also alle Inhalsstoffe und nur die) enthalten.

Für jedes Cluster habe ich ein neues Tabllenblatt. Mein Problem bisher ist, dass ich für jedes Cluster einen neuen Code brauche, da ein Cluster sich aus einer variablen Anzahl an Inhaltsstoffen zusammensetzt. Für 2 CLuster sind hier meine Codes.

Sub Cluster1()

  Dim Block As Variant
  Dim Zeile(1 To 7) As Long
  Dim stp(1 To 7) As Integer
  

  
  Block = "Cluster 1"
    Z = Worksheets(Block).Cells(1, 4).Interior.Color
  
   For J = 1 To 5               ' muss angepasst werden für jedes Cluster
    If Worksheets(Block).Cells(J, 2) <> 0 Then
        stp(J) = Worksheets(Block).Cells(J, 2).Value
    
         Zeile(J) = Columns("A:A").Find(What:=stp(J), LookIn:=xlFormulas, _
            LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
            MatchCase:=False, SearchFormat:=False).Row
    End If
  Next
        
    
For i = 2 To 10 'Anzahl der Spalten, die durchsucht werden


    If Cells(Zeile(3), i).Value = "x" And Cells(Zeile(4), i).Value = "x" And Cells(Zeile(5), i).Value = "x" Then 'muss angepasst werden für jeden Cluster
    
    Range(Cells(Zeile(1), i), Cells(Zeile(2) - 1, i)).Select
    Cells(Zeile(2) - 1, i).Activate

    With Selection.Interior
     .Color = Z
    End With
    End If
Next i

    
End Sub

Sub Cluster2()

  Dim Block As Variant
  Dim Zeile(1 To 7) As Long
  Dim stp(1 To 7) As Integer
  

  
  Block = "Cluster 2"
    Z = Worksheets(Block).Cells(1, 4).Interior.Color
  
   For J = 1 To 4
    If Worksheets(Block).Cells(J, 2) <> 0 Then
        stp(J) = Worksheets(Block).Cells(J, 2).Value
    
         Zeile(J) = Columns("A:A").Find(What:=stp(J), LookIn:=xlFormulas, _
            LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
            MatchCase:=False, SearchFormat:=False).Row
    End If
  Next
        
    
For i = 2 To 10 'Anzahl der Spalten, die durchsucht werden


    If Cells(Zeile(3), i).Value = "x" And Cells(Zeile(4), i).Value = "x" Then
    
    Range(Cells(Zeile(1), i), Cells(Zeile(2) - 1, i)).Select
    Cells(Zeile(2) - 1, i).Activate

    With Selection.Interior
     .Color = Z
    End With
    End If
Next i

    
End Sub

Das Makro guckt in Tabelle1 ob die im CLuster aufgelisteten Inhaltsstoffe in einem Produkt enthalten sind, falls alle drin sind wird der Bereich (im Tabellenblatt Cluster def.) gefärbt.

Kann man da eine variable Anzahl an if and Verknüpfungen einpflegen, so dass ich nur einen COde brauche?

 

Danke


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot variable Anzahl an "if and" verknüpfungen
06.02.2014 08:14:19 Malte
NotSolved
06.02.2014 16:58:06 Gast63755
NotSolved
06.02.2014 18:21:20 Gast67743
NotSolved
06.02.2014 20:02:56 H27
*****
Solved
06.02.2014 23:21:11 Malte
NotSolved