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.

Befehl an Tabellenlänge automatisch anpassen
#1
Hallo, ich habe folgendes Problem. Ich habe folgenden Befehl für eine Exceldatei:

Code:
=WENNFEHLER(INDEX(F1:F12;VERGLEICH(A1:A12&B1#;D1:D12&E1:E12;0));"Kein Match")


Ziel des Befehls ist es, automatisch die Name und "Non-Matches" zu ermitteln. Nun will ich dazu ein Makro erstellen, welches automatisch auf eine "neue" Datei, mit anderen Werten und einer anderen Zeilenanzahl, den selben Befehl anwendet und mir die Namen und "Non-Matches" ausspuckt. Wenn ich nun ein Makro aufzeichne, unten eine neue Tabelle erstelle und den Befehl dann eingebe, das Makro speichere und dann auf einen "neuen" Datensatz anwende, dann steht immer folgende Fehlermeldung:

Laufzeitfehler 9: Index außerhalb des gültigen Bereiches

Ich denke mal das liegt daran, dass die neue Tabelle länger ist und die in der Formel angegeben Zeilen nicht mit denen der neuen Datei matchen. Wie bekomme ich des also hin, dass das Makro automatisch die Länge der Tabelle erkennt und sich dann automatisch anpasst? Und wie fixe ich den Fehler?
Antworten Top
#2
Hi,

Zitat:Und wie fixe ich den Fehler?

Indem Du uns mal Deinen Code UND Deine Mappe zeigst.
Antworten Top
#3
Code:
Sub Makro3()
'
' Makro3 Makro
'

'
    Sheets("Tabelle3").Select
    ActiveWindow.SelectedSheets.Delete
    Sheets.Add After:=ActiveSheet
    ActiveCell.FormulaR1C1 = "Match"
    Range("A1").Select
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 65535
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
    Range("A2").Select
    ActiveCell.Formula2R1C1 = _
        "=IFERROR(INDEX([Tabelle1.xlsx]Tabelle1!R2C92:R313C92,MATCH(Tabelle1!RC[5]:R[215]C[5]&Tabelle1!RC[4]:R[215]C[4],[Tabelle1.xlsx]Tabelle1!R2C101:R313C101&VLOOKUP([Daten_Auslieferungen.xlsx]Tabelle1!R2C91:R313C91,'C:\Users\EALO\Documents\[Tabelle2.xlsx]Tabelle1'!R2C1:R11435C2,2,FALSE),0)),""Keine Übereinstimmung"")"
    Range("A3").Select
End Sub
Antworten Top
#4
Hi,


Zitat:UND Deine Mappe
Antworten Top
#5
hallo
ich denke dazu brauchst du kein Makro wenn du statt dessen eine "intelligente" Tabelle erstellst:

Klicke in die Liste, Tastenkombination [STRG]+[T] > Tabelle hat Überschriften.

Der konkrete Bezug richtet sich jetzt nach der Überschrift und wird automatisch angepasst wenn Zeilen hinzu kommen.
Aus  F1:F12, wird dann Tabelle1[Überschrift]

Gruß Holger
Antworten Top
#6
Damit hats geklappt danke. Habe nun ein Makro mit einer intelligenten Tabelle aufgenommen und nun klappt es. Ein kleines "Schöhneheitsproblem" besteht aber noch. Wenn ich nun im "Ausgangsdokument" ein Makro aufnehme und dabei eine intelligente Tabelle von bsp. A1:A100 mache und dann als nächstes meinen Befehl darauf anwende dann klappt dass wunderbar. Wenn ich dieses Makro nun aber auf ein Dokument mit bsp. A1:A97 anwenden, dann erstellt das Makro ja trotzdem eine intelligente Tabelle von A1:A100 obwohl es nur bis 97 geht. Dadurch wird dann auch der Befehl auf die ganze Tabelle (A1:A100) angewandt und nicht auf (A1:A97), weshalb es dann sozusagen dreimal ein "Mismatch" anzeigt, obwohl gar nichts verglichen wird. Wie kann man das noch anpassen?
Antworten Top
#7
Hi,

für mein Verständnis ist die Formel schon falsch:

Code:
=WENNFEHLER(INDEX(F1:F12;VERGLEICH(A1&B1;D1:D12&E1:E12;0));"Kein Match")

Außerdem müssten die Bezüge fixiert werden!
Auch im Makro ist der Vergleich falsch!
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top


Gehe zu:


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