ich habe vorhin einen längeren Code geschrieben und ausgeführt und es lief alles so wie es soll.
Jetzt am nächsten Tag, nachdem ich mich an den nächsten Teil machen wollte, bleibt der immer an dieser Stelle stehen im Debugger und ich checke nicht wieso. Es handelt sich dabei um ein einfach aufgezeichnetes Makro, welches in der Tabelle nur die Duplikate entfernt. Wenn ich diese Zeilen aus meinem Code herausnehme, arbeitet der Code auch durch, jedoch müsste ich am ende die Duplikate entfernen und dann ist das Problem wieder da.
Ich verstehe grade einfach nicht wieso das nicht funktioniert, obwohl es gestern funktioniert hat Hoffentlich sitzt das Problem einfach vor dem Rechner... wäre die einfachste Lösung.
Dieses Einfache Marko sorgt momentan für meine Kopfweh.... Tabelle "LF1" wird in einigen Schritten vorher definiert und besteht lediglich aus einer Spalte.
Select ist schon einmal Murks. Dann hast du zwar eine Tabelle angesprochen, aber keine Range, das wäre eine Zelle oder ein Bereich aus mehreren Zellen. Falls ich das richtig interpretiere.
Viele Grüße Klaus-Dieter Der Erfolg hat viele Väter, der Misserfolg ist ein Waisenkind Richard Cobden
ich bin auch am Raetseln was das für eine Adressierung ist: Range("LF1_[Lieferant 1]").Select ?? Lass obige Zeile mal komplett weg und probier es mal so: Tabelle("LF1").Columns(1).RemoveDuplicates Columns:=1, Header:=xlYes Bei mehreren Spalten musst du evtl. Tabelle("LF1").Columns("A:X").Remove ... angeben.
25.09.2019, 07:48 (Dieser Beitrag wurde zuletzt bearbeitet: 25.09.2019, 07:53 von SemmyW.)
(24.09.2019, 15:59)Klaus-Dieter schrieb: Hallo,
Select ist schon einmal Murks. Dann hast du zwar eine Tabelle angesprochen, aber keine Range, das wäre eine Zelle oder ein Bereich aus mehreren Zellen. Falls ich das richtig interpretiere.
An sich hast du ja recht, jedoch hat diese Zeile nichts mit dem Problem zu tun.
Ich habe diese Zeile an Code ja genau so einfach mit dem Makro Aufzeichnen aufgenommen. So nimmt VBA das auf wenn ich manuell die Duplikate entferne.
Aber man kann die Zeile auch einfach weglöschen und es kommt immer noch zu dem Fehler.
(24.09.2019, 21:39)Gast 123 schrieb: Hallo
ich bin auch am Raetseln was das für eine Adressierung ist: Range("LF1_[Lieferant 1]").Select ?? Lass obige Zeile mal komplett weg und probier es mal so: Tabelle("LF1").Columns(1).RemoveDuplicates Columns:=1, Header:=xlYes Bei mehreren Spalten musst du evtl. Tabelle("LF1").Columns("A:X").Remove ... angeben.
mfg Gast 123
Erste Zeile einfach weg gelassen und der Fehler kommt immer noch.
Problem scheint wohl bei dem "_[#Alle]" zu liegen. Warum auch immer das jetzt als Fehler angezeigt wird. Wenn ich den manuellen Prozess von Duplikate entfernen mit einem Makro aufzeichne, wird genau dieser Code wie ich Ihn beschrieben habe generiert.
(25.09.2019, 07:48)SemmyW schrieb: Problem scheint wohl bei dem "_[#Alle]" zu liegen. Warum auch immer das jetzt als Fehler angezeigt wird. Wenn ich den manuellen Prozess von Duplikate entfernen mit einem Makro aufzeichne, wird genau dieser Code wie ich Ihn beschrieben habe generiert.
Als ich jetzt, so wie du es geschrieben hast, nur "LF1" stehen gelassen habe, funktionierte alles wieder.
Auch wenn meine Abfrage wieder funktioniert, ... würde ich dennoch gerne wissen warum der Fehler entsteht
Du hast für einen Zellbereich einen Namen vergeben und ich vermute mal der heißt LF1 und nicht LF1_[#Alle]. Im Code bezieht Du dich darauf und dann gibt es halt den Fehler.
Gruß Stefan Win 10 / Office 2016
Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:1 Nutzer sagt Danke an Steffl für diesen Beitrag 28 • SemmyW
zuerst hatte ich noch einen grossen Aufwand mit Kopieren, Sortieren, sehr umstaendlich. Dann erinnerte ich mich an die Faehigkit von snb, uns im Forum oft mit seinen berühmten "Einzeilen Makros" aufzuwarten. Ich brauchte als gelehriger Schüler noch vier Zeilen!
Warum der mords komplizierte Aufwand mit Sheet.Add erstellen, eine Intelligente Tabelle erstellen, um dann alles wieder zu löschen??? Eine einzige Hilfsspalte in Tabelle1 reicht völlig aus, die kann man auch löschen! Welche Spalte es ist ist völlig wurscht!
mfg Gast 123
Code:
Option Explicit Const Zielspalte = "F"
Sub Liefranten_ermittlen() Sheets("Tabelle1").Select Columns(1).Copy Columns(Zielspalte) Columns(Zielspalte).RemoveDuplicates Columns:=1, Header:=xlYes End Sub
zuerst hatte ich noch einen grossen Aufwand mit Kopieren, Sortieren, sehr umstaendlich. Dann erinnerte ich mich an die Faehigkit von snb, uns im Forum oft mit seinen berühmten "Einzeilen Makros" aufzuwarten. Ich brauchte als gelehriger Schüler noch vier Zeilen!
Warum der mords komplizierte Aufwand mit Sheet.Add erstellen, eine Intelligente Tabelle erstellen, um dann alles wieder zu löschen??? Eine einzige Hilfsspalte in Tabelle1 reicht völlig aus, die kann man auch löschen! Welche Spalte es ist ist völlig wurscht!
mfg Gast 123
Code:
Option Explicit Const Zielspalte = "F"
Sub Liefranten_ermittlen() Sheets("Tabelle1").Select Columns(1).Copy Columns(Zielspalte) Columns(Zielspalte).RemoveDuplicates Columns:=1, Header:=xlYes End Sub
"mords kompliziert" Mir ist schon klar, dass es durchaus elegantere Wege gibt. Nur der einfache Grund warum ich hier so vorgegangen bin ist, dass ich es halt (noch) nicht besser kann.
Für meinen Zweck und bis jetzt funktioniert alles sehr gut in meiner Liste. Das angezeigte Marko, welches ich hier thematisiert habe, ist nur ein kleiner Teil von dem was gesamten Konstrukt.
Wie gesagt alles zu 99% ohne dynamischen Code geschrieben, größtenteils einfach mit dem "Makro aufzeichnen" aufgenommen. Ich Wette, wenn ich die Gesamtdatei zeigen könnte, würde so mancher hier die Augen verdrehen, weil es evlt "umständlich" ist. Aaaber es funktioniert soweit Einwandfrei und ich bin zufrieden.
ich hoffe ich habe dich nicht gekraengt, das lag mir fern. Ich habe 20 Jahre gebraucht um das programmieren zu können, und bin noch kein Profi. Viele Kollegen sind um Klassen besser wie ich. Ich weiss das, nehme es gelassen hin. Es macht mir Spass dabei zu sein. Wenn ansonsten alles klappt freue dich, da kannst du mit Recht stolz drauf sein. Weiterhin viel Erfolg ....