Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

dropdown-Liste per Makro aufrufen
#21
Hallöchen,

gut beobachtet Smile Excel läuft sich Tod Sad Da ist mir beim speichern wohl etwas Code abhanden gekommen. Zwischen das End If und das Loop muss noch was für den Schleifenzähler:

Code:
End If
 'Schleifenzaehler hochsetzen
 iCnt2 = iCnt2 + 1
'Ende Schleife solange was in Kombinationsspalte steht, hier L = 12
Loop
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#22
Hey,

dass sieht ja schon einmal gut aus, danke. Jetzt habe ich aber echt noch einige Fragen offen.

Die Matrix wandert später in ein eigenes Register, siehe Bsp.
.xlsm   Kopie von Test_Matrix-3-8.xlsm (Größe: 26,65 KB / Downloads: 5)

1. Was muss ich in Deinen code jetzt  anpassen, dass es auch funktioniert, wenn die Matrix in einer anderen Tabelle steht ? Das ging doch über worksheets, korrekt ?

2. Wie kann man das ganze dynamisch machen ? Die Matrix kann größer werden. Bei jedem Durchlauf der Matrix müsste also erstmal gezählt werden, wieviele Einträge an Typen es in Spalte bzw. Zeilen gibt, dann gelöscht bzw. beschrieben werden.

3. Wie bekomme ich das an dieser Stelle "Wenn in Spalte A im Bereich A3:Axxx was geaendert wurde, dann" im code hin, dass auch eine Änderung in der Spalte mit der Nummer einen neuen Durchlauf bewirkt?
Antworten Top
#23
Hallöchen,

1) Da musst Du den Bereich anpassen:
Code:
       'Schleife solange was in Kombinationsspalte steht, hier L = 12
       Do While Sheets("Tabelle1").Cells(iCnt2, 12).Value <> ""
          'Wenn dort die Kombination steht, dann
          If Sheets("Tabelle1").Cells(iCnt2, 12).Value = strTyp Then
            'Wenn Parameter 1 leer ist, dann
            If Sheets("Tabelle1").Cells(iCnt2, 10).Value = "" Then
              'Parameter uebernehmen
              Cells(Target.Row, iCnt1).Value = Sheets("Tabelle1").Cells(iCnt2, 11).Value

2) Schon mal probiert? Sollte eigentlich gehen.

3) Da könnte man die Angabe um eine Spalte erweitern, wo die Stelle vom Eintrag geprüft wird - z.B. mit Offset
'Wenn in Spalte A im Bereich A3:Axxx was geaendert wurde, dann
If Not Intersect(Target, Range(Cells(3, 1), Cells(Rows.Count, 1).End(xlUp).Offset(, 1))) Is Nothing Then
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#24
Hallo Andre,

funktioniert soweit einwandfrei. Habe das mal in dieses Beispiel übertragen, mit getrennten Registern für die Matrix und die Tabelle (siehe
.xlsm   Test_Matrix-4.xlsm (Größe: 26,56 KB / Downloads: 4) ).

Jetzt fehlt aber noch folgendes:

1. Wenn der entsprechende Typ, in Zeile 1 ab Spalte 4 geändert wird, muss die gesamte Spalte ebenfalls durchlaufen und aktualisiert werden. Das gilt ebenfalls, wenn eine Änderung der Nr. (in Zeile 2 ab Spalte 4) vorgenommen wird. Habe das mal versucht, aber nicht hinbekommen.

2. Ich möchte künftig eine weitere Nr. in jeder Zeile bzw. Spalte ergänzen (einmal die Gebäude-Nr., einmal die Raum-Nr.) und dann künftig beide miteinander vergleichen. Beides muss übereinstimmen.

Wie sieht der code dann an dieser Stelle aus ?

'Wenn Nummern gleich sind, dann
    If Cells(Target.Row, 7).Value * 1 = Cells(4, iCnt1).Value * 1 Then
 
Der nachfolgende Punkt wäre eine hilfreiche Option, vielleich hast Du noch eine Idee:

Wie bekommt man das hin, das die Zelle farbig wird, wenn zwei Werte in der Tabelle stehen und die Nr. übereinstimmt ? Zudem müsste, wenn der Wert ausgewählt wurde, die Zelle ja wieder weiss werden, ebenfalls wenn die Nr. nicht übereinstimmt.
Antworten Top
#25
Hallo,

kurze Info, 1. und 2. hat sich schon erledigt, funktioniert jetzt. Konnte mich in Deinen code reinarbeiten.
Vielen Dank nochmal.

Falls Du noch eine Idee zu den Farben hast, wäre ich dankbar.

Gruß Mike
Antworten Top
#26
Hallöchen,

hier mal ein Ansatz über die bedingte Formatierung. Ich habe im Moment allerdings mit G5 noch einen Klemmer.  In der bedingten Formatierung erhalte ich hier fälschlicherweise WAHR und resultierend rot, in der Formel in der "Vergleichszelle" L5 jedoch korrekt FALSCH ...

Arbeitsblatt mit dem Namen 'Matrix'
ABCDEFGHIJKL
1Typ 2CCDB
2Nr.1111
3Typ 1Nr.
4A1XXFALSCHFALSCHFALSCHFALSCH
5B1WAHRWAHRWAHRFALSCH
6C1FALSCHFALSCHFALSCHFALSCH
7A1XFALSCHFALSCHFALSCHFALSCH

ZelleFormel
I4=UND(D$2*1=$B4*1;ANZAHL2(INDEX(Tabelle1!$J$3:$K$8;VERGLEICH($A4&D$1;Tabelle1!$L$3:$L$8;0);0))=2)

Zellebedingte Formatierung...Format
D41: UND(D$2*1=$B4*1;ANZAHL2(INDEX(Tabelle1!$J$3:$K$8;VERGLEICH($A4&D$1;Tabelle1!$L$3:$L$8;0);0))=2)abc

ZelleGültigkeitstypOperatorWert1Wert2
D4Liste=INDEX(Tabelle1!$J$3:$K$8;VERGLEICH($A4&D$1;Tabelle1!$L$3:$L$8;0);0)
Verwendete Systemkomponenten: [Windows (32-bit) NT 10.00] MS Excel 2016
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste