Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1112to1116
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

neue Daten im Datensatz per Makro in Liste eintrag

neue Daten im Datensatz per Makro in Liste eintrag
btc
Liebe Excel-Profis!
Bis vor zwei Jahren habe ich des öfteren mit Excel+Macros gearbeitet und mit viel Hilfe von hier einige Erfolge erzielt. Nun bräuchte ich wieder etwas Hilfe, da meine Kenntnisse in VBA ziemlich löchrig und nur durch Learning bei doing entstanden sind.
Hier das Excel-File:
https://www.herber.de/bbs/user/65507.xlsm
Folgendes Problem:
Ich will beim Speichern einer neuen Kalkulation(mittels dem ersten Button) im Sheet "Vorlage" die einzelnen Artikel mit einigen Daten(Artikel, Einheit, Preis und Schwund) in das Sheet "Preisliste" übertragen lassen. Dabei sollen nur die Artikel übernommen werden, die nicht schon in der Preisliste stehen.
Ziel dahinter wäre dann, bei der nächsten Kalkulation per Dropdown aus den Artikeln in der Preisliste wählen zu können und die hinterlegten Daten in die Tabelle zu übernehmen.
Bis jetzt komme ich beim Basteln leider nicht weiter.
Ein Lösungsvorschlag wäre super!
Vielen Dank im Voraus
Michael

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: neue Daten im Datensatz per Makro in Liste eintrag
02.11.2009 00:22:21
Oberschlumpf
Hi Michael
Ohne, dass ich schon ne Lösungsidee hab, von mir der Tipp, deine Datei besser im alten xls-Format hier zu zeigen.
Aber vielleicht ist das ja schon von mir DIE Lösung :-), weil vielleicht ein Aktiver in diesem Forum ohne Excel 2007 eine Antwort kennt.
Ciao
Thorsten
AW: neue Daten im Datensatz per Makro in Liste eintrag
02.11.2009 03:38:39
Oberschlumpf
...bitte jeden Beitrag mit Begrüßung beginnen...
Hi Michael
ich bin aktiv und ich hab ne Lösungsidee :)
https://www.herber.de/bbs/user/65512.xls
Erklärung:
Du wunderst dich vielleicht, warum im Blatt "Vorlage" zwar jeder Artikel schon das DropDown-Symbol für eine Gültigkeitsliste anzeigt, dass aber nix passiert, wenn du da drauf klickst.
Das kommt daher, weil diese Liste ihre Einträge aus dem Blatt "Preisliste" erhält, dieses Blatt aber noch keine Einträge hat.
Das ändert sich aber, wenn du...
...auf den Button "Kalkulation speichern" klickst.
Jetzt wird, wie (hofftl) gewünscht, jeder Artikel aus "Vorlage" in allen Einträgen in "Preisliste" gesucht.
Wenn nicht gefunden, wird der Artikel aus "Vorlage" der Liste in "Preisliste" hinzugefügt.
Unnnnd...
....die nächste, freie Zelle in Spalte A in "Vorlage" erhält automatisch die gleiche Gültigkeitsliste wie die vorhergehenden Zellen, damit du einen möglichen, nächsten Artikel (und die dazugehörigen Werte) ganz einfach aus der Liste auswählen kannst.
Hilft das?
Ciao
Thorsten
P.S. ein Problem, welches nei mir erscheint ist, dass in den Zellen F21:G21 #Wert erscheint
liegt vielleicht daran, dass "mein" Excel (XP) die Formel (Bsp aus F21)
=TEILERGEBNIS(109;F3:F20)
nicht erkennt, weil bei mir Excel für Funktion nur die Werte 1 - 11, aber nicht 109 zulässt.
Vielleicht ist das ja ab Excel 2007 anders, und du bemerkst "meinen" Fehler gar nicht.
Ich wollte nur mal drauf hinweisen.
Nun bin aber aber neugierig auf dein Feedback.
Anzeige
Korrektur
02.11.2009 04:08:24
Oberschlumpf
Hi Michael
uppppsssss... :-)
Erzähl ich doch lang und breit davon, dass bei Auswahl in Spalte A in Vorlage die anderen Zellen automatisch aus Preisliste ausgefüllt werden, und dabei habe ich den Code dafür total vergessen :-)
Hier nun die korrigierte Version:
https://www.herber.de/bbs/user/65514.xls
Eine weitere "Zutat":
Sobald du in Vorlage einen Artikel löschst, werden bis auf die Formeln auch alle anderen Zellwerte der gleichen Zeile gelöscht.
Ciao
Thorsten
AW: Korrektur
02.11.2009 11:02:10
btc
Hi Thorsten!
Erstmal sorry für die fehlende Begrüßung. Ich wusste nicht, dass das hier bei jeder Antwort üblich ist.
Dann natürlich auch vielen Dank für die nächtliche Anstrengung. Ich hab selbst noch bis kurz vor drei Uhr rumgebastelt, bin aber nicht fertig geworden.
Beim Test deiner Version ergeben sich leider noch ein paar kleine Probleme:
Beim Drücken meines CommandButtons werden jetzt zwar die Artikel übernommen, aber mein Makro geht danach nicht mehr weiter, d.h., das Sheet 'Kartoffelsalat' wird nicht mehr kopiert+gespeichert, die Preisempfehlungen werden nicht übernommen und das Sheet 'Vorlage' wird nicht zurückgesetzt.
Außerdem werden die Zellen A21 'Gesamtpreis/100 Portionen' und A22 'Gesamtpreis' mit in die Preisliste kopiert, was sie nicht sollten.
Leider ist mir dein Lösungsweg etwa drei Stufen zu hoch :) , weshalb ich nicht mal ne Idee hätte, wie man das ändern könnte.
Ich werd mal nach der 'Trial and Error'-Methode etwas herumprobieren, woran das liegen könnte.
Vielen Dank schonmal, evtl. findet sich der Haken ja noch.
Michael
Anzeige
AW: Korrektur
02.11.2009 12:26:34
Oberschlumpf
Hi Michael
Dass beim Klick auf deinen Button nur mein Code ausgeführt wird, liegt daran, weil ich dachte, dass der alte Code von dir noch in der Testphase und noch nicht fertig ist.
Deswegen habe ich deinen Code nicht weiter beachtet.
(du hattest ja auch nix dazu geschrieben, dass der Code weiter verwendet werden soll)
Und hiermit
Außerdem werden die Zellen A21 'Gesamtpreis/100 Portionen' und A22 'Gesamtpreis' mit in die Preisliste kopiert, was sie nicht sollten.
kann ich leider gar nix anfangen.
Wenn damit der Klick auf den ovalen Button gemeint ist, dann liegt das nicht an mir, weil der Code so bei mir ankam. An dem ovalen Button habe ich nix geändert - nicht mal angeguckt.
Hier nun meine Version inkl. deines Codes, den du ja vermisst hattest.
https://www.herber.de/bbs/user/65519.xls
Und was meinst du mit die Preisempfehlungen werden nicht übernommen ?
Nach Klick auf den oberen Button wird zuerst mein Code ausgeführt und dann dein Code - letzteres unverändert.
D.h.
mein Code:
Zuerst werden die Zutaten der Preisliste hinzugefügt, wenn sie in der selben noch nicht vorhanden sind.
dein Code:
Dann wird ein Sheet Kartoffelsalat erstellt, in das alle Daten aus Vorlage kopiert und eingefügt werden.
Die Werte in Vorlage werden gelöscht.
Du hast leider nix zu meiner P.S.-Frage geschrieben.
Bei mir steht z Bsp in Zelle F21 diese Formel
=TEILERGEBNIS(109;F3:F20)
als Ergebnis wird #Wert angezeigt.
Das liegt daran, dass mein Excel (XP) als ersten Parameter nur die Werte 1-11 aber NICHT 109 zulässt.
Nun bin ich verwirrt, weil du halt nicht alle Fragen beantwortet hast, und warte erst mal auf deine Antwort.
Ciao
Thorsten
Anzeige
AW: Korrektur
02.11.2009 16:40:11
btc
Hi Thorsten!
Danke nochmal für deine erneute Mühe. Ich wollte hier nicht unnötige Dinge schreiben, wenn ich nichts daran ändern wollte, darum habe ich den komplett gewünschten Ablauf nicht hier genannt. Der wäre:
Bei Klick auf CommandButton1:
-Nach erfolgreicher Überprüfung auf Name des Gerichts(A1), Daten in der Artikelspalte und eventuell schon vorhandener Kalkulation läuft das Makro weiter
-Das Sheet 'Vorlage' wird nach hinten kopiert, der Button wird entfernt, das neue Sheet bekommt den Namen des Gerichts, wie in Zelle A1 genannt
-Ins Sheet "Preisempfehlungen" wird der Name des Gerichts und der Wert der Zelle G26(kalkulierter Bruttoverkaufspreis) kopiert
-alle noch nicht hinterlegten Artikel werden mit Einheit, Preis und prozentualem Schwund in der Liste 'Preisliste' hinterlegt
-Das Sheet 'Vorlage' wird geleert bzw. zurückgesetzt
Bei Klick auf 'als Beilage auslesen' soll:
-der Name (A1) mit einem Sternchen vorher versehen werden
-die kalkulierten Gesamtkosten als Preis, "BEIL" als Einheit und "5%" als Schwund in 'Preisliste' hinterlegt werden
-die Artikel der 'Preisliste' sollen alphabetisch sortiert werden
Sinn hier ist, dass man bei einer Kalkulation eines Hauptgerichts vorher kalkulierte Beilagen direkt übernehmen kann. Das Sternchen soll garantieren, dass die kalkulierten Beilagen ganz oben im Dropdown erscheinen
Das meiste davon habe ich irgendwie hinbekommen, mein Problem war ja das zu Beginn geschilderte.
Zu den Fragen:
-Das mit den 'Preisempfehlungen übertragen' war eine Teilaufgabe meines Codes, funktioniert jetzt wieder.
Da du ja bei meinem Code nix geändert hattest, ist das evtl. eine Diskrepanz zwischen deiner Officeversion und meiner. Aber jetzt läufts ja.
-die Formel
=TEILERGEBNIS(109;F3:F20)
war mir gar nicht aufgefallen. Eigentlich sollten da nur die Werte darüber per SUMME zusammengezählt werden. Warum beim Klick auf das Summenzeichen plötzlich die o.g. Formel drinsteht, weiß ich leider auch nicht.
Zum neuen Code:
Danke, das Ganze funktioniert nahezu perfekt, bis auf eine Kleinigkeit.
In den letzten beiden Zeilen meiner Tabelle in 'Vorlage' sind folgende Werte:
-in der Zelle A21 'Gesamtpreis/100 Portionen' und in A22 'Gesamtpreis pro Portion'.
Diese zwei Zeilen sind Ergebniszeilen, keine zu übernehmenden Artikel. Wenn ich momentan das Makro 'auslöse', erscheinen aber im Sheet 'Preisliste' als letztes die beiden Zeilen 'Gesamtpreis/100 Portionen' und 'Gesamtpreis pro Portion'. Ist es möglich, diese beiden letzten Zeilen beim Übertragen 'auszuschließen'? Also quasi nur die 'echten' Artikel in Zeile 3 bis 20?
Das wärs dann eigentlich schon. Wie gesagt, der Rest funktioniert super, herzlichsten Dank, und hoffentlich habe ich diesmal nichts vergessen.
Gruß
Michael
Anzeige
AW: Korrektur
02.11.2009 19:27:06
Oberschlumpf
Hi Michael
zu deinem Problem:
In den letzten beiden Zeilen meiner Tabelle in 'Vorlage' sind folgende Werte:
-in der Zelle A21 'Gesamtpreis/100 Portionen' und in A22 'Gesamtpreis pro Portion'.

