Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
416to420
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
416to420
416to420
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Debuggen

Debuggen
20.04.2004 14:33:41
Lars
Hallo!!!
Ich habe ein Makro geschrieben, nur leider hat sich irgendwo ein Fehler eingeschlichen, den ich leider nicht finden kann :-(
Jetzt ist meine letzte Hoffnung, das sich hier einer mal dieses Makro anguckt und es laufen lässt, um diesen Fehler eventuell zu finden.
Ich will erstmal fragen, ob sich dazu einer bereit erklärt, wenn ja, würde ich das Excel - Sheet hochladen und das genaue Problem erläutern.
Bin total verzweifelt...

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Debuggen
20.04.2004 14:35:30
Russi
Moin!
Dann mach ma, ich schaus mir an.
Russi
AW: Debuggen
20.04.2004 14:49:18
Lars
https://www.herber.de/bbs/user/5420.xls
Vielen Dank!!!
Ich hoffe du hast mehr Erfolg als ich!
Also, der Fehler ist folgender:
Ich habe diese Liste mit zu produzierenden Teilen.
Die Werte sollen absteigend (in der Hilfstabelle) sortiert werden. Ausnahmen gibt es, wenn es "Vorbedingungen" gibt, dann wird diese Sortierung unterbrochen.
Aber das ist auch kein Problem, das läuft.
Aber in dem Fall den ich hochgeladen habe, wird Teil 12 doppelt produziert, und das darf nicht sein! Wenn man jetzt die Anzahl zu fertigender Teile bei 12 rausnähme, würde immer noch einmal produziert werden! Da muß irgendein Fehler drin sein, den ich leider nicht finde...
Ich hoffe du verstehst was ich meine und es ist nicht so durcheinander.
Anzeige
AW: Debuggen
20.04.2004 15:06:57
Russi
Hi Lars!
Bin am Ball.
Aber Frage nochmal: Ich habe aus [Produktionsplan] mal die automatisch eingetragenen Werte gelöscht und das Makro laufen lassen.
Auch nach mehrmaligem Durchlauf taucht die 12 bei mir nicht doppelt auf, weder in der [Produktionsplanung], noch in einer anderen Tabelle.
Aber genau darin soll doch Dein Problem liegen, oder?
Russi
AW: Debuggen
20.04.2004 15:13:11
Lars
Das Problem ist, das oft das Programm richtig läuft, aber häufig auch so ein Fehler auftritt.
Probier es mal noch ein paar mal aus, mit wechselnden Teilen.
Ich kann auch keine Regelmässigkeit entdecken, wann dieser Fehler auftritt...
Aber er passiert irgendwie manchmal... :-(
Anzeige
AW: Debuggen
20.04.2004 15:21:23
Russi
Soweit ich das sehe, ist die 12 ein Überbleibsel aus einer früheren Makroausführung.
Ergänze Dein Makro Produktionsprogramm() nach den Wertzuweisungen der Variablen am Anfang um folgende Zeilen:
Sheets(blatt).activate
Range("A5:D39").Select
Selection.ClearContents
Diese Zeilen löschen bereits vorhandene Werte aus den Produktionsplan, so dass nur noch aktuelle Werte drinstehen.
Ist es das, was Du meintest?
Russi
AW: Debuggen
20.04.2004 15:30:17
Lars
Jetzt gibt er immer einen Laufzeitfehler an (1004).
Wie bekomme ich den weg? Oder kannst du mir die drei Zeilen da vielleicht einbauen?
Ich bin wohl irgendwie zu blöd für diese Makrosachen...
Ich weiß auch nicht ob das ein Überbleibsel ist, aber es passiert halt ab und zu und immer bei unterschiedlichen Teilen.
Anzeige
AW: Debuggen
20.04.2004 15:32:35
Russi
So sollte es gehen:
'Ich arbeite mit dem Tabellenblatt Produktionsplan

Private Sub Produktionsprogramm()
blatt = "Produktionsplan"
Dim Maschine As Integer
Dim i, zeile, j As Integer
Maschine = 1
zeile = 1
Sheets(blatt).Range("A5:D39").ClearContents
For i = 1 To zaehler 'Soviele Identnummern ich habe
'Ist der aktuelle Artikel ein E artikel und der vorherige auch dann..
If artikel(4, i) = "E" And (artikel(4, i - 1) = artikel(4, i)) Then '2 mal E hintereinander
For j = i + 1 To zaehler '.. suche nächste Ident die nicht E ist
If artikel(4, j) <> "E" And artikel(1, j) <> "" Then
Worksheets(blatt).Cells(4 + zeile, Maschine) = artikel(1, j) 'die dann ausgeben
artikel(1, j) = "" 'Identnummer löschen damit nicht nochmal ausgeben
If Maschine = 4 Then 'nächste maschine, wenn die 4 maschine dann wieder 1
Maschine = 1     ' maschine aber nächste zeile
zeile = zeile + 1
Else
Maschine = Maschine + 1
End If
Exit For
End If
Next j
End If
If artikel(1, i) <> "" Then ' artikel sind keine zwei E hintereinander und wurde bisher noch nicht ausgegeben
Worksheets(blatt).Cells(4 + zeile, Maschine) = artikel(1, i)
If Maschine = 4 Then
Maschine = 1
zeile = zeile + 1
Else
Maschine = Maschine + 1
End If
End If
Next
End Sub

Anzeige
AW: Debuggen
20.04.2004 15:42:11
Lars
https://www.herber.de/bbs/user/5424.xls
Ich habe die Datei nochmal beigefügt, mit deiner Änderung und neuen Daten.
Bei mir produziert er jetzt Teil 9, obwohl das gar nicht produziert werden soll...
AW: Debuggen
20.04.2004 15:57:59
Russi
OK, dann ist "der Wurm" woanders drin.
Nächster Versuch (Ich muss mich etwas rantasten, da ich nicht genau weiß, wie Du mit der Datei arbeitest):
Du hast die Variable artikel außerhalb der Subs deklariert. Dies hat zur Folge, dass alle einmal gespeicherten Werte gespeichert bleiben bis neue Werte zugewiesen werden.
Einfachste Lösung: in

Sub Produktionsprogramm() ganz am Ende vor "End Sub
" müssen die Inhalte der Variablen gelöscht werden. Dies erreichst Du mit
artikel(4,100) = ""
Somit sind bei der nächsten Makroausführung keine "Dateileichen" mehr gespeichert und die Variable artikel(...) enthält nur aktuelle Werte.
Russi
Anzeige
AW: Debuggen
20.04.2004 16:12:47
Lars

Die Datei https://www.herber.de/bbs/user/5441.xls wurde aus Datenschutzgründen gelöscht

Mist, jetzt dachte ich wirklich es klappt, hatte ein paar Durchläufe in denen es kein Fehler gab, und jetzt wieder die 9 doppelt... :-(
Ich habe jetzt auch gleich einen Termin, kann erst heute Abend wieder reinschauen.
Guckst du regelmässig hier rein? So das wir nochmal miteinander quatschen können?
Weiß wirklich nicht, wie ich das Problem alleine lösen kann.
Ich danke dir auch für deine Hilfe!!!
AW: Debuggen
20.04.2004 16:16:38
Russi
Ich schaue hier rein, so oft sich Gelegenheit bietet, was auch immer das zukünftig heißen mag ;-)
Ich schau morgen nochmal nach der Datei, muss jetzt auch gleich los.
Anzeige
AW: Debuggen
20.04.2004 21:55:11
Lars
Sehr gut!!!
Dann bis morgen! :-)
DANKE!
AW: Debuggen
21.04.2004 08:37:45
Russi
Moin moin!
Ich glaube, jetzt wars das. Ich musste mich bisher nicht mit Arrays befassen, so dass mein letzter Befehl zum Leeren der Inhalte leider falsch war. SORRY dafür!!!
Der Makrofehler bestand nach wie vor darin, dass Variableninhalte gespeichert blieben.
Jetzt habe ich durch eine Schleife sichergestellt, dass die Variableninhalte gelöscht werden.
Diesen Fehler kannst Du zukünftig auch umgehen, wenn Du Variablen immer innerhalb einer Sub deklarierst. Macht aber hier jetzt mehr Arbeit als nötig, alles umzubauen.
Hier nun die neue Datei:
https://www.herber.de/bbs/user/5486.xls
Falls doch noch Probleme auftauchen sollten, meld Dich einfach nochmal.
Viele Grüße
Russi
www.Russi.de.tt
Anzeige
AW: Debuggen
21.04.2004 08:47:47
Lars
Ich habe es jetzt drei- bis viermal probiert und es scheint zu klappen.
Werde es heute Nachmittag nochmal auf Herz und Nieren prüfen.
Ich hoffe aber das wars, sowas nervt wirklich, wenn man so einen blöden Fehler hat und den nicht findet.
Aber sag mal, wie kommt man an solche Excel-Kenntnisse? Reines Selbststudium?
AW: Debuggen
21.04.2004 08:56:13
Russi
Ja, ich hoffe auch, das es das jetzt war. Sorry nochmal für die "Falschberatung"!
Das Wissen kommt mit der Zeit (VIEL Zeit!). So nach und nach lernt man immer mehr. Wenn ich mal Zeit habe, lese ich etwas hier im Forum (es gibt immer interessante Beiträge!) oder schaue dann und wann mal in andere Excel-Seiten.
Bücher sind meiner Meinung nach nur bedingt bzw. für Einsteiger zu empfehlen, da 1.teuer, 2.bieten meistens keine Lösung für das spezielle Problem und 3.mit Hilfedateien, Google und Herber.de kommt man immer weiter.
Also, viel Spaß mit Deiner Datei! ;-)
CU
Russi
www.Russi.de.tt
Anzeige
AW: Debuggen
20.04.2004 15:29:43
Russi
Sorry, machs kürzer:
Sheets(blatt).Range("A5:D39").ClearContents
Russi ;-)
AW: Debuggen
20.04.2004 15:32:13
Lars
Ok, kein Laufzeitfehler mehr! :-)
Ich probiere es mal aus!
AW: Debuggen
20.04.2004 14:57:08
Lars
https://www.herber.de/bbs/user/5420.xls
Vielen Dank!!!
Ich hoffe du hast mehr Erfolg als ich!
Also, der Fehler ist folgender:
Ich habe diese Liste mit zu produzierenden Teilen.
Die Werte sollen absteigend (in der Hilfstabelle) sortiert werden. Ausnahmen gibt es, wenn es "Vorbedingungen" gibt, dann wird diese Sortierung unterbrochen.
Aber das ist auch kein Problem, das läuft.
Aber in dem Fall den ich hochgeladen habe, wird Teil 12 doppelt produziert, und das darf nicht sein! Wenn man jetzt die Anzahl zu fertigender Teile bei 12 rausnähme, würde immer noch einmal produziert werden! Da muß irgendein Fehler drin sein, den ich leider nicht finde...
Ich hoffe du verstehst was ich meine und es ist nicht so durcheinander.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige