Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1668to1672
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
Optimierung per VBA-Code (Fortsetzung)
25.01.2019 18:09:29
Markus
Hallo,
Optimierung per VBA-Code (Fortsetzung)
mein erster Beitrag zu diesem Thema ist leider schon im Archiv gewandert, deshalb neuer Beitrag.
Forum-Mitglied (Piet) hat mir schon sehr geholfen. Nach einigen Tagen Alltagstest müssen aber noch ein paar Änderungen her.
Es wäre schön, wenn Forum-Mitglied Piet sich dessen wieder annehmen würde. Ansonsten würde ich mich nochmals melden.
Gruß Markus

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Optimierung per VBA-Code (Fortsetzung)
25.01.2019 22:14:34
Piet
Hallo Markus
habe gerade deinen neuen Threaed gelesen, wie kann ich dir weiter helfen?
mfg Piet
AW: Optimierung per VBA-Code (Fortsetzung)
26.01.2019 05:25:50
Markus
Hallo Piet,
danke das du dich gemeldet hast. Jetzt haben auch wir hier Schnee.
Nach über eine Woche Alltagstest hätte ich gerne noch ein paar Änderungen, teilweise habe ich schon selber was geändert. Spalten verschoben bzw. gelöscht (neue Bsp.-Datei siehe Link)
Zelle G3 wird durch Eingabe PLZ in F3 per Formel SVERWEIS gefüllt
Das Barcode-Fenster habe ich von Y1 nach K1 verlegt. Das mit dem Return am Scanner funktioniert tadellos, es öffnet sich dein Bearbeitungsfenster (UserForm1). Demnach könnte das Steuerungselement (UF1 starten) gelöscht werden.
Bei der Bearbeitung im UserForm1 Fenster muss ich mit der TAB-Taste und Maus arbeiten, dieses ist in meinen Augen etwas umständlich. Deshalb vielleicht das UserForm1 Fenster und alles was damit zusammen hängt löschen und stattdessen Folgendes:
Ablauf: *****bezieht sich alles auf Zeile 3*****
1. Rückläufer wird gescannt (Zelle K1) und in Zelle K3 gefunden (K3 aktive Zelle)
2. K1 muss geleert werden
3. Sprung von K3 nach N3 (Grund)
4. nach einstelliger (1-9) Eingabe, Sprung nach O3 (VS-Nr.)
5. wenn in H3 schon eine VS-Nr. hinterlegt ist, sollte diese in O3 übernommen werden
6. dann Sprung nach P3 (Abteilung)
7. P3 wird händisch oder per Pulldown Menü gefüllt (siehe Zelle P3)
8. Q3 + R3 sollten weiterhin automatisch gefüllt werden
9. anschließend wird Zeile 3 durch eine bedingte Formatierung farblich eingefärbt
Das Steuerungselement (Code suchen) könnte auch gelöscht werden, alternativ Suche über die Excel-Suche. (wird nicht oft benötigt)
Wäre schön, wenn du die geänderte Datei wieder hochlädst.
https://www.herber.de/bbs/user/127155.xlsm
Gruß Markus
Anzeige
AW: Optimierung per VBA-Code (Fortsetzung)
26.01.2019 17:51:38
Piet
Hallo Markus
ich habe deine Beispieldatei herunter geladen und mir deine Wunschliste angesehen. Das sind ja einige Aenderungen geplant.
Vor allem freut mich das die Scanner Eingabe so funktioniert wie ich mir gewünscht habe. Statt UserForm können wir auch im Blatt arbeiten, wenn das günstiger ist. Muss ich mir in Ruhe ansehen. Kann aber eine Weile dauern, ich habe noch zwei Threads in Arbeit die auch sehr knifflig sind. Melde mich wieder wenn ich Fragen habe oder eine Lösung anbieten kann.
Hier taut der Schnee, aber es ist noch kalt und nass. Mal sehen wann ich wieder ein Bier in der Heimat trinken kann?
mfg Piet
Anzeige
AW: Optimierung per VBA-Code (Fortsetzung)
27.01.2019 01:30:05
Piet
Hallo Markus
anbei eine Beispieldatei zurück, es ist aber nicht deine Original Datei, sondern eine neue Excel 2007 von mir!
Dein Beispiel hat einen Defekt in der VBA Bibliothek, es erkannte einige VBA Befehle nicht! Kein Ahnung warum?
Wie du an meinem Datei Namen siehst (u. mit angehangen weil es mehrere Beispiele gibt!) Ist es eine Target Version ohne UserForm! Ich denke das wird für dich Praxisgerechter sein. Ich hoffe es klappt einwandfrei, toi, toi, toi ....
Nach der letzten Eingabe in Spalte P = Abteilung springt der Cursor auf die Zelle K1 zurück. Sonst musst du im Target Makro diese Adresse von Hand aendern. Unklar ist mir die Spalte S, wie der Wert da hinein kommt. Ist die überhaupt notwendig, denn den Barcode haben wir doch schon in Spalte K? - Jetzt gehe ich mal eine Runde schlafen.
mfg Piet
https://www.herber.de/bbs/user/127171.xlsm - 'Optimierung oUF'
Anzeige
AW: Optimierung per VBA-Code (Fortsetzung)
27.01.2019 12:26:20
Markus
Guten Morgen Piet,
nach einigen Tests, muss ich dir ein großes Lob aussprechen. Es läuft einwandfrei, auch mit dem Scanner sieht alles super aus. Zu deiner Frage „Spalte S“, ich versuch es mal zu erklären.
Der richtige Barcode setzt sich eigentlich aus 16 Zeichen zusammen.
Beispiel: RC125437894DE110
Relevant sind die ersten 10 bzw. 11 Zeichen. Die letzten 5 Zeichen (DE110) können außer Acht gelassen werden. Hierbei handelt es sich um die Länderkennung.
Die ersten beiden Zeichen (RC) ist unsere Firmenkennung, die nächsten 8 Zeichen ist eine fortlaufende Nummer.
Bei Arbeitsbeginn würde ich morgens die erste Barcode-Nr. händisch in Zelle S3 eingeben.
Unser Beispiel s.o. RC12543789
in S4 käme dann RC12543790
dies geschieht durch runterziehen der Zelle S3 (dünnes Kreuz)
das 11. Zeichen der Barcode-Nr. ist die sogenannte Prüfziffer, und die ist variabel und wird in den Spalten T U V und W nachfolgender Berechnung (Formeln) ausgeführt.
Beispiel s.o.:
RC125437894 relevant sind jetzt die Stellen 3-10 (diese werden zuerst multipliziert mit Faktor)
Stelle 3 Barcodeziffer 1 Faktor 8 Ergebnis 8
Stelle 4 Barcodeziffer 2 Faktor 6 Ergebnis 12
Stelle 5 Barcodeziffer 5 Faktor 4 Ergebnis 20
Stelle 6 Barcodeziffer 4 Faktor 2 Ergebnis 8
Stelle 7 Barcodeziffer 3 Faktor 3 Ergebnis 9
Stelle 8 Barcodeziffer 7 Faktor 5 Ergebnis 35
Stelle 9 Barcodeziffer 8 Faktor 9 Ergebnis 72
Summe aller Multiplikationen 8+12+20+8+9+35+72+63 =227 (Ergebnis wird dividiert)
227:11 (11 ist immer feste Größe) = 20 und einen Rest von 7
Relevant ist der Rest (7) der dann subtrahiert wird
11-7 (11 ist wieder feste Größe) = 4
In diesem Fall wäre 4 die Prüfziffer.
Nachfolgendem System ermittelt sich die Prüfziffer.
Ergibt das Subtraktionsergebnis 12,3,4,5,6,7,8 oder 9, so wird das Ergebnis als Prüfziffer übernommen.
Ergibt das Subtraktionsergebnis 10 so wird als Prüfziffer eine 0 gewählt
Ergibt das Subtraktionsergebnis 11 so wird als Prüfziffer eine 5 gewählt
Ist schon ein irrer Weg.
In Zelle J3 werden die Zellen S3+T3 verknüpft. Nach Feierabend werden die Barcode-Nr. von der Frankiermaschine mittelts CSV-Datei in Die Spalten K L M eingelesen. Ist die Zelle K3 identisch mit J3, so färbt sich J3 grün ein (vorher rot, weil K3 noch leer) und ich bin auf der sicheren Seite.
Für dich Piet, gib mal die letzte Ziffer in K3 ein (4) (unsere Prüfziffer aus dem Beispiel)
Wenn du dafür eine andere Lösung hast, so wäre mir das auch Recht.
Datei-Link: https://www.herber.de/bbs/user/127179.xlsm
Gruß Markus
Anzeige
AW: Optimierung per VBA-Code (Fortsetzung)
27.01.2019 20:41:10
Piet
Hallo Makrus
anbei deine Beispieldatei mit überarbeitetem Makro zurück. Neu eingebaut habe ich eine Kopier Funktion der Zeile 3. Bei neuem Kunden wird die Zeile 3 komplett nach unten kopiert, damit du alle Formeln und die bedingte Formatierung auch in der neuen Zeile hast. Die Kunden Daten (ausser Formeln!) werden gelöscht. Für den Barcode habe ich im Target Makro einen Testwert notiert, den kannst du selbst waehlen, weil bei Nullwerten die Prüfziffer Formeln Error zeigen!! - Ihr seht ja das es KEIN echter Barcode ist.
Neu eingefügt, was wir nachher teilweise ins Makro integrieren können, ist oben in Zeile 1 die Zelle C1 mit "S" für Spalte S, und Zelle F1 mit "Ja/No" zum Abschalten eines 2. Target Makros! Es könnte evtl. deine Bearbeitungen stören, dann durch "No" auf Aus stellen!
Der Unterschied zwischen den beiden liegt darin, dass das 1. Makro auf Eingaben regiert, das zweite nur auf die Bewegung des Cursors! Ich erklaere es dir! - Wenn du den Kunden Namen und Adresse eingegeben hast, und durch abklicken der Cursor auf Spalte H,I,J springt (ohne Eingabe!), reagiert das 2. Makro auf den Cursor und springt dahin wo du ihn haben willst. Das kann Spalte "S" für den Barcode sein, od. Spalte A bzw. D für die naechste Kunden Eingabe. Ich denke die Sprung Option erleichtert euch noch mal die Arbeit.
Unklar ist mir im Augenblick noch die Spalte A, wie du da die Werte eingibst, weil es da auch Farben gibt. Ich habe überlegt ob man bei der Kunden Eingabe über eine InputBox die Art direkt mit Abfragen soll? Kann aber sein das ihr das nachher schneller von Hand ausfüllt. Wie macht ihr das bis jetzt?
Weil das alles neu ist könnten noch Fehler drin sein, kennst du schon. Man muss es in der Praxis testen.
mfg Piet
https://www.herber.de/bbs/user/127187.xlsm
Anzeige
AW: Optimierung per VBA-Code (Fortsetzung)
27.01.2019 21:21:23
Markus
Hallo Piet,
ich werde das ganze morgen mal in Ruhe anschauen und dir dann berichten. Ich wünsche noch einen schönen Sonntagabend.
Gruß Markus
AW: Optimierung per VBA-Code (Fortsetzung)
28.01.2019 19:29:18
Markus
Hallo Piet,
hab’s heute mal getestet, und komme zu folgendem Schluss.
Das 2. Target Makro brauchen wir nicht. War gut gemeint, aber den Sprung in Spalte A, D oder S brauchen wir nicht. Erklär ich weiter unten. F1 hab ich auf No gestellt.
Die Kopierfunktion der Zeile 3 ist genial, auf jeden Fall behalten. Ich habe die bedingten Formatierungen nun nur für Zeile 3 abgespeichert. Du mühtest dann die Spalte A auch noch in die Kopierfunktion mit aufnehmen. Danke.
Wenn ich einen Rückläufer scanne, wird die VS-Nr. in O3 nicht mehr aus H3 übernommen. Q3 u. R3 werden automatisch gefüllt.
Zu Spalte A:
AP bzw. CTV geben an wo die Einschreiben produziert wurden.
Die CTV Einschreiben, sind teilweise 150-180 St. am Tag, bekommen wir von unserer großen Druckstraße. Bei diesen Einschreiben liegen die Kundendaten (Spalte D;E;F;G;H und I) schon digital vor, und werden per CSV-Datei in die Liste eingefügt.
Die AP-Einschreiben werden von verschiedenen Sachbearbeitern in ihren verschiedenen Abteilungen erzeugt und werden bei uns von den Hausboten abgegeben. Diese müssen wir St. für St. händisch in die Tabelle einpflegen. Ich weiß, es geht auch bestimmt komfortablerer.
in A3 gebe ich dann händisch z.B. CTV ein und zieh dann einfach weiter runter bis A153. Somit habe ich dann schon für alle (z.B.) 150 CTV Einschreiben die Spalte A gefüllt.
Nun noch einmal zur Barcode Erzeugung in Spalte S. Dort gebe ich die erste Barcode Nr. ohne Prüfziffer und ohne die letzten 5 Zeichen (DE110) händisch ein. z.B. in S3 RC10000001 und bestätige mit Enter. Darauf hin wird durch die Formeln in T3,U3,V3 und W3 in T3 die Prüfziffer immer sauber erzeugt. Anschließend wird der erzeugte Barcode (S3+T3) verknüpft in J3 angezeigt. Nun gehe ich hin und markiere den Bereich S3-W3, (siehe Bild 1), und gehe mit der Maus auf das kleine Quadrat, unten rechts des markierten Bereiches und ziehe alle Spalten bis Zeile 200 runter (siehe Bild 2). Somit wird in Spalte S die Barcode Nr. immer um 1 erhöht und die Formeln in T, U, V und W nach unten kopiert.
Dieses kopieren bezieht sich auch auf Spalte A
In P3 habe ich ein DropDown Element eingefügt. (Datenprüfung)
Datei Link
https://www.herber.de/bbs/user/127224.xlsm
Gruß Markus
Anzeige
AW: Optimierung per VBA-Code (Fortsetzung)
30.01.2019 13:23:53
Piet
Hallo Markus
anbei deine Beispieldatei überarbeitet zurück. Das Sprung Makro habe ich gelöscht, und den Fehler bei der VS Nr. beseitigt.
Das Kopieren habe ich beibehalten, jatzt von Spalte A nur bis zur Spalt J, weil du die Spalten S bis W ja selbst runter kopierst.
Würde mich freuen wenn alles fehlerfrie klappt. Dann waere ein langer Thread erfolgreich zu Ende gebracht worden.
Schade das ich so weit weg bin, sonst könnten wir gemeinsam ein Bier darauf trinken.
mfg Piet
https://www.herber.de/bbs/user/127287.xlsm
Anzeige
AW: Optimierung per VBA-Code (Fortsetzung)
30.01.2019 16:50:50
Markus
Hallo Piet,
danke für das Feedback. Als erstes, ich würde auch ein ganzes Fässchen Kölsch ausgeben. Du muss noch einmal drüber herschauen. 2 Änderungen hab ich noch bzw. Fehler. Dann denke ich ist das ganze auch ausgereizt, mehr geht nicht. So wie du das programmiert hast, ist es schon eine große Erleichterung und es geht wesentlich flüssiger von Statten.
Zu meinen Punkten:
1. die Kopierfunktion in Spalte A muss wieder zurück genommen werden, da die bedingte Formatierung und der Wert z.B. AP, aus der der Zelle darüber, übernommen wird. Wenn nur die bedingte Formatierung übernommen werden könnte, das ginge.
2.Wenn ich in D4 einen neuen Kunden anlegen will, und mit Enter bestätige, so löscht mir das Makro in S4 den Wert (Barcode) aus der Zelle. Durch die Verknüpfung von S4+T4 in J4, wird hier natürlich auch ein Fehler angezeigt.
Ansonsten läuft alles einwandfrei. Ich weiß gar nicht wie ich dir danken soll. Deine "Monats E-Mailadresse" hab ich mir mal gesichert, falls mal doch irgendwas ansteht. Tausend Dank!!
https://www.herber.de/bbs/user/127299.xlsm
Anzeige
AW: Optimierung per VBA-Code (Fortsetzung)
30.01.2019 19:55:36
Piet
Hallo Markus
das war zum Glück nur eine kleine Arbeit, zwei Befehle musste ich aendern. Das Kopieren bleibt, dafür wird der Wert in Zelle A jetzt gelöscht! Das Löschen von S war falsch, der Löschbefehl wurde geaendert von Spalte K bis R. Damit sollten alle Macken raus sein.
Mehr optimieren geht m.E. nicht. Du kannst deine Datei ja mal den Kollegen in Erftstadt bei Köln anbieten, da arbeitet ein Cousen von mir bei der Post als Zustelle. Vielleicht können die dein System ja auch gebrauchen. Würde mich freuen ...
https://www.herber.de/bbs/user/127308.xlsm
Anzeige
Geschafft: Optimierung per VBA-Code
30.01.2019 21:55:13
Markus
Hey Piet,
es läuft suuuper. Das hätte ich nur mit Formeln niemals hin bekommen. Nächste Woche kommt bei uns ein hohes Tier (Gebietsleiter Nord/West) von der gelben Firma, dem werd ich das ganze mal vorführen. Wenn sich da was tut, sitzt du auf jeden Fall mit im Boot. Deine Mail-Adresse hab ich ja.
Nochmals vielen vielen Dank, und Gruß nach Ankara.
Gruß Markus
AW: Optimierung per VBA-Code (Fortsetzung)
31.01.2019 19:49:27
Markus
Hallo Piet,
sorry das ich noch mal stören muss, hab mich wohl zu früh gefreut. 2 Bugs sind noch drin.
1. bezieht sich auf Zeile 4 (ohne VS-Nr. (H4)
wenn ich den Barcode (Rückläufer K4) im Scanner Fenster (K1) lade und mit Enter bestätige, wird N4 aktive Zelle. Ist auch richtig so. Nach Eingabe des Grundes, angenommen 1, mit Enter bestätigt wird O4 übersprungen und P4 ist aktiv.
Wäre super wenn H4 leer ist, das dann O4 angesprungen wird.
2. betrifft Kundendaten in digitaler Form (siehe Arbeitsblatt CTV Daten)
Wenn ich Arbeitsblatt (CTV Daten) A1-F3 markiere u. kopiere nach Arbeitsblatt (Erfassung) in (unser Beispiel) in C5 und sage einfüge, erscheint das Datum in B5-B7 nicht. Ich hab schon überlegt ob ich erst ab D5 einfügen darf.
Vielleicht kriegst du das auch noch hin.
https://www.herber.de/bbs/user/127345.xlsm
Gruß Markus

73 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige