Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Spaltenanalyse in einer Matrix





Frage

hallo zusammen, hab ein kleines problem. ich habe eine ganz normale tabelle mit mehreren Spaten und Zeilen (Matrix). Ist im Prinzip ne Druckerpatronenzuordnung, dh. als Spaltenüberschrift die Druckerpatrone und links in der Zeile die Modelle die dafür passen. patrone1 patrone2 patrone3 model1 x x model2 x model3 x model4 ziel ist es, dass alle modelle die für patrone1 passen in eine ZELLE zu bekommen d.h. ähnlich wie sverweis und verketten. Ich möchte nachher alle Druckermodelle in einer Zelle haben, die für Patrone 1, 2,3 etc. passt. Any Hints ? Merci

Antwort 1 von Coolpix

hallo alleine,

ich habe nach deinen Angaben eine Tabelle,
von B4-B7 mit den Modellen, und von C3-F3 mit den Patronen.

das Makro liest den Patronentyp in eine Sammelvariable und schreibt dann das/die Druckermodell(e) dazu.
Wenn das Tabellenende erreicht ist wird die Sammelvariable in eine Zelle geschrieben.


Sub Auswertung()
    Dim Zaehler1 As Long, MaxRow As Long, MaxCol As Integer, Zaehler2 As Integer
    Dim VarWert1 As String, VarWert2 As String, VarKombi As String
    Dim Zeile As Long

    Zeile = 4   ´Starzeile festlegen
    MaxRow = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row    ´letzen gefüllte Zelle in Spalte B finden
    Range("C3").Select
    MaxCol = Selection.End(xlToRight).Column    ´letzen gefüllte Zelle in Zeile 3 finden
    For Zaehler2 = 3 To MaxCol
        VarWert2 = Cells(3, Zaehler2)       ´Patrone einlesen
        VarKombi = VarWert2 & ": "          ´Patrone in Variable schreiben
        For Zaehler1 = 4 To MaxRow      ´meine Daten beginnen in Zeile 4
            VarWert1 = Cells(Zaehler1, Zaehler2)
            If VarWert1 <> "" Then
                VarWert2 = Cells(Zaehler1, 2)    ´Modell in Variable einlesen
                VarKombi = VarKombi & " " & VarWert2 & ","   ´Sammel-Variable füllen
            End If
        Next Zaehler1
        ´Inhalt der Sammel-Variablen in Zelle schreiben und letztes Komma weglassen
        Cells(Zeile, MaxCol + 1) = VBA.Left(VarKombi, VBA.Len(VarKombi) - 1)
        ´Zeilenzahl fürs nächste Schreiben erhöhen
        Zeile = Zeile + 1
    Next Zaehler2
End Sub

 


p.S. alles was hier wie ein Accent aussieht soll ein Hochkomma sein...

Feedback fänd ich klasse ...

Greetings ;-)

Antwort 2 von Nzer_de

suuuppper...das hat geklappt. Hab Dein Script noch ein bisschen angepasst und jetzt läufts. Vielen Dank für die schnelle Hilfe ;-)