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.

Fehler im Code ?! Debugger
#1
Hallo zusammen,

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  Angry
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.

Sub Makro2()
'
' Makro2 Makro
'

'

    Range("LF1_[Lieferant 1]").Select
    ActiveSheet.Range("LF1_[#Alle]").RemoveDuplicates Columns:=1, Header:=xlYes
    
    
End Sub



Vielen Dank schon mal für eure Hilfe!
Antworten Top
#2
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.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#3
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
Antworten Top
#4
(24.09.2019, 14: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, 20: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.

ActiveSheet.Range("LF1_[#Alle]").RemoveDuplicates Columns:=1, Header:=xlYes

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  Huh

Lässt mich sonst nicht ruhig schlafen.

Danke euch schon mal und beste Grüße!
Antworten Top
#5
Hallo,

(25.09.2019, 06: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.

ActiveSheet.Range("LF1_[#Alle]").RemoveDuplicates Columns:=1, Header:=xlYes

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  Huh

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:
  • SemmyW
Antworten Top
#6
Hallo,

ich denke so kommen wir nicht weiter. Lade deine Datei mal hoch, dann kann man auf Fehlersuche gehen.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#7
(25.09.2019, 09:06)Klaus-Dieter schrieb: Hallo,

ich denke so kommen wir nicht weiter. Lade deine Datei mal hoch, dann kann man auf Fehlersuche gehen.

Es funktioniert jetzt nachdem man das _[#Alle] entfernt hat.

Frage ist nur warum, das "Makro aufzeichnen" dieses _[#Alle] aufführt. 

Wenn du da gerne mal hineinsehen möchtest dann ist im Anhang eine kleine Datei mit dem Makro für dich.

(Kannst gerne noch weitere Verbesserungen vorschlagen zum Ablauf, bin ja noch recht am Anfang mit VBA)


Angehängte Dateien
.xlsm   Mappe2.xlsm (Größe: 17,59 KB / Downloads: 5)
Antworten Top
#8
Hallo    

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
Antworten Top
#9
(25.09.2019, 11:05)Gast 123 schrieb: Hallo    

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"  Angel
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.
Antworten Top
#10
Hallo 

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 ....

mfg Gast 123
Antworten Top


Gehe zu:


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