Kann es vielleicht sein, dass wir beide nicht das Gleiche sehen?
Will sagen, kann es sein, dass deis sein, dass deine Originaldatei etwas anders aussieht als deine hier gezeigte Bsp-Datei, mit der ich arbeite?
Das hier sehe ich auf meinem Monitor
(Bild anklicken, wird dann größer in neuem Fenster/Tab)
Userbild

Wie du sehen kannst, sind in der Spalte B nur die Mengenangaben zu sehen.
Und deswegen überprüft mein Code alle Eintragungen der Tabelle, bis in Spalte B der letzte Eintrag erreicht ist.
Dadurch werden hier bei mir in der Preisliste auch nur die Artikel angezeigt, und keine weiteren Einträge sonst.
In Spalte B dürfen also außer die Mengen keine weiteren Angben stehen.
Kann es daher vielleicht also sein, dass in deiner Originaldatei in Spalte B unterhalb der Mengen noch weitere Einträge sind?
Ich kann das von dir beschriebene Problem jedenfalls nicht nachvollziehen, da in der Datei, mit der ich hier arbeite wirklich nur die Artikel in die Preisliste übertraegn werden.
Du schreibst:
-die Artikel der 'Preisliste' sollen alphabetisch sortiert werden
Tja, das lese ich jetzt das erste Mal, aber so unwichtig war diese Info nicht.
(habe gerade extra noch mal all deine Beiträge nach "sortiert" durchgelesen)
Denn angenommen,...
...du klickst zuerst auf den ovalen Button
...dann steht in der Preisliste nur die Beilage Kart.salat
...wenn du erst jetzt auf den oberen Button klickst
...werden erst jetzt die fehlenden Artikel in die Preisliste übertragen - unsortiert!
...zum Sortieren müsstest du noch mal auf den ovalen Button klicken - aber dann steht die Beilage Kart.salat jetzt 2x drin
Ich habe den Code für den oberen Button jetzt so umgeschrieben, dass auch hier direkt nach Eintragung der Artikel in Preisliste selbige sortiert werden.
Und jetzt zum Thema "welche Infos erzählt der Fragende/welche nicht"
Du musst dich mal in die Lage eines Antwortenden versetzen.
Er sieht die Frage, und mit gaaanz viel Glück gibt es auch ne Bsp-Datei.
Der vielleicht-Antworter weiß aber nicht,...
...was der Fragende denkt (so lange er es nicht schreibt/sagt)
...kann nur mit der Bsp-Datei arbeiten, was aber nicht bedeuten muss, dass die immer mit dem Original identisch ist
...kann definitiv nur mit den Zusatz-Infos des Fragenden arbeiten, auch wenn der Fragende etwas Entscheidendes vergessen hat zu erwähnen
Ich hoffe jetzt jedenfalls, dass mein nächster Versuch
https://www.herber.de/bbs/user/65542.xls
all deine Fragen, dessen Lösung du nicht selbst wusstest, beantwortet sind.
Is jetzt nich böse gemeint, aber
Wer eine qualifizierte Antwort erwartet/erhofft, muss eine qualifizierte Frage stellen.
Ciao & neugierig auf Antwort :)
Thorsten
Anzeige
AW: Korrektur
03.11.2009 16:34:33
btc
Hi Thorsten!
Vielen Dank, dass du dich auch um die Sortierung gekümmert hast. Ich wollte nicht auch noch danach fragen, weil ich mir ja schon selber was halbwegs funktionierendes zusammengebastelt hatte. Und ohne eigene Anstrengung und Überlegung hier ein leeres File nach dem Schema "Macht ihr mal!" reinzuposten wollte ich einfach nicht.
Anscheinend gibt es wirklich einen hier relevanten Unterschied in den Officeversionen. Meine Tabelle sieht so aus:
http://img171.imageshack.us/img171/5132/excelscreen1.jpg
Auch bei mir stehen in Spalte B keine Werte oder Formeln in den Zeilen 21 und 22, trotzdem kopiert mir meine Version diese beiden Einträge mit. Sieht dann so aus:
http://img266.imageshack.us/img266/5830/excelscreen3.jpg
Kann es sein, dass beim Speichern in das 2003er Format relevante Formatierungen verloren gehen? Bei deinem Screenshot sehe ich gar keine Tabelle, aber bei mir ist auch in der 2003er Version eine zu sehen.
Normalerweise würde ich auch selbst mal suchen wollen, wo der Code genau was macht, aber das kann ich bei deinen Codes teilweise nur erahnen, weil die für mein Grundwissen einfach viel zu fortgeschritten sind. Dagegen wirken meine Selbstversuche wie ein Kindermalbuch gegen den Louvre.
Ich versuche, meine nächste Frage etwas präziser zu strukturieren. Jetzt weiß ich ja schon etwas besser, worauf es ankommt. :)
Gruß
Michael
Anzeige
AW: Korrektur
03.11.2009 17:18:33
Oberschlumpf
Hi Michael
Hab nur n paar Min Zeit.
Warum die 2003er-Version keine Rahmen/Zellhintergrund-Fornatierung speichert, bzw diese bei mir nicht anzeigt, weiß ich leider auch nicht.
Aber ob mit oder ohne Farbe, das ist egal, da Excel Farbe nicht als Zellinhalt interpretiert.
Versuch mal das
Tausche diesen Code
        For liVor = 3 To lShVor.Cells(Rows.Count, 2).End(xlUp).Row
