Supportnet / Forum / Tabellenkalkulation
Excel
Frage
hallo, bin absoluter neuling in excel. ich möchte aus einem tabellenblatt - eingabeblatt daten in weitere blätter immer in die nächste frei zeile schreiben. entsprechende beiträge habe ich mir bei euch rausgesucht - eine anfrage von Edo mit antwort von Aliba vom 27.05.2003 bzw. Günter vom 27,/28.05.2003.Dort wurden drei werte übertragen. ich brauche es aber mit 10 werten bzw. beliebiger anzahl, gleichzeitig soll die eingabezeile nach übertragung gelöscht werden. ich hätte gerne den günter um antwort gebeten, nur er ist nur den membern zugänglich. Kann mir einer helfen. würde mich riesig freuen, brauche es dringendst für meine arbeit. Danke hansw
Antwort 1 von CaroS
Hallo Hans,
bitte beschreibe Dein Problem genauer. Unter
kann sich wahrscheinlich kaum jemand etwas konkretes vorstellen. Obwohl so eine vermutlich einfache Frage sicher sehr viele beantworten könnten und dies auch gerne tun würden, reagiert schon einen halben Tag lang kein einziger. Das wird wohl einen Grund haben.
Es wäre vielleicht auch hilfreich, wenn Du den konkreten Link (https://supportnet.de/threads/???????) angeben könntest, die älteren Beiträge von Aliba und Günter lassen sich trotz Datumsangabe nicht so leicht finden.
ist auch etwas unglücklich formuliert, denn Du willst wahrscheinlich gar nicht die Zeile löschen, sondern ihren Inhalt, und "gleichzeitig" ... "nach der Übertragung" klingt beinahe schon wie ein Widerspruch.
Ich glaube, die Mühe für eine bessere Problembeschreibung würde sich auszahlen.
Gruß,
CaroS
bitte beschreibe Dein Problem genauer. Unter
Zitat:
daten in weitere blätter immer in die nächste frei zeile schreiben
daten in weitere blätter immer in die nächste frei zeile schreiben
Zitat:
drei werte übertragen. ich brauche es aber mit 10
drei werte übertragen. ich brauche es aber mit 10
kann sich wahrscheinlich kaum jemand etwas konkretes vorstellen. Obwohl so eine vermutlich einfache Frage sicher sehr viele beantworten könnten und dies auch gerne tun würden, reagiert schon einen halben Tag lang kein einziger. Das wird wohl einen Grund haben.
Es wäre vielleicht auch hilfreich, wenn Du den konkreten Link (https://supportnet.de/threads/???????) angeben könntest, die älteren Beiträge von Aliba und Günter lassen sich trotz Datumsangabe nicht so leicht finden.
Zitat:
gleichzeitig soll die eingabezeile nach übertragung gelöscht werden
gleichzeitig soll die eingabezeile nach übertragung gelöscht werden
ist auch etwas unglücklich formuliert, denn Du willst wahrscheinlich gar nicht die Zeile löschen, sondern ihren Inhalt, und "gleichzeitig" ... "nach der Übertragung" klingt beinahe schon wie ein Widerspruch.
Ich glaube, die Mühe für eine bessere Problembeschreibung würde sich auszahlen.
Gruß,
CaroS
Antwort 2 von hansw
hallo CaroS, finde es echt toll, daß euer forum so schnell reagiert!!!! oder Du.Danke!das alte thema steht bei mir unter
"...supportnet.de/diskussion/listmessages.asp?autoid=138153"
Problem: Datei mit z.zt. 7 tabellen, die 1. als eingabetabelle ( eine zeile mit 10 zellen A3:J3), alle folgenden als auswertungstabellen,der inhalt der eingabezellen soll nach übernahme in die anderen tabellen gelöscht werden für die nächste eingabe. in die tabelle 5 sollen die daten " 1 zu 1"übertragen werden, in die restlichen tabellen nur teilweise. diese übertragungen sollen immer in die nächste freie zeile der jeweiligen auswertungstabelle geschrieben werden. ist es etwas verständlicher geworden?
wenn meine datei nicht ins netz kommt, könnte ich sie dir mal rübersenden, geht das? freue mich auf antwort, danke mfghansw
"...supportnet.de/diskussion/listmessages.asp?autoid=138153"
Problem: Datei mit z.zt. 7 tabellen, die 1. als eingabetabelle ( eine zeile mit 10 zellen A3:J3), alle folgenden als auswertungstabellen,der inhalt der eingabezellen soll nach übernahme in die anderen tabellen gelöscht werden für die nächste eingabe. in die tabelle 5 sollen die daten " 1 zu 1"übertragen werden, in die restlichen tabellen nur teilweise. diese übertragungen sollen immer in die nächste freie zeile der jeweiligen auswertungstabelle geschrieben werden. ist es etwas verständlicher geworden?
wenn meine datei nicht ins netz kommt, könnte ich sie dir mal rübersenden, geht das? freue mich auf antwort, danke mfghansw
Antwort 3 von CaroS
Hallo Hans,
das Problem habe ich verstanden, nur die Seite https://supportnet.de/diskussion/listmessages.asp?autoid=138153 bekomme ich nicht angezeigt. Muss ich dazu bei Supportnet.de registriert / Member / angemeldet sein? (Habe zurzeit keine Registrierung, bin nur "Gast", kann das aber nachholen, kein Problem.)
Beim Übertragen der Eingabewerte denke ich an eine VBA-Lösung (Makro), könntest Du Dir das selber anpassen, wenn ich Dir den fast fertigen Code hier poste?
Ich fange mal schon damit an. Bis später!
CaroS
das Problem habe ich verstanden, nur die Seite https://supportnet.de/diskussion/listmessages.asp?autoid=138153 bekomme ich nicht angezeigt. Muss ich dazu bei Supportnet.de registriert / Member / angemeldet sein? (Habe zurzeit keine Registrierung, bin nur "Gast", kann das aber nachholen, kein Problem.)
Beim Übertragen der Eingabewerte denke ich an eine VBA-Lösung (Makro), könntest Du Dir das selber anpassen, wenn ich Dir den fast fertigen Code hier poste?
Ich fange mal schon damit an. Bis später!
CaroS
Antwort 4 von CaroS
Hallo Hans,
noch ´ne Frage: Kann ich davon ausgehen, dass wenn insgesamt sagen wir 28 Eingaben stattgefunden haben, dass die einzelnen Werte in den Tabellen 2 bis 7 alle in denselben Zeilen stehen, sagen wir 2 bis 29, und dass demzufolge in allen Tabellen gleichermaßen die Zeile 30 die erste freie Zeile ist? Oder müsste man die erste freie Zeile für jedes Tabellenblatt gesondert ermitteln, weil es da Abweichungen geben kann?
CaroS
noch ´ne Frage: Kann ich davon ausgehen, dass wenn insgesamt sagen wir 28 Eingaben stattgefunden haben, dass die einzelnen Werte in den Tabellen 2 bis 7 alle in denselben Zeilen stehen, sagen wir 2 bis 29, und dass demzufolge in allen Tabellen gleichermaßen die Zeile 30 die erste freie Zeile ist? Oder müsste man die erste freie Zeile für jedes Tabellenblatt gesondert ermitteln, weil es da Abweichungen geben kann?
CaroS
Antwort 5 von CaroS
Und dann würde ich Dich noch bitten, die nachfolgende Übersicht auszufüllen, welche Inhalte aus der Eingabe-Tabelle in welche Zellen von Tbl1 bis Tbl6 übertragen werden sollen. Als Zeilenindex gib bitte an, welche die erste leere Zeile in jeder Tbl ist, in die übertragen werden soll, wenn bis auf Überschriften u. ä. alles noch leer ist.
Mit diesem Beispiel meine ich: Zelle A3 wird nach Tbl1 in Zelle A2 übertragen, Zelle B3 wird nach Tbl1 in Zelle G2 und nach Tbl2 in Zelle F3 übertragen. Nach Tbl5 - Zeile 4 werden alle Zellen übertragen, aber in veränderter Reihenfolge. Die Zeilenangaben gelten jeweils für die allererste Übertragung, danach immer untereinander in die nächste freie Zeile. OK?
Gut, dann einfach kopieren und ausfüllen.
CaroS
´. . | . . . . . Aus Tabelle "Eingabe" Zelle . . . . .
Nach | A3 | B3 | C3 | D3 | E3 | F3 | G3 | H3 | I3 | J3_
Tbl1 | A2 | G2 | .. | .. | .. | .. | .. | .. | .. |
Tbl2 | .. | F3 | .. | .. | .. | .. | .. | .. | .. |
Tbl3 | .. | .. | .. | .. | .. | .. | .. | .. | .. |
Tbl4 | .. | .. | .. | .. | .. | .. | .. | .. | .. |
Tbl5 | C4 | K4 | L4 | D4 | E4 | F4 | G4 | H4 | J4 |
Tbl6 | .. | .. | .. | .. | .. | .. | .. | .. | .. |Mit diesem Beispiel meine ich: Zelle A3 wird nach Tbl1 in Zelle A2 übertragen, Zelle B3 wird nach Tbl1 in Zelle G2 und nach Tbl2 in Zelle F3 übertragen. Nach Tbl5 - Zeile 4 werden alle Zellen übertragen, aber in veränderter Reihenfolge. Die Zeilenangaben gelten jeweils für die allererste Übertragung, danach immer untereinander in die nächste freie Zeile. OK?
Gut, dann einfach kopieren und ausfüllen.
CaroS
Antwort 6 von CaroS
Hallo Hans,
noch ´ne Frage zum Übertragen: Sollen von den Eingabezellen nur die Werte übertragen werden oder alle Eigenschaften der Zellen? Wenn Du während Deiner Eingabe z. B. die Schrift formatieren würdest, dann könnte man alle diese Eigenschaften mit kopieren oder auch nicht.
Andererseits könnte man auch vorab das gesamte "Zielgebiet" formatiert haben, dann wäre es vielleicht nicht so gut, wenn jeder neue Wert sein eigenes Format mitbringt und das vorbereitete Gesamtbild kräftig durcheinander bringt.
Man könnte das für jeden einzelnen Kopierschritt (siehe Tabelle oben) individuell festlegen.
CaroS
noch ´ne Frage zum Übertragen: Sollen von den Eingabezellen nur die Werte übertragen werden oder alle Eigenschaften der Zellen? Wenn Du während Deiner Eingabe z. B. die Schrift formatieren würdest, dann könnte man alle diese Eigenschaften mit kopieren oder auch nicht.
Andererseits könnte man auch vorab das gesamte "Zielgebiet" formatiert haben, dann wäre es vielleicht nicht so gut, wenn jeder neue Wert sein eigenes Format mitbringt und das vorbereitete Gesamtbild kräftig durcheinander bringt.
Man könnte das für jeden einzelnen Kopierschritt (siehe Tabelle oben) individuell festlegen.
CaroS
Antwort 7 von hansw
hallo cajo, ist meine mail angekommen? hatte sie am sonnabend von meinem hinterwäldlichem hausinternet angesendet. habe die tabelle hinterlegt, die ich als grundsätzliches beispiel verwenden wollte. melde dich bitte mal. mfg
Antwort 8 von CaroS
Hallo hansw,
ich weiß ja gar nicht, wo ich Deine Mail suchen soll. An wen hast Du sie denn geschickt? Ich glaube nicht, dass meine Mail-Adresse öffentlich bekannt ist. Allerdings bin ich in diesem Forum relativ neu und kenne mich z. B. mit dem sog. "Pager" und möglicherweise noch anderen Nachrichtenkanälen nicht aus. - Da wäre mir jede Hilfe recht, darüber neues zu erfahren.
Nachteil privater Post ist übrigens, dass andere den aktuellen Stand nicht mitverfolgen können, und warum willst das "Risiko" eingehen, nur auf ein Pferd zu setzen? Mehr Leser - mehr Tipps.
Da ich seit dem 24. keine neuen Informationen habe, kann ich erstmal nichts machen.
Bin auf Empang,
CaroS
ich weiß ja gar nicht, wo ich Deine Mail suchen soll. An wen hast Du sie denn geschickt? Ich glaube nicht, dass meine Mail-Adresse öffentlich bekannt ist. Allerdings bin ich in diesem Forum relativ neu und kenne mich z. B. mit dem sog. "Pager" und möglicherweise noch anderen Nachrichtenkanälen nicht aus. - Da wäre mir jede Hilfe recht, darüber neues zu erfahren.
Nachteil privater Post ist übrigens, dass andere den aktuellen Stand nicht mitverfolgen können, und warum willst das "Risiko" eingehen, nur auf ein Pferd zu setzen? Mehr Leser - mehr Tipps.
Da ich seit dem 24. keine neuen Informationen habe, kann ich erstmal nichts machen.
Bin auf Empang,
CaroS
Antwort 9 von TeX
Hallo HansW und CaroS,
habe diesen Thread bis hierhin interessant verfolgt, nur ist mir wirklich nicht klar, was und wie Hans da vor hat. CaroS, Du hast Dir ja richtigt viel Mühe gegeben mit der Problemhinterfragung.
HansW, bitte beantworte doch bei Gelegenheit obige Fragen von CaroS, hier im SN wird Dir dann sicher geholfen. Doch um etwaige Makro-Vorschläge zu erstellen, benötigt man dann doch schon konkretere Angaben.
Gruß TeX
habe diesen Thread bis hierhin interessant verfolgt, nur ist mir wirklich nicht klar, was und wie Hans da vor hat. CaroS, Du hast Dir ja richtigt viel Mühe gegeben mit der Problemhinterfragung.
HansW, bitte beantworte doch bei Gelegenheit obige Fragen von CaroS, hier im SN wird Dir dann sicher geholfen. Doch um etwaige Makro-Vorschläge zu erstellen, benötigt man dann doch schon konkretere Angaben.
Gruß TeX
Antwort 10 von hansw
hallo alle die reagiert haben.danke. caro, ich habe nur auf meinem hausrechner über outlook über "antworten" reagiert. wenn sie nicht zu finden ist, mache ich es heute abend nochmal, weiß aber nicht wie ich den anhang hier reinbekomme.ghans
Antwort 11 von hansw
Hallo JoKö, CaroS, hatte wenig Zeit, deshalb erst jetzt. Die Lösung von JoKö hat funktioniert, habe auch sie für die anderen Auswertungstabellen entspr. eingebaut. Aber: er füllt mir in jeder Auswertungsliste die letzte Zeile aus. Ich brauche eine Lösung, die prüft, welcher Artikel das ist und dann die Eingabezeile bzw. ausgewertete Eingabezeile in die jeweilige Auswertungsliste ( AL- ) überträgt.
Die Eingabeliste hat 4 Zeilen, 1.Inhalt Eingabezeile, 2. Eingabezeile, 3. ausgewertete Eingabezeile, 4.Inhalt ausgewertete Eingabezeile
Übertragen wird :
2. Zeile in Liste ST-L 1 : 1
und in Liste AL-FMD Datum, Anzahl(Spalte D)Artikel F in Spalte F, Artikel M in Spalte M, D in Spalte D. (s. Kriterium ..zur 3. Zeile)
3. Zeile in Liste AL-S bzw. AL-R. Das Kriterium in welche Liste die 3. Zeile soll, steht in Zeile 2, E2. Das sind , nur als Beispiel, 5 Artikel: S –> AL-S // R->AL-R //
F, M, D ->AL-FMD;
Nach meinen Vorstellungen h.d., dass einmal sortiert wird, in welche AL- und innerhalb der AL-FMD noch mal zu F,M,D sortiert wird, also 2 x??!!
Das ist das derzeitige Makro zum Kopieren ohne Zellbezug:
….
Worksheets("Eingabeliste").Rows("2:2").Copy _
Worksheets("ST-L").Cells(Zeile, 1)
Zeile = Worksheets("AL-S"). _
Range("A65536").End(xlUp).Offset(1, 0).Row
Worksheets("Eingabeliste").Rows("3:3").Copy
Worksheets("AL-S").Cells(Zeile, 1).PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Sheets("Eingabeliste").Select
Range("a2:k2").Select
Selection.ClearContents
Application.ScreenUpdating = True
Das sind die Listen
Eingabeliste:
Nr. Dat. kg Anz. Art. m w AK
0 00.01.00 0 0 0 0 0 0 0 0 0 0 0 0
Nr. Dat. m./ 0 kg m./ 1 kg m./ 2 kg w./ 0 kg w./ 1 kg w./ 2 kg
Auswertungsliste für R bzw. S
Art.R/S
Nr. Datum m./0 kg m./1 kg m./2 kg w./0 kg w./1 kg w./2 kg
Auswertungsliste FMD
Artikel F,M,D
Datum F M D
sieht etwas komisch aus, aber wenn man es listenweise in Excel rüber kopiert wird es verständlich.
Zum ersten des neuen Monats benötige ich für die drei AL automatisch die Zwischensumme bzw. zum Jahresende die Gesamtsumme die zu diesem Termin in die 4. Auswertungsliste – Monatsmeldung übertragen werden soll. Zur Monatsmeldung muß ich mir noch Gedanken machen.
Übrigens geht mein Abrechnungsjahr vom 01.04. bis 31.03. Folgejahr.
wenn ich das jetzt alles so lese, habe ich fast ein schlechtes Gewissen, hoffe aber doch auf Antwort.
mfghans
Die Eingabeliste hat 4 Zeilen, 1.Inhalt Eingabezeile, 2. Eingabezeile, 3. ausgewertete Eingabezeile, 4.Inhalt ausgewertete Eingabezeile
Übertragen wird :
2. Zeile in Liste ST-L 1 : 1
und in Liste AL-FMD Datum, Anzahl(Spalte D)Artikel F in Spalte F, Artikel M in Spalte M, D in Spalte D. (s. Kriterium ..zur 3. Zeile)
3. Zeile in Liste AL-S bzw. AL-R. Das Kriterium in welche Liste die 3. Zeile soll, steht in Zeile 2, E2. Das sind , nur als Beispiel, 5 Artikel: S –> AL-S // R->AL-R //
F, M, D ->AL-FMD;
Nach meinen Vorstellungen h.d., dass einmal sortiert wird, in welche AL- und innerhalb der AL-FMD noch mal zu F,M,D sortiert wird, also 2 x??!!
Das ist das derzeitige Makro zum Kopieren ohne Zellbezug:
….
Worksheets("Eingabeliste").Rows("2:2").Copy _
Worksheets("ST-L").Cells(Zeile, 1)
Zeile = Worksheets("AL-S"). _
Range("A65536").End(xlUp).Offset(1, 0).Row
Worksheets("Eingabeliste").Rows("3:3").Copy
Worksheets("AL-S").Cells(Zeile, 1).PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Sheets("Eingabeliste").Select
Range("a2:k2").Select
Selection.ClearContents
Application.ScreenUpdating = True
Das sind die Listen
Eingabeliste:
Nr. Dat. kg Anz. Art. m w AK
0 00.01.00 0 0 0 0 0 0 0 0 0 0 0 0
Nr. Dat. m./ 0 kg m./ 1 kg m./ 2 kg w./ 0 kg w./ 1 kg w./ 2 kg
Auswertungsliste für R bzw. S
Art.R/S
Nr. Datum m./0 kg m./1 kg m./2 kg w./0 kg w./1 kg w./2 kg
Auswertungsliste FMD
Artikel F,M,D
Datum F M D
sieht etwas komisch aus, aber wenn man es listenweise in Excel rüber kopiert wird es verständlich.
Zum ersten des neuen Monats benötige ich für die drei AL automatisch die Zwischensumme bzw. zum Jahresende die Gesamtsumme die zu diesem Termin in die 4. Auswertungsliste – Monatsmeldung übertragen werden soll. Zur Monatsmeldung muß ich mir noch Gedanken machen.
Übrigens geht mein Abrechnungsjahr vom 01.04. bis 31.03. Folgejahr.
wenn ich das jetzt alles so lese, habe ich fast ein schlechtes Gewissen, hoffe aber doch auf Antwort.
mfghans
Antwort 12 von CaroS
Hallo!
Die Menschenheit hat Computer inzwischen so weit dressiert, dass sie bestimmte Daten ganz ordentlich verarbeiten. Allerdings ist das mit Daten, die ihnen in tabellarischer Form übergeben werden, einige Jahrzehnte früher gelungen als mit frei formuliertem Fließtext. Wahrscheinlich hat die erste Art der Kommunikation Vorteile gegenüber der zweiten, zumindest für die Computer. Ob das auch für die Kommunikation von Mensch zu Mensch gilt? Man könnte das ja mal an folgendem Beispiel untersuchen:
Übertragen wird :
2. Zeile in Liste ST-L 1 : 1
und in Liste AL-FMD Datum, Anzahl(Spalte D)Artikel F in Spalte F, Artikel M in Spalte M, D in Spalte D. (s. Kriterium ..zur 3. Zeile)
3. Zeile in Liste AL-S bzw. AL-R. Das Kriterium in welche Liste die 3. Zeile soll, steht in Zeile 2, E2. Das sind , nur als Beispiel, 5 Artikel: S –> AL-S // R->AL-R //
F, M, D ->AL-FMD;
Nach meinen Vorstellungen h.d., dass einmal sortiert wird, in welche AL- und innerhalb der AL-FMD noch mal zu F,M,D sortiert wird, also 2 x??!!
So langsam wird es auch unerfreulich, wenn man immer noch keine klare Zuordnung zwischen irgendwelchen Buchstaben, Abkürzungen, Beispielwerten und den Zellbezügen bekommt. (Da habe ich aber schon riesengroßes Glück mit den vielen Nullen, wären die Beispielwerte rein zufällig auch noch Buchstaben, dann könnte ich zwischen Überschrift, Wert und Spaltenbezeichnung rätseln oder schon wieder meine Glaskugel rauskramen.)
In welchen Zellen stehen nun die Werte von F, M und D? In F3, M3 und D3? Oder in A1, B1, C1? Es hilft mir nicht, dass ich mir sowohl "0" und "w./2" als auch "0" und "kg" mit Hilfe von Tabulatoren untereinander schreiben kann, es fehlen die Zellbezüge!
Gruß,
CaroS
PS: Gab es da außer diesem (https://supportnet.de/threads/130262) und
https://supportnet.de/threads/1312757 nicht noch einen weiteren Thread, über den sich das ganze Thema verteilt hat? Ggf. bitte mal angeben!
Die Menschenheit hat Computer inzwischen so weit dressiert, dass sie bestimmte Daten ganz ordentlich verarbeiten. Allerdings ist das mit Daten, die ihnen in tabellarischer Form übergeben werden, einige Jahrzehnte früher gelungen als mit frei formuliertem Fließtext. Wahrscheinlich hat die erste Art der Kommunikation Vorteile gegenüber der zweiten, zumindest für die Computer. Ob das auch für die Kommunikation von Mensch zu Mensch gilt? Man könnte das ja mal an folgendem Beispiel untersuchen:
Übertragen wird :
2. Zeile in Liste ST-L 1 : 1
und in Liste AL-FMD Datum, Anzahl(Spalte D)Artikel F in Spalte F, Artikel M in Spalte M, D in Spalte D. (s. Kriterium ..zur 3. Zeile)
3. Zeile in Liste AL-S bzw. AL-R. Das Kriterium in welche Liste die 3. Zeile soll, steht in Zeile 2, E2. Das sind , nur als Beispiel, 5 Artikel: S –> AL-S // R->AL-R //
F, M, D ->AL-FMD;
Nach meinen Vorstellungen h.d., dass einmal sortiert wird, in welche AL- und innerhalb der AL-FMD noch mal zu F,M,D sortiert wird, also 2 x??!!
. . . \ .| Aus Tabelle "Eingabeliste" Zelle(n)
. Nach \ | A2:M2 | A3:M3 | B2 | F2 | M2 | D2 |
---------+-------+-------+----+----+----+----+
2 AL-FMD | ..... | ..... | B2 | F2 | M2 | D2 |
3 AL-S . | ..... | A1:M1 | .. | .. | .. | .. | in Abhängigkeit von
4 AL-R . | ..... | A1:M1 | .. | .. | .. | .. | E2 ="S" oder E2 ="R"
5 ST-L . | A3:M3 | ..... | .. | .. | .. | .. |
6 ?????? | ..... | ..... | .. | .. | .. | .. |
7 ?????? | ..... | ..... | .. | .. | .. | .. |So langsam wird es auch unerfreulich, wenn man immer noch keine klare Zuordnung zwischen irgendwelchen Buchstaben, Abkürzungen, Beispielwerten und den Zellbezügen bekommt. (Da habe ich aber schon riesengroßes Glück mit den vielen Nullen, wären die Beispielwerte rein zufällig auch noch Buchstaben, dann könnte ich zwischen Überschrift, Wert und Spaltenbezeichnung rätseln oder schon wieder meine Glaskugel rauskramen.)
Eingabeliste:
Nr. Dat. kg Anz. Art. m w AK
0 00.01.00 0 0 0 0 0 0 0 0 0 0 0 0
Nr. Dat. m./ 0 kg m./ 1 kg m./ 2 kg w./ 0 kg w./ 1 kg w./ 2 kg
Auswertungsliste für R bzw. S
Art.R/S
Nr. Datum m./0 kg m./1 kg m./2 kg w./0 kg w./1 kg w./2 kg
Auswertungsliste FMD
Artikel F,M,D
Datum F M DIn welchen Zellen stehen nun die Werte von F, M und D? In F3, M3 und D3? Oder in A1, B1, C1? Es hilft mir nicht, dass ich mir sowohl "0" und "w./2" als auch "0" und "kg" mit Hilfe von Tabulatoren untereinander schreiben kann, es fehlen die Zellbezüge!
Gruß,
CaroS
PS: Gab es da außer diesem (https://supportnet.de/threads/130262) und
https://supportnet.de/threads/1312757 nicht noch einen weiteren Thread, über den sich das ganze Thema verteilt hat? Ggf. bitte mal angeben!
Antwort 13 von hansw
hallo caro, finde deine kommentare klasse. werde mir das mal in ruhe reinziehen, was ich beantworten soll. ich hatte krampfhaft versucht irgend eine hübsche tabelle reinzubekommen, aber habs nur über diese ecken, hin und her kopieren geschafft. melde mich danke und flotten osterbegin.ghans
Antwort 14 von CaroS
Ja, lass Dir Zeit, bin über Ostern im Busch, den Hasen jagen. CaroS
Antwort 15 von hansw
hallo caro, die zeile 4 mit den kg u.w/2 etc ist in der eingabeliste lediglich reine Info für mich, um den Inhalt der 3. Zeile schneller zuzuordnen.In den Auswertungslisten R u.S. ist es die Kopfzeile.
kannst sie also ignorieren.
Die Zeile 2 Eingabeliste ist nach ausführen des makros wieder leer!weil immer nur diese gefüllt wird.Sie wird benutzt,um die Zeile 3 auswertend zu erstellen.
In welche Auswertungsliste die Zeile 3 übertragen wird, steht in Eingabeliste, Zeile 2,E2
Zeile 2 E2=S Zeile 3 in AL-S
Zeile 2 E2= R Zeile 3 in AL-R alles beides 1:1
für AL-FMD
Zeile 2 E2= F oder M o.D in AL-FMD,
Datum ist klar. Die Werte wie folgt:
- wenn Zeile 2 E2= F dann Zeile 2 D2 in
Spalte F der AL-FMD
- wenn Zeile 2 E2= M dann Zeile 2 D2 in
Spalte M der AL-FMD
- wenn Zeile 2 E2= D ->Ze.2 D2 in Sp.D
AL-FMD
hier soll nur die Stückzahl (D2) den Artikeln
F,M,D zugeordnet werden.
Vielleicht ist das etwas verständlicher ?! ich würde Dir auch gerne die Datei anhängen,weiß bloß nicht wo. Über Outlookmail-Datei-Anhang hat es neulich nicht geklappt.
Dein PS: anbei der Thread. es ging um das kopieren in die erste freie Zeile ohne Zellbezug, also nur die Werte, was auch hier erolgen soll.mfghans
https://supportnet.de/threads/1312757
kannst sie also ignorieren.
Die Zeile 2 Eingabeliste ist nach ausführen des makros wieder leer!weil immer nur diese gefüllt wird.Sie wird benutzt,um die Zeile 3 auswertend zu erstellen.
In welche Auswertungsliste die Zeile 3 übertragen wird, steht in Eingabeliste, Zeile 2,E2
Zeile 2 E2=S Zeile 3 in AL-S
Zeile 2 E2= R Zeile 3 in AL-R alles beides 1:1
für AL-FMD
Zeile 2 E2= F oder M o.D in AL-FMD,
Datum ist klar. Die Werte wie folgt:
- wenn Zeile 2 E2= F dann Zeile 2 D2 in
Spalte F der AL-FMD
- wenn Zeile 2 E2= M dann Zeile 2 D2 in
Spalte M der AL-FMD
- wenn Zeile 2 E2= D ->Ze.2 D2 in Sp.D
AL-FMD
hier soll nur die Stückzahl (D2) den Artikeln
F,M,D zugeordnet werden.
Vielleicht ist das etwas verständlicher ?! ich würde Dir auch gerne die Datei anhängen,weiß bloß nicht wo. Über Outlookmail-Datei-Anhang hat es neulich nicht geklappt.
Dein PS: anbei der Thread. es ging um das kopieren in die erste freie Zeile ohne Zellbezug, also nur die Werte, was auch hier erolgen soll.mfghans
https://supportnet.de/threads/1312757
Antwort 16 von hansw
Hallo Caro,Ostern vorbei, Hase lebt noch? hatte ich mich jetzt verständlicher ausgedrückt? klappt es noch mit einer Antwort?mfghansw
Antwort 17 von CaroS
Hallo Hans, bin zurück, muss mich erstmal wieder mit dem Thema beschäftigen. Hab zurzeit nur viel frische Luft im Kopf. Antwort kommt. CaroS
Antwort 18 von CaroS
Hallo Hans,
in AW11 hast Du folgenden Ausschnitt aus Deinem Makro angegeben:
Ersetze diesen Teil durch
Wenn Dein Makro vorher lief, dann sollte es auch mit dem ersetzten Code laufen, aber ich konnte es natürlich nicht testen, da ich es nicht vollständig habe und mir auch alles andere dazu fehlt. Benutze zum Ausprobieren am besten eine Kopie Deiner Exceldatei. Wenn das Makro nicht so funktioniert wie es soll, ist es leichter, die Kopie zu löschen, als sämtliche Änderungen rückgängig zu machen. Mal sehen, ob wir dem Ziel näher gekommen sind.
Das Kopieren erfolgt nach dem, was ich aus Deiner Beschreibung rauslesen konnte. Ein paar Zellbezüge hast Du ja genannt, aber nicht alle. "Datum ist klar" hilft keinem Menschen weiter, ich verstehe nicht, dass Du das nicht begreifst. Kann ja sein, dass das Datum in den Zellen B2 und B3 steht, dann habe ich Glück gehabt, aber vieles ist und bleibt widersprüchlich.
Nicht nur, dass für
Nr. Dat. kg Anz. Art. m w AK
0 00.01.00 0 0 0 0 0 0 0 0 0 0 0 0
Nr. Dat. m./ 0 kg m./ 1 kg m./ 2 kg w./ 0 kg w./ 1 kg w./ 2 kg
die Zellbezüge immer noch fehlen, es ist auch rätselhaft, wie diese scheinbar 14 Werte (in den Zellen A2:N2 oder B2:O2 oder mit Lücken A2:X2 oder wo?) durch Range("a2:k2").Select Selection.ClearContents vollständig gelöscht werden können, da A2:K2 nur 11 Zellen einschließt.
Bem.: Es ist grundsätzlich sauberer, Variablen vor ihrer Verwendung zu deklarieren. Ob dies für zeile geschehen ist, kann ich anhand des Ausschnitts nicht erkennen. Die richtige Deklaration wäre: Dim zeile As Long. Da man Variablen aber nicht doppelt deklarieren darf, habe ich die 1. Zeile auskommentiert: Rem Dim zeile As Long. Falls die Variable vorher noch nicht deklariert wurde, entferne das Rem, ansonsten die ganze Zeile.
Gruß,
CaroS
in AW11 hast Du folgenden Ausschnitt aus Deinem Makro angegeben:
....
Worksheets("Eingabeliste").Rows("2:2").Copy _
Worksheets("ST-L").Cells(Zeile, 1)
Zeile = Worksheets("AL-S"). _
Range("A65536").End(xlUp).Offset(1, 0).Row
Worksheets("Eingabeliste").Rows("3:3").Copy
Worksheets("AL-S").Cells(Zeile, 1).PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Sheets("Eingabeliste").Select
Range("a2:k2").Select
Selection.ClearContents
Application.ScreenUpdating = TrueErsetze diesen Teil durch
Rem Dim zeile As Long
zeile = Worksheets("ST-L").Range("A65536").End(xlUp).Offset(1, 0).Row
Worksheets("Eingabeliste").Rows("2:2").Copy Worksheets("ST-L").Cells(zeile, 1)
Dim Kriterium As String
Kriterium = Worksheets("Eingabeliste").Range("E2")
Select Case Kriterium
Case "S"
zeile = Worksheets("AL-S").Range("A65536").End(xlUp).Offset(1, 0).Row
Worksheets("Eingabeliste").Rows("3:3").Copy
Worksheets("AL-S").Cells(zeile, 1).PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Rem Anweisungen S
Case "R"
zeile = Worksheets("AL-R").Range("A65536").End(xlUp).Offset(1, 0).Row
Worksheets("Eingabeliste").Rows("3:3").Copy
Worksheets("AL-S").Cells(zeile, 1).PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Case "F"
zeile = Worksheets("AL-FMD").Range("A65536").End(xlUp).Offset(1, 0).Row
Worksheets("Eingabeliste").Range("B2").Copy Worksheets("AL-FMD").Cells(zeile, 1)
Worksheets("Eingabeliste").Range("D2").Copy Worksheets("AL-FMD").Cells(zeile, 6)
Case "M"
zeile = Worksheets("AL-FMD").Range("A65536").End(xlUp).Offset(1, 0).Row
Worksheets("Eingabeliste").Range("B2").Copy Worksheets("AL-FMD").Cells(zeile, 1)
Worksheets("Eingabeliste").Range("D2").Copy Worksheets("AL-FMD").Cells(zeile, 13)
Case "D"
zeile = Worksheets("AL-FMD").Range("A65536").End(xlUp).Offset(1, 0).Row
Worksheets("Eingabeliste").Range("B2").Copy Worksheets("AL-FMD").Cells(zeile, 1)
Worksheets("Eingabeliste").Range("D2").Copy Worksheets("AL-FMD").Cells(zeile, 13)
Case Else
MsgBox "Das Kriterium in E2 ist nicht S, R, F, M oder D.", vbOKOnly, "Fehler! Kriterium = " & Kriterium
End Select
Sheets("Eingabeliste").Select
Range("a2:k2").Select
Selection.ClearContents
Application.ScreenUpdating = True
Wenn Dein Makro vorher lief, dann sollte es auch mit dem ersetzten Code laufen, aber ich konnte es natürlich nicht testen, da ich es nicht vollständig habe und mir auch alles andere dazu fehlt. Benutze zum Ausprobieren am besten eine Kopie Deiner Exceldatei. Wenn das Makro nicht so funktioniert wie es soll, ist es leichter, die Kopie zu löschen, als sämtliche Änderungen rückgängig zu machen. Mal sehen, ob wir dem Ziel näher gekommen sind.
Das Kopieren erfolgt nach dem, was ich aus Deiner Beschreibung rauslesen konnte. Ein paar Zellbezüge hast Du ja genannt, aber nicht alle. "Datum ist klar" hilft keinem Menschen weiter, ich verstehe nicht, dass Du das nicht begreifst. Kann ja sein, dass das Datum in den Zellen B2 und B3 steht, dann habe ich Glück gehabt, aber vieles ist und bleibt widersprüchlich.
Nicht nur, dass für
Nr. Dat. kg Anz. Art. m w AK
0 00.01.00 0 0 0 0 0 0 0 0 0 0 0 0
Nr. Dat. m./ 0 kg m./ 1 kg m./ 2 kg w./ 0 kg w./ 1 kg w./ 2 kg
die Zellbezüge immer noch fehlen, es ist auch rätselhaft, wie diese scheinbar 14 Werte (in den Zellen A2:N2 oder B2:O2 oder mit Lücken A2:X2 oder wo?) durch Range("a2:k2").Select Selection.ClearContents vollständig gelöscht werden können, da A2:K2 nur 11 Zellen einschließt.
Bem.: Es ist grundsätzlich sauberer, Variablen vor ihrer Verwendung zu deklarieren. Ob dies für zeile geschehen ist, kann ich anhand des Ausschnitts nicht erkennen. Die richtige Deklaration wäre: Dim zeile As Long. Da man Variablen aber nicht doppelt deklarieren darf, habe ich die 1. Zeile auskommentiert: Rem Dim zeile As Long. Falls die Variable vorher noch nicht deklariert wurde, entferne das Rem, ansonsten die ganze Zeile.
Gruß,
CaroS
Antwort 19 von CaroS
Hallo Hans,
kleiner Fehler (zwischen Case "D" und Case Else).
Wegen AW15: " - wenn Zeile 2 E2= D ->Ze.2 D2 in Sp.D" muss es (wahrscheinlich)
Worksheets("Eingabeliste").Range("D2").Copy Worksheets("AL-FMD").Cells(zeile, 4)
heißen. Spalte D ist die 4. Spalte. Die 13 hatte ich nach dem Kopieren der Zeile nicht angepasst.
Mit einem zweiten, verschachtelten Select Case lassen sich insgesamt noch ein paar Code-Zeilen sparen, so dass das Makro dann so aussehen würde:
Gruß,
CaroS
kleiner Fehler (zwischen Case "D" und Case Else).
Wegen AW15: " - wenn Zeile 2 E2= D ->Ze.2 D2 in Sp.D" muss es (wahrscheinlich)
Worksheets("Eingabeliste").Range("D2").Copy Worksheets("AL-FMD").Cells(zeile, 4)
heißen. Spalte D ist die 4. Spalte. Die 13 hatte ich nach dem Kopieren der Zeile nicht angepasst.
Mit einem zweiten, verschachtelten Select Case lassen sich insgesamt noch ein paar Code-Zeilen sparen, so dass das Makro dann so aussehen würde:
Sub Hans()
Dim zeile As Long
Dim Kriterium As String
Application.ScreenUpdating = False
zeile = Worksheets("ST-L").Range("A65536").End(xlUp).Offset(1, 0).Row
Worksheets("Eingabeliste").Rows("2:2").Copy Worksheets("ST-L").Cells(zeile, 1)
Kriterium = Worksheets("Eingabeliste").Range("E2")
Select Case Kriterium
Case "S"
zeile = Worksheets("AL-S").Range("A65536").End(xlUp).Offset(1, 0).Row
Worksheets("Eingabeliste").Rows("3:3").Copy
Worksheets("AL-S").Cells(zeile, 1).PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Rem Anweisungen S
Case "R"
zeile = Worksheets("AL-R").Range("A65536").End(xlUp).Offset(1, 0).Row
Worksheets("Eingabeliste").Rows("3:3").Copy
Worksheets("AL-S").Cells(zeile, 1).PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Case "F", "M", "D"
zeile = Worksheets("AL-FMD").Range("A65536").End(xlUp).Offset(1, 0).Row
Worksheets("Eingabeliste").Range("B2").Copy Worksheets("AL-FMD").Cells(zeile, 1)
Select Case Kriterium
Case "F"
Worksheets("Eingabeliste").Range("D2").Copy Worksheets("AL-FMD").Cells(zeile, 6)
Case "M"
Worksheets("Eingabeliste").Range("D2").Copy Worksheets("AL-FMD").Cells(zeile, 13)
Case "D"
Worksheets("Eingabeliste").Range("D2").Copy Worksheets("AL-FMD").Cells(zeile, 4)
End Select
Case Else
MsgBox "Das Kriterium in E2 ist nicht S, R, F, M oder D.", vbOKOnly, "Fehler! Kriterium = " & Kriterium
End Select
Sheets("Eingabeliste").Select
Range("a2:k2").Select
Selection.ClearContents
Application.ScreenUpdating = True
End SubGruß,
CaroS
Antwort 20 von hansw
Hallo Caro, erstmal Danke und vorab schnelle Antwort.Ich hoffe, daß ich daß alles hin- und reinbekomme.
Das Datum steht in B2. Die "14" Werte stehen nicht in Zeile 2, sondern in Z3!
Nochmal zu den Zeilen und Bezügen:
so sieht das eigentlich aus:
Sp. A / B / C / D / E / F / G / H /........
Z 1:Nr./ Dat./ kg / Anz./ Art./ m / w / AK/
Z 2: 0 / 0 / 0 / 0 / 0 / 0 / 0 / 0 /
Z 3: 0 / 0 / 0 / 0 / 0 / 0 / 0 / 0 / 0 / 0 / .....
Z 4: Nr./Dat./m.0/ kg / m.1/ kg /m.2/ kg /w.0/ kg/ .....
die Striche sind die Abgrenzung zw. den Spalten, nur mit Leerzeichen zum besseren Verständnis aufgefüllt.
Die Zeile 1 ist die Inhaltsangabe zu Z2. Z2 wird per Hand eingegeben und ausgewertet zur Zeile 3. Zeile 4 ist Inhaltsangabe zu Z3. Nach starten Makro - kopieren in die weiteren AL-Tabellen wird Z2 gelöscht und somit auch Z3 wieder auf "0" gestellt. Die Auswertungsformeln für Z3 aus den Daten von Z2 kann ich dir zusenden, nur sind sie für mein Problem, kopieren in die AL, eigentlich nicht erforderlich, sogar schädlich. Denn ich hatte es ursprünglich mit den Zellbezügen kopiert, so daß in den AL die kopierten Bezüge sich dann an denen der AL orientierten und Fehler "Bezug" bzw. falsche werte lieferte. Schreib mal auf, was wiedersprüchlich ist. Zu deiner Bemerkung: was bedeutet deklarieren in diesem Zusammenhang? Gruss hans
Das Datum steht in B2. Die "14" Werte stehen nicht in Zeile 2, sondern in Z3!
Nochmal zu den Zeilen und Bezügen:
so sieht das eigentlich aus:
Sp. A / B / C / D / E / F / G / H /........
Z 1:Nr./ Dat./ kg / Anz./ Art./ m / w / AK/
Z 2: 0 / 0 / 0 / 0 / 0 / 0 / 0 / 0 /
Z 3: 0 / 0 / 0 / 0 / 0 / 0 / 0 / 0 / 0 / 0 / .....
Z 4: Nr./Dat./m.0/ kg / m.1/ kg /m.2/ kg /w.0/ kg/ .....
die Striche sind die Abgrenzung zw. den Spalten, nur mit Leerzeichen zum besseren Verständnis aufgefüllt.
Die Zeile 1 ist die Inhaltsangabe zu Z2. Z2 wird per Hand eingegeben und ausgewertet zur Zeile 3. Zeile 4 ist Inhaltsangabe zu Z3. Nach starten Makro - kopieren in die weiteren AL-Tabellen wird Z2 gelöscht und somit auch Z3 wieder auf "0" gestellt. Die Auswertungsformeln für Z3 aus den Daten von Z2 kann ich dir zusenden, nur sind sie für mein Problem, kopieren in die AL, eigentlich nicht erforderlich, sogar schädlich. Denn ich hatte es ursprünglich mit den Zellbezügen kopiert, so daß in den AL die kopierten Bezüge sich dann an denen der AL orientierten und Fehler "Bezug" bzw. falsche werte lieferte. Schreib mal auf, was wiedersprüchlich ist. Zu deiner Bemerkung: was bedeutet deklarieren in diesem Zusammenhang? Gruss hans
Antwort 21 von hansw
hallo caro, es funktioniert! Danke!!!! mußte ganz kleine Änderungen vornehmen hinsichtlich der Zeilen/Spaltenzuordnung bei AL-FMD, aber das lag an dem nicht leicht vermittelbaren was ich wollte. Würdest Du mir auch noch bei der Problematik Zwischensummen, Jahresendsumme, Übertragung dieser Werte in eine Monatsmeldungsliste helfen? wenn ja, mache ich mir Gedanken wie das aussehen soll bzw. wie ich es für dich formulieren. Eine Frage noch: wie kann man das Makro durch ein spezielles Feld "Übernehmen" starten.Die Möglichkeit mit Strg+beliebiger Taste geht, aber man kann die kombination auch vergessen und muß dann erst wieder ins Makro. Erst mal Danke, ich freue mich richtig. mfghans
Antwort 22 von CaroS
Hallo Hans,
bin gerade wieder zurück. Schreib, was gebraucht wird, je eher, desto besser. (Ab Sa-Nachmittag ist bei mir PC-freie Zeit.)
Gruß,
CaroS
bin gerade wieder zurück. Schreib, was gebraucht wird, je eher, desto besser. (Ab Sa-Nachmittag ist bei mir PC-freie Zeit.)
Gruß,
CaroS
Antwort 23 von CaroS
Hallo Hans,
mein Durchblick und meine Sicherheit, wo sich welcher Wert befindet, wird von Mal zu Mal größer, jetzt, wo das Problem immer kleiner wird.
Die abschließende Frage ist, ob jeder einzelne Wert aus Zeile 2 (bzw. die ganze Zeile 2) und jeder einzelne Wert aus Zeile 3 bei jedem Kriterium in Zelle D2 in die richtige Tabelle und dort in die richtige Zelle kopiert wird. Falls hier noch Änderungen/Ergän-zungen nötig sind, dies bitte nur anhand der Excel-Zellbezeichnungen (E2, G3 usw.) beschreiben, nicht mit Hilfe Deiner Beschriftungen in Zeile 1 oder 4. Solche Beschriftungen sind für Menschen gut und richtig, einem Programm kann man nur sehr schwer beibringen, dass es den Wert unter der Beschriftung Datum nehmen und kopieren soll, denn ein Programm hat "keine Augen im Kopf". Es sieht nicht, wo die Beschriftung Datum steht und kann von sich aus auch nicht die Entscheidung treffen, den genau darunter befindlichen Wert zu nehmen. Das ist reine Menschen-Logik. Excel will einzig und allein wissen, wie die Zelle heißt. Was da drüber, drunter, drumherum steht, interessiert Excel überhaupt nicht. Gut, laut AW21 sind wir hier ja einen Schritt weiter.
Ganz kurz zu Deklarationen. In VBA nicht zwingend erforderlich, aber mit eindeutig mehr Vor- als Nachteilen und grundsätzlich auch der bessere Programmierstil. Deklaration einer Variablen bedeutet, vor der erstmaligen Benutzung einer Variablen dem Programm etwas über die Variable mitzuteilen, was im Endeffekt beiden Seiten, dem Programm und dem Programmierer, das Leben erleichtert. Und zwar: wo soll die Variable gelten (i. a. innerhalb des Programms oder Unterprograms, im dem sie deklariert wird), wie soll sie heißen und von welchem Typ soll sie sein. Führt man keine Deklaration durch, dann erfährt das Programm den Namen der Variablen unvermeidlich bei ihrer ersten Benutzung und verwendet für den Rest Standardvorgaben. Das allein ist noch kein Fehler, es macht es dem Programmierer aber leichter, anschließend Fehler im Umgang mit der Variablen zu begehen, die mit Deklaration schwerer zu machen oder ausgeschlossen sind. Mit Dim zeile As Long in AW19 ist aber alles in Ordnung.
Nun also Zwischensummen, Jahresendsumme, Übertragung dieser Werte in eine Monatsmeldungsliste.
Benötigt werden folgende Angaben - jeweils von wo - nach wo:
Tabellenblatt-Name (Tabellenblätter für Zwischensummen, Jahresendsumme, Monatsmeldungsliste(n) müssen wahrscheinlich erst angelegt werden, Name können frei gewählt werden, bei gleichartigen empfiehlt sich eine systematische Namensvergabe)
Zelle(n) oder Zellbereich(e) in der Form B2 bzw. C2:C8 oder C2:K2 oder C2:F5 (d. h. Buchstabe-Zahl oder Doppelbuchstabe-Zahl für einzelne Zellen, LinkeObereZelle-Doppelpunkt-RechteUntereZelle für Zellbereiche)
Informationen darüber, welche Werte an festen Positionen zu finden sind und welche nicht (Die letzte benutze Zeile kann oft im Voraus nicht angegeben werden und ist von Monat zu Monat meist verschieden.)
Informationen über Bedingungen, Abhängigkeiten, evtl. Reihenfolge (was, wie, nicht warum)
Wahrscheinlich meinst Du so eine graue Befehlsschaltfläche, auf die man klicken kann und dann geht´s los. Da gibt es auf Coros Homepage: http://www.excelbeispiele.de/ unter Anleitungen eine sehr gute, detaillierte und bebilderte Anleitung zum Einfügen einer Befehlsschaltfläche, die Dir sicher weiterhelfen wird. Beim Kopieren des VBA-Codes (siehe Punkt 5.) kannst Du entweder Deinen kompletten Code, allerdings ohne die erste Zeile (Sub Hans() ) und ohne die letzte Zeile (End Sub) zwischen die vorgegebenen Zeilen Private Sub CommandButton1_Click() und End Sub kopieren oder so wie beschrieben zwischen diese Zeilen nur den Aufruf Deines Makros schreiben: Sub CommandButton1_Click() Call Hans() End Sub. Bei Caption (Punkt 7.) würdest Du Übernehmen eintragen. Damit das dann auch gut lesbar ist, müsste die Schaltfläche aber in Breite und Höhe mindestens 1,5-mal so groß wie eine normale Zelle sein.
Wenn Du unsicher bist oder erstmal probieren möchtest, machst Du in Punkt 5 nicht gleich Ernst, sondern schreibst zwischen die Zeilen Sub CommandButton1_Click() MsgBox "Hallo Hans, ich bin das Makro." End Sub und ersetzt dann später MsgBox "Hallo Hans, ich bin das Makro." durch Call Hans().
Schönes Wochenende!
CaroS
mein Durchblick und meine Sicherheit, wo sich welcher Wert befindet, wird von Mal zu Mal größer, jetzt, wo das Problem immer kleiner wird.
Zitat:
Die Auswertungsformeln für Z3 ... sind ... nicht erforderlich
Völlig richtig, die brauchst Du mir nicht senden.Die Auswertungsformeln für Z3 ... sind ... nicht erforderlich
Die abschließende Frage ist, ob jeder einzelne Wert aus Zeile 2 (bzw. die ganze Zeile 2) und jeder einzelne Wert aus Zeile 3 bei jedem Kriterium in Zelle D2 in die richtige Tabelle und dort in die richtige Zelle kopiert wird. Falls hier noch Änderungen/Ergän-zungen nötig sind, dies bitte nur anhand der Excel-Zellbezeichnungen (E2, G3 usw.) beschreiben, nicht mit Hilfe Deiner Beschriftungen in Zeile 1 oder 4. Solche Beschriftungen sind für Menschen gut und richtig, einem Programm kann man nur sehr schwer beibringen, dass es den Wert unter der Beschriftung Datum nehmen und kopieren soll, denn ein Programm hat "keine Augen im Kopf". Es sieht nicht, wo die Beschriftung Datum steht und kann von sich aus auch nicht die Entscheidung treffen, den genau darunter befindlichen Wert zu nehmen. Das ist reine Menschen-Logik. Excel will einzig und allein wissen, wie die Zelle heißt. Was da drüber, drunter, drumherum steht, interessiert Excel überhaupt nicht. Gut, laut AW21 sind wir hier ja einen Schritt weiter.
Ganz kurz zu Deklarationen. In VBA nicht zwingend erforderlich, aber mit eindeutig mehr Vor- als Nachteilen und grundsätzlich auch der bessere Programmierstil. Deklaration einer Variablen bedeutet, vor der erstmaligen Benutzung einer Variablen dem Programm etwas über die Variable mitzuteilen, was im Endeffekt beiden Seiten, dem Programm und dem Programmierer, das Leben erleichtert. Und zwar: wo soll die Variable gelten (i. a. innerhalb des Programms oder Unterprograms, im dem sie deklariert wird), wie soll sie heißen und von welchem Typ soll sie sein. Führt man keine Deklaration durch, dann erfährt das Programm den Namen der Variablen unvermeidlich bei ihrer ersten Benutzung und verwendet für den Rest Standardvorgaben. Das allein ist noch kein Fehler, es macht es dem Programmierer aber leichter, anschließend Fehler im Umgang mit der Variablen zu begehen, die mit Deklaration schwerer zu machen oder ausgeschlossen sind. Mit Dim zeile As Long in AW19 ist aber alles in Ordnung.
Nun also Zwischensummen, Jahresendsumme, Übertragung dieser Werte in eine Monatsmeldungsliste.
Benötigt werden folgende Angaben - jeweils von wo - nach wo:
Zitat:
das Makro durch ein spezielles Feld "Übernehmen" starten
das Makro durch ein spezielles Feld "Übernehmen" starten
Wahrscheinlich meinst Du so eine graue Befehlsschaltfläche, auf die man klicken kann und dann geht´s los. Da gibt es auf Coros Homepage: http://www.excelbeispiele.de/ unter Anleitungen eine sehr gute, detaillierte und bebilderte Anleitung zum Einfügen einer Befehlsschaltfläche, die Dir sicher weiterhelfen wird. Beim Kopieren des VBA-Codes (siehe Punkt 5.) kannst Du entweder Deinen kompletten Code, allerdings ohne die erste Zeile (Sub Hans() ) und ohne die letzte Zeile (End Sub) zwischen die vorgegebenen Zeilen Private Sub CommandButton1_Click() und End Sub kopieren oder so wie beschrieben zwischen diese Zeilen nur den Aufruf Deines Makros schreiben: Sub CommandButton1_Click() Call Hans() End Sub. Bei Caption (Punkt 7.) würdest Du Übernehmen eintragen. Damit das dann auch gut lesbar ist, müsste die Schaltfläche aber in Breite und Höhe mindestens 1,5-mal so groß wie eine normale Zelle sein.
Wenn Du unsicher bist oder erstmal probieren möchtest, machst Du in Punkt 5 nicht gleich Ernst, sondern schreibst zwischen die Zeilen Sub CommandButton1_Click() MsgBox "Hallo Hans, ich bin das Makro." End Sub und ersetzt dann später MsgBox "Hallo Hans, ich bin das Makro." durch Call Hans().
Schönes Wochenende!
CaroS
Antwort 24 von hansw
Hallo Caro, es funtioniert alles. Kann ich noch mal auf meine weitere Fragen zurück kommen, die Sortierung zu einer Monatsliste. Wenn ja, sei so nett und sende eine Info. Mit freundlichen Grüßen hans
Antwort 25 von CaroS
Hallo Hans,
ich sende Dir hier eine Info. Und die Frage, was es mit der Sortierung auf sich hat. Die einzige Erwähnung findet sich bisher in AW11:
"Nach meinen Vorstellungen h.d., dass einmal sortiert wird, in welche AL- und innerhalb der AL-FMD noch mal zu F,M,D sortiert wird, also 2 x??!!"
Welche Daten stehen wo und sollen wonach sortiert werden? Es geht wie immer um die Bezeichnungen der Tabellenblätter und der Zellen bzw. Zellbereiche.
Bedenke bitte: Du hast eine Monatsliste (bzw. hast Vorstellungen, wie Du eine Monatsliste aufbauen willst, was da für Daten wohin übertragen und berechnet werden usw.), ich nicht. Siehe auch AW22.
Gruß,
CaroS
ich sende Dir hier eine Info. Und die Frage, was es mit der Sortierung auf sich hat. Die einzige Erwähnung findet sich bisher in AW11:
"Nach meinen Vorstellungen h.d., dass einmal sortiert wird, in welche AL- und innerhalb der AL-FMD noch mal zu F,M,D sortiert wird, also 2 x??!!"
Welche Daten stehen wo und sollen wonach sortiert werden? Es geht wie immer um die Bezeichnungen der Tabellenblätter und der Zellen bzw. Zellbereiche.
Bedenke bitte: Du hast eine Monatsliste (bzw. hast Vorstellungen, wie Du eine Monatsliste aufbauen willst, was da für Daten wohin übertragen und berechnet werden usw.), ich nicht. Siehe auch AW22.
Gruß,
CaroS
Antwort 26 von hansw
Hallo Caro, ich wollte nur fragen, ob Du weiter hilfst, dachte Du hast von meinem Problem die „Nase voll“. Ich musste aber feststellen, dass ich bei den Rückmeldungen von Supportnet leider nicht auf das 2. Blatt gegangen bin, wo Deine neuen Antworten drin standen. Hängt bei mir mit der Stabilität meines Internets zusammen, kann deshalb manche Sachen nur im Betrieb machen.
Zum Problem:
- immer zum Monatsende aus den Liste AL-S u. AL-FMD ausgewählte Daten in die Monatsmeldung; Monatsende als „tatsächliches Datum“;
- wenn für die Zwischensummen etc. extra Tabellenblätter angelegt werden müssen, ich dachte das kann der Rechner“intern“, dann so:
- für AL-S#61664; ZAL-S (Zwischensumme…)
- für AL-FMD ebenso – ZAL-MFD..
- die Gesamtsumme in Monatsmeldung kann bei dieser Sortierung in Monatstabelle gebildet werden, also im Makro nicht erforderlich.
- ich denke aber, dass ein Tabellenblatt für Zwischensummen (ZAL) ausreicht und dieses genauso in den Spalten geordnet wird, wie die Monatsliste und so führe ich das hier auch an.
- inwieweit in diesen ZAL das Datum zur Erkennung Monatsende bei der Programmierung benötigt wird kann ich nicht beurteilen. Deshalb lass ich die Spalte A in diesen frei, zumal in der Monatsliste Spalte A = Monatsdatum ist. Somit ergibt sich für Zusammenfassung :
- aus Liste(Tabellenblatt) AL-S in ZAL:
C+I (AL-S) = B(ZAL)
E+K (AL-S) =C(ZAL)
G (AL.S) = D(ZAL)
M (AL-S) = E(ZAL)
- aus Liste AL-FMD in ZAL:
B(AL-F..) = G(ZAL) ausdrücklich G, da F = G+H+I
C(.. ) = H(Z..)
D = I (Z..)
!! F(ZAL)=G+H+I
ich hoffe, mich verständlich gemacht zu haben.
Kann man das auch so progammieren, dass nur diese Liste automatisch an die Meldestelle gemailt wird?
Gruß Hans
Zum Problem:
- immer zum Monatsende aus den Liste AL-S u. AL-FMD ausgewählte Daten in die Monatsmeldung; Monatsende als „tatsächliches Datum“;
- wenn für die Zwischensummen etc. extra Tabellenblätter angelegt werden müssen, ich dachte das kann der Rechner“intern“, dann so:
- für AL-S#61664; ZAL-S (Zwischensumme…)
- für AL-FMD ebenso – ZAL-MFD..
- die Gesamtsumme in Monatsmeldung kann bei dieser Sortierung in Monatstabelle gebildet werden, also im Makro nicht erforderlich.
- ich denke aber, dass ein Tabellenblatt für Zwischensummen (ZAL) ausreicht und dieses genauso in den Spalten geordnet wird, wie die Monatsliste und so führe ich das hier auch an.
- inwieweit in diesen ZAL das Datum zur Erkennung Monatsende bei der Programmierung benötigt wird kann ich nicht beurteilen. Deshalb lass ich die Spalte A in diesen frei, zumal in der Monatsliste Spalte A = Monatsdatum ist. Somit ergibt sich für Zusammenfassung :
- aus Liste(Tabellenblatt) AL-S in ZAL:
C+I (AL-S) = B(ZAL)
E+K (AL-S) =C(ZAL)
G (AL.S) = D(ZAL)
M (AL-S) = E(ZAL)
- aus Liste AL-FMD in ZAL:
B(AL-F..) = G(ZAL) ausdrücklich G, da F = G+H+I
C(.. ) = H(Z..)
D = I (Z..)
!! F(ZAL)=G+H+I
ich hoffe, mich verständlich gemacht zu haben.
Kann man das auch so progammieren, dass nur diese Liste automatisch an die Meldestelle gemailt wird?
Gruß Hans
Antwort 27 von CaroS
Hallo Hans,
was die Kommunikation betrifft, sind wir ganz bestimmt nicht füreinander gemacht! Jeder versteht sich selbst, aber nicht den anderen. Ich krieg hier die Krise!
Viele Aussagen sind nach meinem Verständnis nur halbe Informationen und ich frage mich, wurde die andere Hälfte der Information schon früher irgendwann mal übermittelt, wo ist sie, hinter welchen ähnlichen oder völlig anderen Begriffen steckt sie, oder ist sie gar nicht da und ich suche sie völlig umsonst?
Welche ähnlichen Begriffe sollen das gleiche bedeuten, welche ähnlichen Begriffe ganz verschiedene Dinge? Bedeutet ein Begriff X, wenn Du ihn verwendest, halbwegs dasselbe wie wenn ich ihn verwende und wenn nein, was dann?
Wie ist das z. B. mit Monatsmeldung, Monatstabelle, Monatsliste? 3 Wörter - ein Begriff, zwei Begriffe, drei Begriffe?
Was soll "Sortierung" bedeuten? Vielleicht etwas ganz anderes als gemeinhin in Excel unter Sortierung verstanden wird? Was wird denn hier sortiert oder soll sortiert werden, welche Daten werden sortiert oder sollen sortiert werden?
Welche Tabellenblätter für Zwischensummen, Jahresendsumme, Monatsmeldungsliste(n) tatsächlich benötigt werden und angelegt werden müssen kann ich noch gar nicht einschätzen, weil mir sowohl hinsichtlich der Ausgangssituation als auch des Ziels eine klare Vorstellung fehlt. Das wollte ich auch gar nicht festlegen. Das Prinzip ist: Du bestimmst, was wo und wie passieren soll und was wohin geschrieben werden soll. Ein reiner Zwischenspeicher für Zwischenergebnisse wird nicht benötigt, das kann man alles im Programm machen. Die Frage ist, welche Zwischenergebnisse und Ergebnisse brauchen die Anwender (bzw. Du), wo sollen sie stehen? Ich habe nicht die Absicht, Inhalt oder Form von irgendetwas zu beeinflussen.
Klären wir die Ausgangssituation. Es gibt die Tabellenblätter Eingabeliste, ST-L, AL-S, AL-R, AL-FMD. Wie viele gefüllte Zeilen enthalten diese Tabellenblätter am Monatsende ungefähr (und ist die Anzahl bei allen gleich - ist wahrscheinlich weniger wichtig)? Was für Tabellenblätter gibt es sonst noch, die von Bedeutung sind? Wie viele Monatsmeldungen/Monatstabellen/Monatslisten gibt es bzw. sollen erstellt werden?
Wie müssen die Summen gebildet werden? Heißt C+I (AL-S) = B(ZAL), dass im Tabellenblatt AL-S in jeder Zeile x die Summe Cx + Ix berechnet werden und in die Zelle Bx einer Zwischensummentabelle ZAL geschrieben werden soll? Oder soll im Tabellenblatt AL-S die gesamte Spalte C und dazu die gesamte Spalte I addiert und die Gesamtsumme in eine einzige Zelle B? in ZAL geschrieben werden?
Für alle anderen Angaben wird dann ja wahrscheinlich dasselbe Prinzip gelten.
Besteht eine komplette Monatsmeldung nur aus den 7 Gesamtsummen B(ZAL), C(ZAL), D(ZAL), E(ZAL), F(ZAL)=G+H+I, G(ZAL), H(Z..) und I (Z..)? Ich bin da leidenschaftslos, ich will es nur verstehen. Wozu könnte man ZAL sinnvoll gebrauchen, wie würden sich ZAL und die Monatsmeldung unterscheiden?
Gruß,
CaroS
was die Kommunikation betrifft, sind wir ganz bestimmt nicht füreinander gemacht! Jeder versteht sich selbst, aber nicht den anderen. Ich krieg hier die Krise!
Viele Aussagen sind nach meinem Verständnis nur halbe Informationen und ich frage mich, wurde die andere Hälfte der Information schon früher irgendwann mal übermittelt, wo ist sie, hinter welchen ähnlichen oder völlig anderen Begriffen steckt sie, oder ist sie gar nicht da und ich suche sie völlig umsonst?
Welche ähnlichen Begriffe sollen das gleiche bedeuten, welche ähnlichen Begriffe ganz verschiedene Dinge? Bedeutet ein Begriff X, wenn Du ihn verwendest, halbwegs dasselbe wie wenn ich ihn verwende und wenn nein, was dann?
Wie ist das z. B. mit Monatsmeldung, Monatstabelle, Monatsliste? 3 Wörter - ein Begriff, zwei Begriffe, drei Begriffe?
Was soll "Sortierung" bedeuten? Vielleicht etwas ganz anderes als gemeinhin in Excel unter Sortierung verstanden wird? Was wird denn hier sortiert oder soll sortiert werden, welche Daten werden sortiert oder sollen sortiert werden?
Welche Tabellenblätter für Zwischensummen, Jahresendsumme, Monatsmeldungsliste(n) tatsächlich benötigt werden und angelegt werden müssen kann ich noch gar nicht einschätzen, weil mir sowohl hinsichtlich der Ausgangssituation als auch des Ziels eine klare Vorstellung fehlt. Das wollte ich auch gar nicht festlegen. Das Prinzip ist: Du bestimmst, was wo und wie passieren soll und was wohin geschrieben werden soll. Ein reiner Zwischenspeicher für Zwischenergebnisse wird nicht benötigt, das kann man alles im Programm machen. Die Frage ist, welche Zwischenergebnisse und Ergebnisse brauchen die Anwender (bzw. Du), wo sollen sie stehen? Ich habe nicht die Absicht, Inhalt oder Form von irgendetwas zu beeinflussen.
Klären wir die Ausgangssituation. Es gibt die Tabellenblätter Eingabeliste, ST-L, AL-S, AL-R, AL-FMD. Wie viele gefüllte Zeilen enthalten diese Tabellenblätter am Monatsende ungefähr (und ist die Anzahl bei allen gleich - ist wahrscheinlich weniger wichtig)? Was für Tabellenblätter gibt es sonst noch, die von Bedeutung sind? Wie viele Monatsmeldungen/Monatstabellen/Monatslisten gibt es bzw. sollen erstellt werden?
Wie müssen die Summen gebildet werden? Heißt C+I (AL-S) = B(ZAL), dass im Tabellenblatt AL-S in jeder Zeile x die Summe Cx + Ix berechnet werden und in die Zelle Bx einer Zwischensummentabelle ZAL geschrieben werden soll? Oder soll im Tabellenblatt AL-S die gesamte Spalte C und dazu die gesamte Spalte I addiert und die Gesamtsumme in eine einzige Zelle B? in ZAL geschrieben werden?
Für alle anderen Angaben wird dann ja wahrscheinlich dasselbe Prinzip gelten.
Besteht eine komplette Monatsmeldung nur aus den 7 Gesamtsummen B(ZAL), C(ZAL), D(ZAL), E(ZAL), F(ZAL)=G+H+I, G(ZAL), H(Z..) und I (Z..)? Ich bin da leidenschaftslos, ich will es nur verstehen. Wozu könnte man ZAL sinnvoll gebrauchen, wie würden sich ZAL und die Monatsmeldung unterscheiden?
Gruß,
CaroS
Antwort 28 von hansw
Hallo Caro, so schlecht verstehen wir uns eigentlich nicht.
- Ich brauche keine Zwischensummen, keine Zwischensummentabelle, hatte nur Deinen Hinweis aufgenommen. Die Summen können „rechnerintern“, erstellt werden.
- "Besteht eine komplette Monatsmeldung nur .. " Ja+1.Spalte Monatsenddatum, beginnend bei 30.04.-31.03.Folgejahr, also 12 Zeilen je Monat, 9 Spalten und alles ohne (ZAL).
- "Wie viele gefüllte Zeilen enthalten… "max. 20, aber eigentlich unwichtig, denn wenn der Monat rum ist, sollen diese zusammengefasst je Monat in der Monatsliste der entspr. Monatszeile stehen(als absolute Zahl ).
- es gibt keine weiteren Tabellenblätter; nur eine Monatsliste(-tabelle).
- "Oder soll im Tabellenblatt AL-S die gesamte Spalte C"(des Monats) "und dazu die gesamte Spalte "(des Monats)" I addiert und die Gesamtsumme in eine einzige Zelle B?"(des Monats) "in Monatsliste geschrieben werden?" Ja
"Für alle anderen Angaben wird dann ja wahrscheinlich dasselbe Prinzip gelten." Ja.
Schwer sich klar auszudrücken.
Gruß Hans
- Ich brauche keine Zwischensummen, keine Zwischensummentabelle, hatte nur Deinen Hinweis aufgenommen. Die Summen können „rechnerintern“, erstellt werden.
- "Besteht eine komplette Monatsmeldung nur .. " Ja+1.Spalte Monatsenddatum, beginnend bei 30.04.-31.03.Folgejahr, also 12 Zeilen je Monat, 9 Spalten und alles ohne (ZAL).
- "Wie viele gefüllte Zeilen enthalten… "max. 20, aber eigentlich unwichtig, denn wenn der Monat rum ist, sollen diese zusammengefasst je Monat in der Monatsliste der entspr. Monatszeile stehen(als absolute Zahl ).
- es gibt keine weiteren Tabellenblätter; nur eine Monatsliste(-tabelle).
- "Oder soll im Tabellenblatt AL-S die gesamte Spalte C"(des Monats) "und dazu die gesamte Spalte "(des Monats)" I addiert und die Gesamtsumme in eine einzige Zelle B?"(des Monats) "in Monatsliste geschrieben werden?" Ja
"Für alle anderen Angaben wird dann ja wahrscheinlich dasselbe Prinzip gelten." Ja.
Schwer sich klar auszudrücken.
Gruß Hans
Antwort 29 von CaroS
Hallo Hans,
noch ein paar ergänzende Fragen. Im Monat April wurden - angenommen - jeweils 20 Zeilen in die Tabellen ST-L, AL-S, AL-R und AL-FMD kopiert. Werden die Zeilen für Mai, Juni, Juli immer untendran geschrieben oder werden die Tabellen zum Monatsende, nachdem die Monatssummen berechnet und übertragen worden sind, geleert, so dass sie wieder von oben (ab Zeile 1, 2 oder 3) gefüllt werden?
Wenn in ST-L, AL-S, AL-R und AL-FMD immer weiter geschrieben wird, dann stehen in Spalte B erst 20 Datumswerte aus dem April, darunter vielleicht 21 aus dem Mai, darunter 20 aus dem Juni usw. Und in den 9 Spalten daneben die zugehörigen Werte. Ist das richtig?
Wenn man nun am 3. Mai die Summe C+I (AL-S) für April berechnen will, dann darf man natürlich nicht (und schon gar nicht in den folgenden Monaten) die gesamten Spalten C und I zusammenaddieren, sondern nur die Werte, die zum April gehören. Man muss also - bildlich gesprochen - beim Addieren immer nach links gucken, damit man nichts verkehrt macht.
Und noch eine vorläufig letzte Frage: Woran erkennt das Makro, dass ein Monat beendet/vollständig ist? Wenn es in Spalte B den 30.04. findet, ist alles klar, aber wenn zuletzt am 28.04. (Freitag) Daten kommen und am 29. und 30. nicht mehr, dann dürfte das Makro ja nicht auf den Monatsletzten fixiert sein. Oder soll sich das Makro darum gar nicht kümmern, sondern die Monatssummen immer berechnen, wenn es aufgerufen wird? (Augen zu und durch, selbst wenn es gerade erst der 22. ist?)
(Das ist das, was ich nachfragen wollte bzw. begriffen habe, obwohl ich 2 Stunden lang ständig unterbrochen wurde.)
Für heute wünsche ich erstmal einen schönen Feierabend!
CaroS
noch ein paar ergänzende Fragen. Im Monat April wurden - angenommen - jeweils 20 Zeilen in die Tabellen ST-L, AL-S, AL-R und AL-FMD kopiert. Werden die Zeilen für Mai, Juni, Juli immer untendran geschrieben oder werden die Tabellen zum Monatsende, nachdem die Monatssummen berechnet und übertragen worden sind, geleert, so dass sie wieder von oben (ab Zeile 1, 2 oder 3) gefüllt werden?
Wenn in ST-L, AL-S, AL-R und AL-FMD immer weiter geschrieben wird, dann stehen in Spalte B erst 20 Datumswerte aus dem April, darunter vielleicht 21 aus dem Mai, darunter 20 aus dem Juni usw. Und in den 9 Spalten daneben die zugehörigen Werte. Ist das richtig?
Wenn man nun am 3. Mai die Summe C+I (AL-S) für April berechnen will, dann darf man natürlich nicht (und schon gar nicht in den folgenden Monaten) die gesamten Spalten C und I zusammenaddieren, sondern nur die Werte, die zum April gehören. Man muss also - bildlich gesprochen - beim Addieren immer nach links gucken, damit man nichts verkehrt macht.
Und noch eine vorläufig letzte Frage: Woran erkennt das Makro, dass ein Monat beendet/vollständig ist? Wenn es in Spalte B den 30.04. findet, ist alles klar, aber wenn zuletzt am 28.04. (Freitag) Daten kommen und am 29. und 30. nicht mehr, dann dürfte das Makro ja nicht auf den Monatsletzten fixiert sein. Oder soll sich das Makro darum gar nicht kümmern, sondern die Monatssummen immer berechnen, wenn es aufgerufen wird? (Augen zu und durch, selbst wenn es gerade erst der 22. ist?)
(Das ist das, was ich nachfragen wollte bzw. begriffen habe, obwohl ich 2 Stunden lang ständig unterbrochen wurde.)
Für heute wünsche ich erstmal einen schönen Feierabend!
CaroS
Antwort 30 von hansw
hallo caro, zuerst:
nach einigem hin u. her und etwas ändern, der bisherige Stand funktioniert. Ein Problem, beim kopieren aus der Eingabeliste in die AL-FMD werden die Spaltenstriche (aus Schaltfläche Rahmen), die ich zur besseren Übersicht gezogen habe, immer "weg kopiert", ich glaube immer die rechte.
zum 1. Absatz: die folgenden Monate kommen immer hinten dran.
2. Abs. Ja
3. Abs. Ja aber am 1.d.M. eigentlich 00.01 Uhr
4. Abs. Du fragst mich nach den Fähigkeiten von Excel?!s. meine 1. Anfrage v.März. Ich unterstelle, daß Excel in der Lage ist, eigenständig mit dem Rechnerdatum , Rechnerzeit so etwas ermitteln kann. Es gibt Monate, wo nichts eingetragen bzw. nur etwas am 1.Tag d.M. , insofern der Rückgriff auf die Datumswerte des Rechners (rechnerintern)
Vielleicht klappt ja noch eine Antwort von dir vor dem WE, ansonsten viel Spaß bei den Maidemonstrationen und schönes Wetter zum verlängertem WE. Gruß Hans
nach einigem hin u. her und etwas ändern, der bisherige Stand funktioniert. Ein Problem, beim kopieren aus der Eingabeliste in die AL-FMD werden die Spaltenstriche (aus Schaltfläche Rahmen), die ich zur besseren Übersicht gezogen habe, immer "weg kopiert", ich glaube immer die rechte.
zum 1. Absatz: die folgenden Monate kommen immer hinten dran.
2. Abs. Ja
3. Abs. Ja aber am 1.d.M. eigentlich 00.01 Uhr
4. Abs. Du fragst mich nach den Fähigkeiten von Excel?!s. meine 1. Anfrage v.März. Ich unterstelle, daß Excel in der Lage ist, eigenständig mit dem Rechnerdatum , Rechnerzeit so etwas ermitteln kann. Es gibt Monate, wo nichts eingetragen bzw. nur etwas am 1.Tag d.M. , insofern der Rückgriff auf die Datumswerte des Rechners (rechnerintern)
Vielleicht klappt ja noch eine Antwort von dir vor dem WE, ansonsten viel Spaß bei den Maidemonstrationen und schönes Wetter zum verlängertem WE. Gruß Hans
Antwort 31 von hansw
Caro, eine Frage war noch: ich habe die Spalten A,B(Nr.) in der Eingabeliste getauscht, da A(lfdNr.des Artikels) nicht immer eingetragen wird und beim kopieren i.d.letzte Zeile Probleme bekommt. In den AL soll es so stehen, wie ursprünglich( Nr./Datum).Ich habe es hinbekommen, aber:
den Befehl zum kopieren hatte ich so geschrieben:
Worksheets("Eingabeliste").Range("B3,A3,C3:N3").Copy .... Er kopiert aber nicht so in die AL-.. Warum? gruß Hans
den Befehl zum kopieren hatte ich so geschrieben:
Worksheets("Eingabeliste").Range("B3,A3,C3:N3").Copy .... Er kopiert aber nicht so in die AL-.. Warum? gruß Hans
Antwort 32 von CaroS
Hallo Hans,
ist es möglich, dass Du den aktuellen Stand der Exceldatei mal öffentlich zur Verfügung stellst? Wenn Du sensible Daten vorher rauslöschen musst, dann trage stattdessen bitte irgendwelche Dummy-Daten ein, die vom Typ und dem Sinn her ähnlich sind.
Über www.netupload.de ist das Hochladen sehr einfach.
Erst über Durchsuchen... Pfad und Name der Datei angeben, dann Datei jetzt hochladen! drücken und zum Schluss (nach 1, 2 Sekunden) aus dem oberen Feld den Link (etwa so wie http://www.netupload.de/detail.php?img= ......... .xls) hier im Forum angeben.
CaroS
ist es möglich, dass Du den aktuellen Stand der Exceldatei mal öffentlich zur Verfügung stellst? Wenn Du sensible Daten vorher rauslöschen musst, dann trage stattdessen bitte irgendwelche Dummy-Daten ein, die vom Typ und dem Sinn her ähnlich sind.
Über www.netupload.de ist das Hochladen sehr einfach.
Erst über Durchsuchen... Pfad und Name der Datei angeben, dann Datei jetzt hochladen! drücken und zum Schluss (nach 1, 2 Sekunden) aus dem oberen Feld den Link (etwa so wie http://www.netupload.de/detail.php?img= ......... .xls) hier im Forum angeben.
CaroS
Antwort 33 von hansw
http://www.netupload.de/detail.php?img=f1222167a155a4a7a4c8c40ecdd3098a.xls
Hallo Caro, hoffe alles richtig gemacht zu haben. Gruß Hans
Hallo Caro, hoffe alles richtig gemacht zu haben. Gruß Hans
Antwort 34 von CaroS
Hallo Hans,
habe versucht, ein paar Testdaten einzugeben, da Du es nicht getan hast. Habe für jeden Tag vom 1.4. bis 10.5. (= 40 Tage) je einen Artikel S, R, F, M, D genommen und übertragen lassen. (Siehe Eingabeliste Zeilen 17 bis 216 = 200 Datensätze. Jeweils erst in Zeile 2 kopiert, dann "Übertragen".) Was dabei herausgekommen ist, sieht nicht so besonders gut aus:
http://www.netupload.de/detail.php?img=0a452bf4426725d4a15586e9ac88...
Ich fürchte, damit brauche ich gar nicht erst weitermachen. Aber ich brauche Testdaten, was soll ich sonst addieren?
Sämtliche AL-Tabellen scheinen zu klein und zu statisch ausgelegt zu sein oder ist es ausgeschlossen, dass so viele Daten kommen, wie ich gerade übertragen habe? Das sind für S, R, F, M, D je 40 Datensätze, davon 30 im April und 10 im Mai. Schließlich muss dann ja monatsbezogen richtig summiert werden, und das muss man auch testen! Aber bisher läuft hier irgendwas verkehrt.
Kannst Du das bitte mal klären und bereinigen?
CaroS
habe versucht, ein paar Testdaten einzugeben, da Du es nicht getan hast. Habe für jeden Tag vom 1.4. bis 10.5. (= 40 Tage) je einen Artikel S, R, F, M, D genommen und übertragen lassen. (Siehe Eingabeliste Zeilen 17 bis 216 = 200 Datensätze. Jeweils erst in Zeile 2 kopiert, dann "Übertragen".) Was dabei herausgekommen ist, sieht nicht so besonders gut aus:
http://www.netupload.de/detail.php?img=0a452bf4426725d4a15586e9ac88...
Ich fürchte, damit brauche ich gar nicht erst weitermachen. Aber ich brauche Testdaten, was soll ich sonst addieren?
Sämtliche AL-Tabellen scheinen zu klein und zu statisch ausgelegt zu sein oder ist es ausgeschlossen, dass so viele Daten kommen, wie ich gerade übertragen habe? Das sind für S, R, F, M, D je 40 Datensätze, davon 30 im April und 10 im Mai. Schließlich muss dann ja monatsbezogen richtig summiert werden, und das muss man auch testen! Aber bisher läuft hier irgendwas verkehrt.
Kannst Du das bitte mal klären und bereinigen?
CaroS
Antwort 35 von hansw
Hallo Caro, das sieht besser aus als Du glaubst. Lösche die Tabelleninhalte, füge ggf.mehr Zeilen rein. Lasse F2, G2 bei F,M,D,weg, werden hier nicht benötigt. Dann müßte es funktionieren. Gruß Hans
Antwort 36 von CaroS
Hallo Hans,
habe gerade versucht, Deine irritierende Meldung aus AW31:
zu verstehen, habe von vorne bis hinten noch mal alles geprüft, was ich so prüfen kann. Ich weiß ja nicht genau, was nun die alte und was die neue Spaltenreihenfolge ist und wie es letztendlich sein soll. Ich kann das
überhaupt nicht nachvollziehen, nicht einmal finden? Was soll das jetzt schon wieder?
Daher kann ich Dein "Warum?" auch nicht beantworten.
An dem Makro habe ich geringfügige Änderungen vorgenommen, die Du im Moment noch nicht hast. Sie bewirken, dass vorhandene Rahmenlinien in "AL-FMD" beim Kopieren nicht mehr verschwinden und ermitteln die nächste freie Zeile jeder Zieltabelle aus den Spalten A und B, ein fehlender Wert in A (oder mehrere) würde jetzt nicht mehr stören, es wird die nächste wirklich freie Zeile benutzt.
Vergleichen wir noch einmal den Ist- bzw. Soll-Stand: Das (geänderte) Übertragen-Makro macht folgendes, bitte einzeln prüfen und bestätigen/gewünschte Änderungen angeben:
1. Es ermittelt in der Tabelle "ST-L" in den Spalten A und B die erste freie Zeile und nimmt ggf. die untere (mit der höheren Zeilennummer).
2. Es kopiert aus der "Eingabeliste" den Wert aus "B2" (W-Nr.) in die Tabelle "ST-L" in die erste freie Zeile in Spalte A.
3. Es ermittelt in der "Eingabeliste" den Wert in "E2" und benutzt ihn als Kriterium für das nachfolgende Kopieren (4 - 14).
4. Wenn Kriterium "E2" = S, dann
-> ermittelt es in der Tabelle "AL-S" in den Spalten A und B die erste freie Zeile und nimmt ggf. die untere (mit der höheren Zeilennummer),
5. ..., dann
-> kopiert es aus der "Eingabeliste" den Wert aus "B3" (W-Nr.) in die Tabelle "AL-S" in die erste freie Zeile in Spalte A,
6. ..., dann
-> kopiert es aus der "Eingabeliste" die Werte aus "A3" (Datum) und "C3:N3" in die Tabelle "AL-S" in die erste freie Zeile in die Spalte B (Datum) sowie in die Spalten C bis N.
7. Wenn Kriterium "E2" = R, dann
-> ermittelt es in der Tabelle "AL-R" in den Spalten A und B die erste freie Zeile und nimmt ggf. die untere (mit der höheren Zeilennummer),
8. ..., dann
-> kopiert es aus der "Eingabeliste" den Wert aus "B3" (W-Nr.) in die Tabelle "AL-R" in die erste freie Zeile in Spalte A,
9. ..., dann
-> kopiert es aus der "Eingabeliste" die Werte aus "A3" (Datum) und "C3:N3" in die Tabelle "AL-R" in die erste freie Zeile in die Spalte B (Datum) sowie in die Spalten C bis N.
10. Wenn Kriterium "E2" = F, M oder D, dann
-> ermittelt es in der Tabelle "AL-FMD" in den Spalten A und B die erste freie Zeile und nimmt ggf. die untere (mit der höheren Zeilennummer),
11. ..., dann
-> kopiert es aus der "Eingabeliste" den Wert aus "A2" (Datum) in die Tabelle "AL-FMD" in die erste freie Zeile in Spalte A.
Für das Kriterium "E2" = F, M oder D ist der nächste Kopierbefehl unterschiedlich.
12. Wenn Kriterium "E2" = F, dann
-> kopiert es aus der "Eingabeliste" den Wert aus "D2" (Anz.) in die Tabelle "AL-FMD" in die erste freie Zeile in Spalte B.
13. Wenn Kriterium = "E2" = M, dann
-> kopiert es aus der "Eingabeliste" den Wert aus "D2" (Anz.) in die Tabelle "AL-FMD" in die erste freie Zeile in Spalte C.
14. Wenn Kriterium = "E2" = D, dann
-> kopiert es aus der "Eingabeliste" den Wert aus "D2" (Anz.) in die Tabelle "AL-FMD" in die erste freie Zeile in Spalte D.
15. Wenn Kriterium = "E2" weder S, R, F, M noch D ist, dann wird anstelle von 4 - 14 eine Meldung angezeigt und sonst gar nichts gemacht. (2 bleibt erhalten.)
16. In der "Eingabeliste" werden die Werte in "A2:K2" gelöscht. Die am Anfang ausgeschaltete Bildschirmeinstellung wird wieder eingeschaltet.
Wenn ich jetzt noch was schaffe, lade ich heute noch den neuesten Stand hoch.
Gruß,
CaroS
habe gerade versucht, Deine irritierende Meldung aus AW31:
Zitat:
ich habe die Spalten A,B(Nr.) in der Eingabeliste getauscht ... ... den Befehl zum kopieren hatte ich so geschrieben: Worksheets("Eingabeliste").Range("B3,A3,C3:N3").Copy
ich habe die Spalten A,B(Nr.) in der Eingabeliste getauscht ... ... den Befehl zum kopieren hatte ich so geschrieben: Worksheets("Eingabeliste").Range("B3,A3,C3:N3").Copy
zu verstehen, habe von vorne bis hinten noch mal alles geprüft, was ich so prüfen kann. Ich weiß ja nicht genau, was nun die alte und was die neue Spaltenreihenfolge ist und wie es letztendlich sein soll. Ich kann das
Zitat:
den Befehl zum kopieren hatte ich so geschrieben:
Worksheets("Eingabeliste").Range"B3,A3,C3:N3").Copy
den Befehl zum kopieren hatte ich so geschrieben:
Worksheets("Eingabeliste").Range"B3,A3,C3:N3").Copy
überhaupt nicht nachvollziehen, nicht einmal finden? Was soll das jetzt schon wieder?
Daher kann ich Dein "Warum?" auch nicht beantworten.
An dem Makro habe ich geringfügige Änderungen vorgenommen, die Du im Moment noch nicht hast. Sie bewirken, dass vorhandene Rahmenlinien in "AL-FMD" beim Kopieren nicht mehr verschwinden und ermitteln die nächste freie Zeile jeder Zieltabelle aus den Spalten A und B, ein fehlender Wert in A (oder mehrere) würde jetzt nicht mehr stören, es wird die nächste wirklich freie Zeile benutzt.
Vergleichen wir noch einmal den Ist- bzw. Soll-Stand: Das (geänderte) Übertragen-Makro macht folgendes, bitte einzeln prüfen und bestätigen/gewünschte Änderungen angeben:
1. Es ermittelt in der Tabelle "ST-L" in den Spalten A und B die erste freie Zeile und nimmt ggf. die untere (mit der höheren Zeilennummer).
2. Es kopiert aus der "Eingabeliste" den Wert aus "B2" (W-Nr.) in die Tabelle "ST-L" in die erste freie Zeile in Spalte A.
3. Es ermittelt in der "Eingabeliste" den Wert in "E2" und benutzt ihn als Kriterium für das nachfolgende Kopieren (4 - 14).
4. Wenn Kriterium "E2" = S, dann
-> ermittelt es in der Tabelle "AL-S" in den Spalten A und B die erste freie Zeile und nimmt ggf. die untere (mit der höheren Zeilennummer),
5. ..., dann
-> kopiert es aus der "Eingabeliste" den Wert aus "B3" (W-Nr.) in die Tabelle "AL-S" in die erste freie Zeile in Spalte A,
6. ..., dann
-> kopiert es aus der "Eingabeliste" die Werte aus "A3" (Datum) und "C3:N3" in die Tabelle "AL-S" in die erste freie Zeile in die Spalte B (Datum) sowie in die Spalten C bis N.
7. Wenn Kriterium "E2" = R, dann
-> ermittelt es in der Tabelle "AL-R" in den Spalten A und B die erste freie Zeile und nimmt ggf. die untere (mit der höheren Zeilennummer),
8. ..., dann
-> kopiert es aus der "Eingabeliste" den Wert aus "B3" (W-Nr.) in die Tabelle "AL-R" in die erste freie Zeile in Spalte A,
9. ..., dann
-> kopiert es aus der "Eingabeliste" die Werte aus "A3" (Datum) und "C3:N3" in die Tabelle "AL-R" in die erste freie Zeile in die Spalte B (Datum) sowie in die Spalten C bis N.
10. Wenn Kriterium "E2" = F, M oder D, dann
-> ermittelt es in der Tabelle "AL-FMD" in den Spalten A und B die erste freie Zeile und nimmt ggf. die untere (mit der höheren Zeilennummer),
11. ..., dann
-> kopiert es aus der "Eingabeliste" den Wert aus "A2" (Datum) in die Tabelle "AL-FMD" in die erste freie Zeile in Spalte A.
Für das Kriterium "E2" = F, M oder D ist der nächste Kopierbefehl unterschiedlich.
12. Wenn Kriterium "E2" = F, dann
-> kopiert es aus der "Eingabeliste" den Wert aus "D2" (Anz.) in die Tabelle "AL-FMD" in die erste freie Zeile in Spalte B.
13. Wenn Kriterium = "E2" = M, dann
-> kopiert es aus der "Eingabeliste" den Wert aus "D2" (Anz.) in die Tabelle "AL-FMD" in die erste freie Zeile in Spalte C.
14. Wenn Kriterium = "E2" = D, dann
-> kopiert es aus der "Eingabeliste" den Wert aus "D2" (Anz.) in die Tabelle "AL-FMD" in die erste freie Zeile in Spalte D.
15. Wenn Kriterium = "E2" weder S, R, F, M noch D ist, dann wird anstelle von 4 - 14 eine Meldung angezeigt und sonst gar nichts gemacht. (2 bleibt erhalten.)
16. In der "Eingabeliste" werden die Werte in "A2:K2" gelöscht. Die am Anfang ausgeschaltete Bildschirmeinstellung wird wieder eingeschaltet.
Wenn ich jetzt noch was schaffe, lade ich heute noch den neuesten Stand hoch.
Gruß,
CaroS
Antwort 37 von CaroS
Hallo Hans,
ich bin weit gekommen. Jetzt bist Du dran. Runterladen, ausprobieren, offene Fragen beantworten usw.
Leider kriege ich die Datei gerade nicht hochgeladen, obwohl es mit Testdaten nur 136 kB sind. Hab´s schon mehrere Male versucht, aber die scheinen völlig überlastet zu sein oder gerade mal ´ne Pause zu machen. Ich versuche es später und reiche den Link nach.
Wünsche allen ein schönes langes und erholsames Wochenende!
CaroS
ich bin weit gekommen. Jetzt bist Du dran. Runterladen, ausprobieren, offene Fragen beantworten usw.
Leider kriege ich die Datei gerade nicht hochgeladen, obwohl es mit Testdaten nur 136 kB sind. Hab´s schon mehrere Male versucht, aber die scheinen völlig überlastet zu sein oder gerade mal ´ne Pause zu machen. Ich versuche es später und reiche den Link nach.
Wünsche allen ein schönes langes und erholsames Wochenende!
CaroS
Antwort 38 von CaroS
Hier der Download-Link:
http://www.netupload.de/detail.php?img=21a74689c9cd7f120ef90df3420a...
Und nun testen, testen, testen - mit realen Anforderungen!
CaroS
http://www.netupload.de/detail.php?img=21a74689c9cd7f120ef90df3420a...
Und nun testen, testen, testen - mit realen Anforderungen!
CaroS
Antwort 39 von CaroS
Sorry,
hier ist irgendwo der Wurm drin. Ich hatte zu meiner Antwort 36 gleich noch eine Ergän- zung hinterhergejagt, weil ich eine Programmzeile im Makro übersehen hatte. Die ist aber leider nicht angekommen. Es ging um den Ist-Abgleich (Bestätigung/ Änderung). Das Makro kopiert nach 2. noch ein paar Werte, bevor es in 3. das Kriterium ermittelt:
2,5. Es kopiert aus der "Eingabeliste" die Werte aus "A2" (Datum) und "C2:K2" in die Tabelle "ST-L" in die erste freie Zeile in die Spalte B (Datum) und in die Spalten C bis K.
So, nun ist das wenigstens vollständig. Gruß und tschüß! CaroS
hier ist irgendwo der Wurm drin. Ich hatte zu meiner Antwort 36 gleich noch eine Ergän- zung hinterhergejagt, weil ich eine Programmzeile im Makro übersehen hatte. Die ist aber leider nicht angekommen. Es ging um den Ist-Abgleich (Bestätigung/ Änderung). Das Makro kopiert nach 2. noch ein paar Werte, bevor es in 3. das Kriterium ermittelt:
2,5. Es kopiert aus der "Eingabeliste" die Werte aus "A2" (Datum) und "C2:K2" in die Tabelle "ST-L" in die erste freie Zeile in die Spalte B (Datum) und in die Spalten C bis K.
So, nun ist das wenigstens vollständig. Gruß und tschüß! CaroS
Antwort 40 von CaroS
Hallo Hans!
Bedauerlicherweise gibt es noch einen Fehler im Makro "Monatssummen" zu vermelden. Da hat sich ein "B" anstelle eines "A" eingeschlichen. Ich gebe hier ein paar Zeilen mehr an, damit Du die Stelle im Code besser findest, es handelt sich aber nur um den einen Buchstaben.
Hier ist B falsch und muss durch A ersetzt werden:
Es gilt weiter das Motto: testen, testen, testen.
(Fehler gibt´s immer, es kommt darauf an, sie zu finden.)
Gruß,
CaroS
Bedauerlicherweise gibt es noch einen Fehler im Makro "Monatssummen" zu vermelden. Da hat sich ein "B" anstelle eines "A" eingeschlichen. Ich gebe hier ein paar Zeilen mehr an, damit Du die Stelle im Code besser findest, es handelt sich aber nur um den einen Buchstaben.
´ summeF = B + C + D = summeG + summeH + summeI
l = l + 1
ldatum = Worksheets("AL-FMD").Range("B" & CStr(l)).Value
Loop
´ Summen in Monatstabelle schreibenHier ist B falsch und muss durch A ersetzt werden:
ldatum = Worksheets("AL-FMD").Range("A" & CStr(l)).ValueEs gilt weiter das Motto: testen, testen, testen.
(Fehler gibt´s immer, es kommt darauf an, sie zu finden.)
Gruß,
CaroS
Antwort 41 von hansw
hallo, habe gerade den Rest geleden. gehe jetzt ins bett und mach das morgen. GRUß Hans schönes WE
Antwort 42 von hansw
hallo Caro, erst mal zu Info: habe getestet, noch nicht genug!, B u. A getauscht etc. mal ging es mal nicht. Fehler(Debuggen) in der betreffende Makrozeile, aber auch in einer anderen. Nach dem Ändern der Dummys ging erst mal nichts mehr. Kannst Du mir mal die Kriterien der Monatszuordnung für die Monatsmeldung erklären. Wenn ich die Monatsreihenfolge nicht einhalte , also die Daten beliebig eingebe, wird nur zusammengefasst, was vor dem nächsten Monat steht. Kommt wieder ein "alter" Monat wird er nicht dazu gerechnet. In der Praxis kein Problem, da tagesaktuell eingetragen wird. Ich will nur das Prinzip wissen. Hinzu kam eine Meldung von Excel mit "schwer wiegendem Fehler". Ich hoffe, daß das Laden von dieser Datei sicher ist. Wenn ich mit meinemTesten durch bin, melde ich mich. Gruß Hans
Antwort 43 von hansw
Hallo Caro, habe jetzt noch mal nach meinem tatsächlichen Bedarf ,Datenumfang bzw. tatsächlichen Abläufen geprüft. Es funktioniert bestens. Man darf aber nichts verwechseln oder vergessen. Bei S,R muß immer „x“ bei m bzw. w ausgefüllt sein, es muß immer das Datum in der richtigen Zeitfolge der Monate sein etc, sonst klappt einiges nicht. Insofern vielleicht paar Sicherheiten?!:
- eingegebenes Datum prüfen auf den tatsächlich anstehenden Monat in Bezug auf Tabelle Monatsmeldung „Berechnen“; ist hier einmal „klick“ gemacht gibt’s Probleme
- bei S,R ausfüllen des „x“ nach dem Motto – es muß eingetragen werden und nur bei m oder nur w
- könntest Du in die Monatsmeldung für die Zellen, für die nichts ermittelt wurde einen Querstrich reinbekommen?
Gruß Hans
- eingegebenes Datum prüfen auf den tatsächlich anstehenden Monat in Bezug auf Tabelle Monatsmeldung „Berechnen“; ist hier einmal „klick“ gemacht gibt’s Probleme
- bei S,R ausfüllen des „x“ nach dem Motto – es muß eingetragen werden und nur bei m oder nur w
- könntest Du in die Monatsmeldung für die Zellen, für die nichts ermittelt wurde einen Querstrich reinbekommen?
Gruß Hans
Antwort 44 von CaroS
Hallo Hans,
zu AW 42 und 43:
Was für ein A, was für ein B? Wie heißen die Zellen? Was bedeutet "getausch"? Was ging mal und mal nicht? Fehler in welcher Zeile? Wer oder was ist der Dummy? Es ist wieder einmal alles komplett unverständlich und nicht nachvollziehbar. Ab sofort werde ich auf Dinge, die ich nicht verstehe, nicht mehr eingehen.
Alles richtig bemerkt, genau so ist das Makro geschrieben. Es beginnt mit k = 3, kdatum = Worksheets("AL-S").Range("B" & CStr(k)).Value in "AL-S" in Spalte B und mit
l = 3, ldatum = Worksheets("AL-FMD").Range("A" & CStr(l)).Value in "AL-FMD" in Spalte A jeweils in der 3. Zeile und erwartet dort Datumswerte aus dem April. Die Addition von Werten wird Monat für Monat so lange fortgesetzt, bis das erste Mal ein Datum gefunden wird, das nicht mehr zum laufenden Monat gehört: Do While Month(kdatum) = i bzw. Do While Month(ldatum) = i. Danach wird für den nächsten Monat addiert (For i = 4 To monat). Es gibt kein zurück; nachträglich eingegeben Zeilen bleiben unberücksichtigt.
So ist der derzeitige Stand der Dinge. Diese Konstruktion aus 3 Schleifen (For, Do While, DoWhile) ist sehr einfach und zuverlässig, setzt aber voraus, dass die Zeilen in "AL-S" und "AL-FMD" in aufsteigender chronologischer Reihenfolge vorliegen.
Man könnte das ändern, es würde die Sache aber komplizierter machen. Ich habe als ersten Ansatz diesen gewählt, weil ich laut Problembeschreibung von einer aufsteigenden chronologischen Reihenfolge ausgehen konnte.
Falls es diesbezüglich Änderungsbedarf gibt, ist abzuwägen, ob man die Addition im Makro ändert oder ob man die Daten vorher so sortiert, dass die zeitliche Reihenfolge stimmt und man in unveränderter Weise addieren kann.
?
?
Was hat das mit den Makros zu tun? Ob in der Eingabeliste in F2 oder G2 ein "x" eingetragen wird, ist für keins der beiden Makros wichtig. Sie arbeiten so oder so. Von dem "x" hängt nur ab, ob in C3, D3 bzw. I3, J3 Werte stehen. Das ist allein Sache des Anwenders, ob er hier richtige, versehentlich falsche oder absichtlich falsche Eingaben macht. Was das Makro macht, habe ich in AW36 ausführlich (genug) beschrieben. Wenn hier eine zusätzliche Prüfung der Eingabe stattfinden soll, muss man sich überlegen, wann und wie man das macht. Man könnte wahrscheinlich einen Teil der Bedingungen in den Formeln oder über Gültigkeitsbedingungen in C3, D3, I3, J3 erledigen, vielleicht nicht alles, das hängt von den Anforderungen ab. Man könnte die zusätzlichen Prüfungen auch in das Makro "Übetragen" einbauen, so dass die Eingaben vor dem Übertragen geprüft werden. (Dann wären Prüfung und Übertragung aber nicht mehr unabhängig voneinander.) Damit (mit VBA) kommt man am weitesten.
zu AW 42 und 43:
Zitat:
B u. A getauscht etc. mal ging es mal nicht. Fehler(Debuggen) in der betreffende Makrozeile, aber auch in einer anderen. Nach dem Ändern der Dummys ging erst mal nichts mehr.
B u. A getauscht etc. mal ging es mal nicht. Fehler(Debuggen) in der betreffende Makrozeile, aber auch in einer anderen. Nach dem Ändern der Dummys ging erst mal nichts mehr.
Was für ein A, was für ein B? Wie heißen die Zellen? Was bedeutet "getausch"? Was ging mal und mal nicht? Fehler in welcher Zeile? Wer oder was ist der Dummy? Es ist wieder einmal alles komplett unverständlich und nicht nachvollziehbar. Ab sofort werde ich auf Dinge, die ich nicht verstehe, nicht mehr eingehen.
Zitat:
Kannst Du mir mal die Kriterien der Monatszuordnung für die Monatsmeldung erklären. Wenn ich die Monatsreihenfolge nicht einhalte , also die Daten beliebig eingebe, wird nur zusammengefasst, was vor dem nächsten Monat steht. Kommt wieder ein "alter" Monat wird er nicht dazu gerechnet. ... Ich will nur das Prinzip wissen.
Kannst Du mir mal die Kriterien der Monatszuordnung für die Monatsmeldung erklären. Wenn ich die Monatsreihenfolge nicht einhalte , also die Daten beliebig eingebe, wird nur zusammengefasst, was vor dem nächsten Monat steht. Kommt wieder ein "alter" Monat wird er nicht dazu gerechnet. ... Ich will nur das Prinzip wissen.
Alles richtig bemerkt, genau so ist das Makro geschrieben. Es beginnt mit k = 3, kdatum = Worksheets("AL-S").Range("B" & CStr(k)).Value in "AL-S" in Spalte B und mit
l = 3, ldatum = Worksheets("AL-FMD").Range("A" & CStr(l)).Value in "AL-FMD" in Spalte A jeweils in der 3. Zeile und erwartet dort Datumswerte aus dem April. Die Addition von Werten wird Monat für Monat so lange fortgesetzt, bis das erste Mal ein Datum gefunden wird, das nicht mehr zum laufenden Monat gehört: Do While Month(kdatum) = i bzw. Do While Month(ldatum) = i. Danach wird für den nächsten Monat addiert (For i = 4 To monat). Es gibt kein zurück; nachträglich eingegeben Zeilen bleiben unberücksichtigt.
So ist der derzeitige Stand der Dinge. Diese Konstruktion aus 3 Schleifen (For, Do While, DoWhile) ist sehr einfach und zuverlässig, setzt aber voraus, dass die Zeilen in "AL-S" und "AL-FMD" in aufsteigender chronologischer Reihenfolge vorliegen.
Man könnte das ändern, es würde die Sache aber komplizierter machen. Ich habe als ersten Ansatz diesen gewählt, weil ich laut Problembeschreibung von einer aufsteigenden chronologischen Reihenfolge ausgehen konnte.
Falls es diesbezüglich Änderungsbedarf gibt, ist abzuwägen, ob man die Addition im Makro ändert oder ob man die Daten vorher so sortiert, dass die zeitliche Reihenfolge stimmt und man in unveränderter Weise addieren kann.
Zitat:
Hinzu kam eine Meldung von Excel mit "schwer wiegendem Fehler". Ich hoffe, daß das Laden von dieser Datei sicher ist.
Hinzu kam eine Meldung von Excel mit "schwer wiegendem Fehler". Ich hoffe, daß das Laden von dieser Datei sicher ist.
?
Zitat:
Es funktioniert bestens.
Es funktioniert bestens.
?
Zitat:
Man darf aber nichts verwechseln oder vergessen. Bei S,R muß immer „x“ bei m bzw. w ausgefüllt sein, es muß immer das Datum in der richtigen Zeitfolge der Monate sein etc, sonst klappt einiges nicht. Insofern vielleicht paar Sicherheiten?!:
- eingegebenes Datum prüfen auf den tatsächlich anstehenden Monat in Bezug auf Tabelle Monatsmeldung „Berechnen“; ist hier einmal „klick“ gemacht gibt’s Probleme
- bei S,R ausfüllen des „x“ nach dem Motto – es muß eingetragen werden und nur bei m oder nur w
Man darf aber nichts verwechseln oder vergessen. Bei S,R muß immer „x“ bei m bzw. w ausgefüllt sein, es muß immer das Datum in der richtigen Zeitfolge der Monate sein etc, sonst klappt einiges nicht. Insofern vielleicht paar Sicherheiten?!:
- eingegebenes Datum prüfen auf den tatsächlich anstehenden Monat in Bezug auf Tabelle Monatsmeldung „Berechnen“; ist hier einmal „klick“ gemacht gibt’s Probleme
- bei S,R ausfüllen des „x“ nach dem Motto – es muß eingetragen werden und nur bei m oder nur w
Was hat das mit den Makros zu tun? Ob in der Eingabeliste in F2 oder G2 ein "x" eingetragen wird, ist für keins der beiden Makros wichtig. Sie arbeiten so oder so. Von dem "x" hängt nur ab, ob in C3, D3 bzw. I3, J3 Werte stehen. Das ist allein Sache des Anwenders, ob er hier richtige, versehentlich falsche oder absichtlich falsche Eingaben macht. Was das Makro macht, habe ich in AW36 ausführlich (genug) beschrieben. Wenn hier eine zusätzliche Prüfung der Eingabe stattfinden soll, muss man sich überlegen, wann und wie man das macht. Man könnte wahrscheinlich einen Teil der Bedingungen in den Formeln oder über Gültigkeitsbedingungen in C3, D3, I3, J3 erledigen, vielleicht nicht alles, das hängt von den Anforderungen ab. Man könnte die zusätzlichen Prüfungen auch in das Makro "Übetragen" einbauen, so dass die Eingaben vor dem Übertragen geprüft werden. (Dann wären Prüfung und Übertragung aber nicht mehr unabhängig voneinander.) Damit (mit VBA) kommt man am weitesten.
Antwort 45 von CaroS
[Fortsetzung folgt]
Was sind "Zellen, für die nichts ermittelt wurde"? Was ist ein "Querstrich"? Ein Minuszeichen "-" oder mehrere?
Bisher leidet die "Monatsmeldung" etwas daran, dass berechnete Nullen nicht angezeigt werden, weil Über Extras -- Optionen -- Ansicht die Azeige von Nullwerten unterdrückt wird. Das ist eventuell Absicht und soll vielleicht auch so bleiben. Die Ausdrucksweise "Zellen, für die nichts ermittelt wurde" wird allerdings weder der Zahl 0 gerecht, noch dem Makro. Wenn das Makro ermittelt hat, dass die Summe in einer Spalte 0 beträgt, dann hat es mehr als "nichts ermittelt", dann ist 0 in dem Fall (hoffentlich) das korrekte Ergebnis. Ich finde, man sollte als Mensch in der Lage sein, "0" und "nichts" zu unterscheiden und dies auch sprachlich zum Ausdruck bringen können.
Nichtsdestotrotz enthält das Makro die mutmaßlich gewünschte Änderung.
Die Prüfung vor dem Übertragen bezieht sich zurzeit nur auf das "x" in F2 oder G2. Über die Eingabe und Reihenfolge der Datumswerte muss erst entschieden werden. Zum Testen/als Beispiel hat in der "Eingabeliste" die Zelle A6 eine sehr restriktive Gültigkeitsprüfung: ein Datum wird nur akzeptiert, wenn es nach jedem anderen Datum in "AL-FMD", "ST-L", "AL-R", "AL-S" liegt.
http://www.netupload.de/detail.php?img=d952b84d43963d5bde17acb05729...
Gruß,
CaroS
(Bin jetzt nicht mehr lange und dann frühestens Do mittag wieder am PC.)
Zitat:
- könntest Du in die Monatsmeldung für die Zellen, für die nichts ermittelt wurde einen Querstrich reinbekommen?
- könntest Du in die Monatsmeldung für die Zellen, für die nichts ermittelt wurde einen Querstrich reinbekommen?
Was sind "Zellen, für die nichts ermittelt wurde"? Was ist ein "Querstrich"? Ein Minuszeichen "-" oder mehrere?
Bisher leidet die "Monatsmeldung" etwas daran, dass berechnete Nullen nicht angezeigt werden, weil Über Extras -- Optionen -- Ansicht die Azeige von Nullwerten unterdrückt wird. Das ist eventuell Absicht und soll vielleicht auch so bleiben. Die Ausdrucksweise "Zellen, für die nichts ermittelt wurde" wird allerdings weder der Zahl 0 gerecht, noch dem Makro. Wenn das Makro ermittelt hat, dass die Summe in einer Spalte 0 beträgt, dann hat es mehr als "nichts ermittelt", dann ist 0 in dem Fall (hoffentlich) das korrekte Ergebnis. Ich finde, man sollte als Mensch in der Lage sein, "0" und "nichts" zu unterscheiden und dies auch sprachlich zum Ausdruck bringen können.
Nichtsdestotrotz enthält das Makro die mutmaßlich gewünschte Änderung.
Die Prüfung vor dem Übertragen bezieht sich zurzeit nur auf das "x" in F2 oder G2. Über die Eingabe und Reihenfolge der Datumswerte muss erst entschieden werden. Zum Testen/als Beispiel hat in der "Eingabeliste" die Zelle A6 eine sehr restriktive Gültigkeitsprüfung: ein Datum wird nur akzeptiert, wenn es nach jedem anderen Datum in "AL-FMD", "ST-L", "AL-R", "AL-S" liegt.
http://www.netupload.de/detail.php?img=d952b84d43963d5bde17acb05729...
Gruß,
CaroS
(Bin jetzt nicht mehr lange und dann frühestens Do mittag wieder am PC.)
Antwort 46 von hansw
Hallo Caro, könnten in der letzten Datei von Dir aus netupload etwas nicht funktionieren?
1. ich hatte E2 in der Eingabeliste nicht ausgefüllt. Nach Prüfen und Übernehmen hat er die Zeile gelöscht (zur Neueingabe?!) aber trotzdem in die AL-S übertragen.
2. Beim Berechnen in der Monatsliste zeigt er generell nur Striche an, hat also nur den Wert 0 ermittelt.
3. im letzten Absatz ( Antwort 44) – Deinen Vorschlag habe ich versucht einzubauen ( Prüfen der Eingabedaten). Es ist so am sinnvollsten! -->5.
Probleme waren aber --> s.2. u. 1. er überträgt trotzdem in die Al-S bzw. -L .
4. „Prüfen u. Übernehmen“ – wenn auf eine fehlende Eintragung entspr. reagiert wird, wird gleich die ganze Zeile gelöscht. Besser wäre, Zeile nicht löschen und fehlende Zelle eintragen.
5. http://www.netupload.de/detail.php?img=66997ea3d051559d93cca51c4044646b.xls
mein letzter Stand .
Gruß Hans
1. ich hatte E2 in der Eingabeliste nicht ausgefüllt. Nach Prüfen und Übernehmen hat er die Zeile gelöscht (zur Neueingabe?!) aber trotzdem in die AL-S übertragen.
2. Beim Berechnen in der Monatsliste zeigt er generell nur Striche an, hat also nur den Wert 0 ermittelt.
3. im letzten Absatz ( Antwort 44) – Deinen Vorschlag habe ich versucht einzubauen ( Prüfen der Eingabedaten). Es ist so am sinnvollsten! -->5.
Probleme waren aber --> s.2. u. 1. er überträgt trotzdem in die Al-S bzw. -L .
4. „Prüfen u. Übernehmen“ – wenn auf eine fehlende Eintragung entspr. reagiert wird, wird gleich die ganze Zeile gelöscht. Besser wäre, Zeile nicht löschen und fehlende Zelle eintragen.
5. http://www.netupload.de/detail.php?img=66997ea3d051559d93cca51c4044646b.xls
mein letzter Stand .
Gruß Hans
Antwort 47 von hansw
hallo Caro, ich habe aus dem makro summenbildung einen Teil herausgenommen:
l = l + 1
ldatum = Worksheets("AL-FMD").Range("A" & CStr(l)).Value
Loop
´ Summen in Monatstabelle schreiben
summeB = 0 --> raus
summeC = 0 "
summeD = 0 "
summeE = 0 "
summeG = 0 "
summeH = 0 "
summeI = 0 "
If summeB = 0 Then
Worksheets("Monatsmeldung").Range("B" & CStr(i + 1)).Value = "-"
Else
Worksheets("Monatsmeldung").Range("B" & CStr(i + 1)).Value = summeB....
danach hat es funktioniert(nur 1x geprüft) wäre das die Ursache, daß nur o-Werte in Monatsmeldung waren? gruß hans
l = l + 1
ldatum = Worksheets("AL-FMD").Range("A" & CStr(l)).Value
Loop
´ Summen in Monatstabelle schreiben
summeB = 0 --> raus
summeC = 0 "
summeD = 0 "
summeE = 0 "
summeG = 0 "
summeH = 0 "
summeI = 0 "
If summeB = 0 Then
Worksheets("Monatsmeldung").Range("B" & CStr(i + 1)).Value = "-"
Else
Worksheets("Monatsmeldung").Range("B" & CStr(i + 1)).Value = summeB....
danach hat es funktioniert(nur 1x geprüft) wäre das die Ursache, daß nur o-Werte in Monatsmeldung waren? gruß hans
Antwort 48 von CaroS
Hallo Hans,
zu AW47: es ist so, wie Du vermutet hast. Das war ein echter Fehler von mir, aber er war so offensichtlich, dass er leicht zu erkennen und zu finden war. Die Zeilen summeX = 0 brauchte ich, um den Fall zu testen, wenn für eine Summe wirklich mal 0 rauskommt. Ich hatte danach nur vergessen, sie zu löschen bzw. die falsche Datei (meine Testversion) hochgeladen.
Zu AW46 - 1: Was das Makro "Prüfen und übernehmen" gemacht hat, nachdem Du in der Eingabeliste E2 nicht ausgefüllt hattest, entspricht genau der derzeitigen Funktions-weise des Makros, die ich in AW36 mit der Ergänzung in AW39 ausführlich beschrieben habe. Das Problem ist, dass Du immer neue Fragen stellst, ohne die vorigen Antworten zu lesen bzw. gründlich zu lesen. In AW36/39 habe ich geschrieben:
Darauf hast Du nicht reagiert.
Da steht ganz präzise: B2 wird kopiert, A2 wird kopiert, C2:K2 wird kopiert in "ST-L", und zwar alles völlig unabhängig vom Kriterium in E2. E2 beeinflusst nur, was danach in
4 - 14 passiert oder nicht passiert und ob stattdessen in 15. eine Meldung angezeigt wird. In Klammern steht da auch: 2 bleibt erhalten. Das sollte heißen, alles was bei 2. (und 2,5.) nach "ST-L" kopiert wurde (die Werte B2, A2, C2:K2) bleibt auch dort. Da steht nirgendwo, dass die Werte nur unter Vorbehalt kopiert oder nachträglich wieder gelöscht werden.
Natürlich kann es sein, dass da noch etwas geändert werden soll, aber ich kann nur soviel machen, wie ich mir anhand Deiner Aufgabenstellung vorstellen kann bzw. was Du an konkreten Anforderungen vorgibst. Dass das Kriterium irgendwas mit "ST-L" zu tun haben soll, steht ja nirgends, siehe unter anderem AW11.
Die Erklärung lautet also: Die zweite Zeile (B2, A2, C2:K2) wurde - nicht trotzdem, sondern ganz normal - erst nach "ST-L" kopiert und danach wie nach jedem "Übernehmen" ganz normal geleert (Range("A2:K2").Select, Selection.ClearContents)
- wie bisher gewünscht, in AW36 - 16. beschrieben und seitdem nicht beanstandet.
Stand der Kommunikation ist, dass Du in Form von Fragen, Andeutungen und Erwähnung von kleineren Änderungen nach und nach mitteilst, dass vor der ganzen Kopiererei wahrscheinlich noch eine etwas umfangreichere Prüfung der Eingabe stattfinden soll. Na schön, sowas lässt sich alles machen, aber dann müsstest Du einfach mal genau beschreiben, was wie gemacht werden soll.
Man kann auf festgestellte Eingabefehler sehr unterschiedlich reagieren. Eine einfache Möglichkeit ist: Fehlermeldung + Abbruch, aber selbst diese einfache Möglichkeit muss man sorgfältig in den Kontext einordnen: was war vorher, was käme danach, was bewirkt der Abbruch an dieser Stelle. Automatische Fehlerkorrekturen bedürfen einer noch gründlicheren Überlegung und Prüfung, ob sie wirklich in jeder (Fehler-)Situation das richtige machen, denn wenn unmittelbar danach das Übertragen stattfindet und der Anwender nicht mehr eingreifen kann ...
Gruß,
CaroS
zu AW47: es ist so, wie Du vermutet hast. Das war ein echter Fehler von mir, aber er war so offensichtlich, dass er leicht zu erkennen und zu finden war. Die Zeilen summeX = 0 brauchte ich, um den Fall zu testen, wenn für eine Summe wirklich mal 0 rauskommt. Ich hatte danach nur vergessen, sie zu löschen bzw. die falsche Datei (meine Testversion) hochgeladen.
Zu AW46 - 1: Was das Makro "Prüfen und übernehmen" gemacht hat, nachdem Du in der Eingabeliste E2 nicht ausgefüllt hattest, entspricht genau der derzeitigen Funktions-weise des Makros, die ich in AW36 mit der Ergänzung in AW39 ausführlich beschrieben habe. Das Problem ist, dass Du immer neue Fragen stellst, ohne die vorigen Antworten zu lesen bzw. gründlich zu lesen. In AW36/39 habe ich geschrieben:
Zitat:
Vergleichen wir noch einmal den Ist- bzw. Soll-Stand: Das ... Übertragen-Makro macht folgendes, bitte einzeln prüfen und bestätigen/gewünschte Änderungen angeben
2. Es kopiert aus der "Eingabeliste" den Wert aus "B2" (W-Nr.) in die Tabelle "ST-L" in die erste freie Zeile in Spalte A.
(Nachtrag AW39)
2,5. Es kopiert aus der "Eingabeliste" die Werte aus "A2" (Datum) und "C2:K2" in die Tabelle "ST-L" in die erste freie Zeile in die Spalte B (Datum) und in die Spalten C bis K.
3. Es ermittelt in der "Eingabeliste" den Wert in "E2" und benutzt ihn als Kriterium für das nachfolgende Kopieren (4 - 14).
15. Wenn Kriterium = "E2" weder S, R, F, M noch D ist, dann wird anstelle von 4 - 14 eine Meldung angezeigt und sonst gar nichts gemacht. (2 bleibt erhalten.)
16. In der "Eingabeliste" werden die Werte in "A2:K2" gelöscht. ...
Vergleichen wir noch einmal den Ist- bzw. Soll-Stand: Das ... Übertragen-Makro macht folgendes, bitte einzeln prüfen und bestätigen/gewünschte Änderungen angeben
2. Es kopiert aus der "Eingabeliste" den Wert aus "B2" (W-Nr.) in die Tabelle "ST-L" in die erste freie Zeile in Spalte A.
(Nachtrag AW39)
2,5. Es kopiert aus der "Eingabeliste" die Werte aus "A2" (Datum) und "C2:K2" in die Tabelle "ST-L" in die erste freie Zeile in die Spalte B (Datum) und in die Spalten C bis K.
3. Es ermittelt in der "Eingabeliste" den Wert in "E2" und benutzt ihn als Kriterium für das nachfolgende Kopieren (4 - 14).
15. Wenn Kriterium = "E2" weder S, R, F, M noch D ist, dann wird anstelle von 4 - 14 eine Meldung angezeigt und sonst gar nichts gemacht. (2 bleibt erhalten.)
16. In der "Eingabeliste" werden die Werte in "A2:K2" gelöscht. ...
Darauf hast Du nicht reagiert.
Da steht ganz präzise: B2 wird kopiert, A2 wird kopiert, C2:K2 wird kopiert in "ST-L", und zwar alles völlig unabhängig vom Kriterium in E2. E2 beeinflusst nur, was danach in
4 - 14 passiert oder nicht passiert und ob stattdessen in 15. eine Meldung angezeigt wird. In Klammern steht da auch: 2 bleibt erhalten. Das sollte heißen, alles was bei 2. (und 2,5.) nach "ST-L" kopiert wurde (die Werte B2, A2, C2:K2) bleibt auch dort. Da steht nirgendwo, dass die Werte nur unter Vorbehalt kopiert oder nachträglich wieder gelöscht werden.
Natürlich kann es sein, dass da noch etwas geändert werden soll, aber ich kann nur soviel machen, wie ich mir anhand Deiner Aufgabenstellung vorstellen kann bzw. was Du an konkreten Anforderungen vorgibst. Dass das Kriterium irgendwas mit "ST-L" zu tun haben soll, steht ja nirgends, siehe unter anderem AW11.
Zitat:
AW46: 1. ... E2 in der Eingabeliste nicht ausgefüllt. Nach Prüfen und Übernehmen hat er die Zeile gelöscht (zur Neueingabe?!) aber trotzdem in die AL-S übertragen.
AW46: 1. ... E2 in der Eingabeliste nicht ausgefüllt. Nach Prüfen und Übernehmen hat er die Zeile gelöscht (zur Neueingabe?!) aber trotzdem in die AL-S übertragen.
Die Erklärung lautet also: Die zweite Zeile (B2, A2, C2:K2) wurde - nicht trotzdem, sondern ganz normal - erst nach "ST-L" kopiert und danach wie nach jedem "Übernehmen" ganz normal geleert (Range("A2:K2").Select, Selection.ClearContents)
- wie bisher gewünscht, in AW36 - 16. beschrieben und seitdem nicht beanstandet.
Stand der Kommunikation ist, dass Du in Form von Fragen, Andeutungen und Erwähnung von kleineren Änderungen nach und nach mitteilst, dass vor der ganzen Kopiererei wahrscheinlich noch eine etwas umfangreichere Prüfung der Eingabe stattfinden soll. Na schön, sowas lässt sich alles machen, aber dann müsstest Du einfach mal genau beschreiben, was wie gemacht werden soll.
Man kann auf festgestellte Eingabefehler sehr unterschiedlich reagieren. Eine einfache Möglichkeit ist: Fehlermeldung + Abbruch, aber selbst diese einfache Möglichkeit muss man sorgfältig in den Kontext einordnen: was war vorher, was käme danach, was bewirkt der Abbruch an dieser Stelle. Automatische Fehlerkorrekturen bedürfen einer noch gründlicheren Überlegung und Prüfung, ob sie wirklich in jeder (Fehler-)Situation das richtige machen, denn wenn unmittelbar danach das Übertragen stattfindet und der Anwender nicht mehr eingreifen kann ...
Gruß,
CaroS
Antwort 49 von hansw
Hallo Caro, mal keine Programmsachen, sondern ein Metapher: ich fühle mich wie ein Fußgänger, der eine Boing 747 fliegt und dabei die Zusammenhänge begreifen muß. Für mich ist die Korrespondenz mit Dir ein echter Lernprozess und da bitte ich um etwas Verständnis für die Formulierungen,Fragen etc, von mir. Das Finden des "Fehlers" war für mich eine Leistung! Das Beschreiben meiner Vorstellungen, was wie gemacht werden soll, ist insofern für mich ein Prozess. Es ist doch gut, wenn dieses Forum nicht nur fertige Tipps, Lösungen bietet, sondern auch zum Lernen geeignet ist.
Zum Programm: ich habe zusätzlich mehrere Prüfkriterien für die Daten zu Art. S u.R eingebaut, da sie für alle Listen (ST-L, AL-S, AL-R) also in denen die Art. S,R enthalten sind, erforderlich sind und miteinander korrespondieren/gleich sein müssen. Anders formuliert: in der ST-L können nicht mehr Art.S stehen, als in der AL-S.
Deshalb für die Eingabe: eingeben-prüfen-zurück zur korrektur der (geprüften)fehlerhaften eingabe(so oft,wie Prüfkriterien)-übernehmen. (dabei die korrekten Eingaben nicht löschen).
Datumsprüfung:ein nicht zum lfd.Monat passendes Datum wird nicht akzeptiert, dann kann auch ein falsches Datum nicht dazu führen, daß dieser " falsche" Monat in der AL-Monatsliste ausgewertet wird und nichts mehr zugefügt werden kann. Die monatliche Cronologie (zwingend aufsteigend) ist nicht erforderlich. Gruß Hans
Zum Programm: ich habe zusätzlich mehrere Prüfkriterien für die Daten zu Art. S u.R eingebaut, da sie für alle Listen (ST-L, AL-S, AL-R) also in denen die Art. S,R enthalten sind, erforderlich sind und miteinander korrespondieren/gleich sein müssen. Anders formuliert: in der ST-L können nicht mehr Art.S stehen, als in der AL-S.
Deshalb für die Eingabe: eingeben-prüfen-zurück zur korrektur der (geprüften)fehlerhaften eingabe(so oft,wie Prüfkriterien)-übernehmen. (dabei die korrekten Eingaben nicht löschen).
Datumsprüfung:ein nicht zum lfd.Monat passendes Datum wird nicht akzeptiert, dann kann auch ein falsches Datum nicht dazu führen, daß dieser " falsche" Monat in der AL-Monatsliste ausgewertet wird und nichts mehr zugefügt werden kann. Die monatliche Cronologie (zwingend aufsteigend) ist nicht erforderlich. Gruß Hans

