Clever-Excel-Forum

Normale Version: Bedingung aus bestehender Formel entfernen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Guten Morgen,

ich komme bei folgenden Punkt nicht weiter.

Ein User hier im Forum hat mir für eine Erstellung einer Tabelle folgenden Formel erstellt die über ein Makro in die Zellen eingefügt wird. Die Bedingung ist, dass in einer anderen Zelle das A steht. Nun habe ich aber bemerkt das dies nicht immer vom VOrteil ist, da wir auch Kinder haben die nur zum Essen kommen aber keine A - aktiven Mitglieder sind. Demzufolge erscheinen diese nicht mit auf der Essenliste.

Nun möchte ich diese Bedingung gern entfernen verstehe aber nicht wie:

Hallo,

wir mussten jetzt einige Punkte in der Tabelle umstellen. Nun passen die Makros nicht mehr ganz. Es soll nicht mehr geprüft werden in ob in der Spalte I das "A" vorhanden ist. Welchen Teil aus der Befehlskette muss ich entfernen ?



Code:
Hallo,

wir mussten jetzt einige Punkte in der Tabelle umstellen. Nun passen die Makros nicht mehr ganz. Es soll nicht mehr geprüft werden in ob in der Spalte I das "A" vorhanden ist. Welchen Teil aus der Befehlskette muss ich entfernen ?

Sub SetzeFormeln()
 Dim ws As Worksheet

 Set ws = ActiveSheet
 With ws
    .Unprotect
    .Range("A5:A5").FormulaArray = "=IFERROR(INDEX('aktive Mitglieder'!$C$5:$C$64,SMALL(IF('aktive Mitglieder'!$I$5:$I$64=""A"",ROW($1:$60)),ROW(A1))),"""")"
    .Range("A5:A64").FillDown
   
    .Range("A72").FormulaArray = "=IFERROR(INDEX('aktive Mitglieder'!$C$5:$C$64,SMALL(IF(('aktive Mitglieder'!$I$5:$I$64=""A"")*('aktive Mitglieder'!$M$5:$M$64=""x""),ROW($1:$60)),ROW(A1))),"""")"
    .Range("A72:A131").FillDown
   
    .Range("A139").FormulaArray = "=IFERROR(INDEX('aktive Mitglieder'!$C$5:$C$64,SMALL(IF(('aktive Mitglieder'!$I$5:$I$64=""A"")*('aktive Mitglieder'!$N$5:$N$64=""x""),ROW($1:$60)),ROW(A1))),"""")"
    .Range("A139:A198").FillDown
   
    .Range("A206").FormulaArray = "=IFERROR(INDEX('aktive Mitglieder'!$C$5:$C$64,SMALL(IF(('aktive Mitglieder'!$I$5:$I$64=""A"")*('aktive Mitglieder'!$O$5:$O$64=""x""),ROW($1:$60)),ROW(A1))),"""")"
    .Range("A206:A265").FillDown
   
    .Range("A273").FormulaArray = "=IFERROR(INDEX('aktive Mitglieder'!$C$5:$C$64,SMALL(IF(('aktive Mitglieder'!$I$5:$I$64=""A"")*('aktive Mitglieder'!$P$5:$P$64=""x""),ROW($1:$60)),ROW(A1))),"""")"
    .Range("A273:A332").FillDown
   
    .Range("A338:A338").FormulaArray = "=IFERROR(INDEX('aktive Mitglieder'!$C$5:$C$64,SMALL(IF('aktive Mitglieder'!$I$5:$I$64=""A"",ROW($1:$60)),ROW(A1))),"""")"
    .Range("A338:A397").FillDown
    .Range("B338:B397").FormulaLocal = "=WENNFEHLER(SVERWEIS($A338;'aktive Mitglieder'!$C$5:$P$64;11;0);"""")"
    .Range("D338:D397").FormulaLocal = "=WENNFEHLER(SVERWEIS($A338;'aktive Mitglieder'!$C$5:$P$64;12;0);"""")"
    .Range("F338:F397").FormulaLocal = "=WENNFEHLER(SVERWEIS($A338;'aktive Mitglieder'!$C$5:$P$64;13;0);"""")"
    .Range("H338:H397").FormulaLocal = "=WENNFEHLER(SVERWEIS($A338;'aktive Mitglieder'!$C$5:$P$64;14;0);"""")"
   
    .Range("A403:A403").FormulaArray = "=IFERROR(INDEX('aktive Mitglieder'!$C$5:$C$64,SMALL(IF('aktive Mitglieder'!$I$5:$I$64=""A"",ROW($1:$60)),ROW(A1))),"""")"
    .Range("A403:A462").FillDown
   
    .Range("A468:A468").FormulaArray = "=IFERROR(INDEX('aktive Mitglieder'!$C$5:$C$64,SMALL(IF('aktive Mitglieder'!$I$5:$I$64=""A"",ROW($1:$60)),ROW(A1))),"""")"
    .Range("A468:A527").FillDown
   
    .Range("A533:A533").FormulaArray = "=IFERROR(INDEX('aktive Mitglieder'!$C$5:$C$64,SMALL(IF('aktive Mitglieder'!$I$5:$I$64=""A"",ROW($1:$60)),ROW(A1))),"""")"
    .Range("A533:A592").FillDown
   
    .Range("A598:A598").FormulaArray = "=IFERROR(INDEX('aktive Mitglieder'!$C$5:$C$64,SMALL(IF('aktive Mitglieder'!$I$5:$I$64=""A"",ROW($1:$60)),ROW(A1))),"""")"
    .Range("A598:A657").FillDown
    .Protect
 End With
 Call Formatierungen(ws)
End Sub
Kann mir da bitte jemand Helfen ?

Gruß daniel
Hallo,


dann stelle doch mal die Tabelle ein, oder glaubst Du, irgendeiner kann jetzt noch was mit den ollen Kamellen anfangen?
Habe gehofft ich muss nicht erst Aufgrund der Datenschutzbestimmungen die Tabelle für euch vorbereiten
Hallo Daniel,

mit Blattschutz lässt sich aber auch kaum was anfangen ... Sad
Eventuell hilft es Dir schon, wenn Du die Formel(n) manuell änderst, dabei die Makroaufzeichnung laufen lässt und anschließend die codes vergleichst und die Änderungen einarbeitest.
Guten MOrgen, stimmt sry habe ich nicht gesehene.

Hier nochmal die Tabelle ohne Blattschutz. WEnn ich die Formel verstehen würde dann könnte ich das entfernen stimmt, verstehe es aber nicht.
Hallo Daniel,

Fangen wir mal mit der ersten Formel an.

Zuerst wird die Prüfung auf dem Blatt "aktive Mitglieder" in Zelle A5 und darunter verarbeitet. Wenn man die Prüfung entfernt, kann man gleich "=C5" eintragen. Im Moment wird dort noch mit "=ZÄHLENWENN(..)" auf doppelte Namen geprüft. Du könntest aber auch gleich mit der Spalte C weiterarbeiten ...
hallo,

habe mal Mutig den Code beschnitten und folgendes ist entstanden


IFERROR(INDEX('aktive Mitglieder'!$C$5:$C$64,ROW($1:$60)),"""")"

So wie es ausschaut funktioniert es
Hallo, geht doch nicht, schreibt in jede Zeile name 1.Ich verstehe das mit Kkleinste nicht was damit gemacht wird.

Normalerweise kann ich ja einfach die Zellen jeweils verknüpfen mit Zeille C5 bis C64. Die komplette Tabelle wird aber mit Formeln aus einer Vorlage erstellt. Daher sollte ich die Formel umstellen nur komme ich doch nicht weiter
Hallo,

ich komme da überhaupt nicht weiter ohne euch. Kann bitte jemand Helfen?
Hallo Daniel,

beantworte doch einfach mal meine Frage ..

Die erste Formel, die eingetragen wird, ist
{=WENNFEHLER(INDEX('aktive Mitglieder'!$C$5:$C$64;KKLEINSTE(WENN('aktive Mitglieder'!$I$5:$I$64="A";ZEILE($1:$60));ZEILE(A1)));"")}

Damit erreichst Du, dass in A5:A64 nur die Namen eingetragen werden, wo in Spalte I in der ersten Tabelle ein A steht.
Wenn Du nicht mehr auf A prüfst, würden dort einfach nur die Namen aus Spalte C eingetragen.
Seiten: 1 2