For liPreis = 2 To lShPreis.Cells(Rows.Count, 1).End(xlUp).Row
If lShVor.Range("A" & liVor).Value = lShPreis.Range("A" & liPreis).Value  _
Then
lboTreffer = True
Exit For
End If
Next
If lboTreffer = True Then
lboTreffer = False
Else
liNext = lShPreis.Cells(Rows.Count, 1).End(xlUp).Row + 1
lShPreis.Range("A" & liNext).Value = lShVor.Range("A" & liVor).Value
lShPreis.Range("B" & liNext).Value = lShVor.Range("C" & liVor).Value
lShPreis.Range("C" & liNext).Value = lShVor.Range("D" & liVor).Value
lShPreis.Range("D" & liNext).Value = lShVor.Range("E" & liVor).Value
End If
Next

aus gegen diesen:
        For liVor = 3 To lShVor.Cells(Rows.Count, 2).End(xlUp).Row
If lShVor.Range("B" & liVor).Value  "" Then
For liPreis = 2 To lShPreis.Cells(Rows.Count, 1).End(xlUp).Row
If lShVor.Range("A" & liVor).Value = lShPreis.Range("A" & liPreis).Value  _
Then
lboTreffer = True
Exit For
End If
Next
If lboTreffer = True Then
lboTreffer = False
Else
liNext = lShPreis.Cells(Rows.Count, 1).End(xlUp).Row + 1
lShPreis.Range("A" & liNext).Value = lShVor.Range("A" & liVor).Value
lShPreis.Range("B" & liNext).Value = lShVor.Range("C" & liVor).Value
lShPreis.Range("C" & liNext).Value = lShVor.Range("D" & liVor).Value
lShPreis.Range("D" & liNext).Value = lShVor.Range("E" & liVor).Value
End If
End If
Next

Mit dem neuen Code wird jetzt nicht nur bis zur letzten benutzten Zeile in Spalte B der Vorlage gesucht, sondern es wird zusätzlich nur so lange gesucht, bis in Spalte B eine Zelle OHNE Inhalt gefunden wird.
Und wenn das auch nix hilft...tja...dann musst du uns genau DIE Datei zeigen, in der der Fehler auftritt.
Und wenn es sich auch noch "nur" um die Testdatei handelt, die auch ich bearbeite, dann liegt es wirklich an XL 2007 und XL XP - aber DAS glaube ich eigtl nicht.
Und ich nehme meinen "Schuss" aus der letzten Message ein wenig zurück.
Ja, du hast Recht...wenn man etwas nicht kennt, dann kann man auch Fehler machen...kommt leider vor, dass ich das hin und wieder vergesse...sry
Ciao
Thorsten
Anzeige
AW: Korrektur
03.11.2009 21:23:13
btc
Hi Thorsten!
Danke, jetzt funktionierts wie gewünscht! :)
Gruß
Michael

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige