Hallöchen,
kommt mal wieder runter, es gibt schlimmeres :100:
@Pirat, Deine Beschreibung und Dein Beispiel sind nicht einfach zu verstehen.
Zitat:Hier gibt der User seinen Wert ein, also Daten8 (und zwar nur die "Funktionsnummer")
Der User gibt hier nicht Daten8 ein, sondern z.B. PS023 und das Programm muss, wie Du weiter beschreibst, wegen der 5-stelligen Eingabe die Eingabe Daten8 zuordnen.
Zitat:oder Daten18 (Materialnummer kann Kombination von Buchstaben und Zahlen sein oder nur Zahlen)
Was ist, wenn der user nur 5 Stellen eingibt? Dann wird Daten8 überschrieben, falls das überhaupt dort eingetragen werden soll - siehe meine Sätze weiter unten.
Zitat:Daten30 (Bestellnummer kann verschieden länge haben ist aber immer nummerisch).
Wenn Daten18 nur Zahlen hat, woher weiß Excel, dass es sich um Daten30 handeln soll und nicht um Daten18? Aber eventuell ist das auch egal, siehe weiter unten ...
Ich könnte mir jetzt vorstellen, dass die Eingaben 8/18/30 der Reihe nach erfolgen, aber dann bräuchte man keine Prüfung.
Ist eigentlich die Zuordnung innerhalb einer Zeile wichtig? Es könnte ja sein, dass die Daten von 18 und 30 zu 8 passen müssen. Der Anwender könnte aber von der Reihenfolge abweichen und z.B. erst PS023 eingeben, dann PK011, dann vielleicht die Zahlenkombination für BA716 wo noch nicht klar ist, ob die in die 18 oder 30 kommt, und dann gibt er BA716 ein ... Und wenn er dann noch 5 Zahlen eingibt, die eigentlich zur 30 sollen, würden die unter der 8 eingetragen
Wenn Du was beschreibst bzw. entwickelst solltest Du nicht nur Deine Vorgehensweise betrachten sondern auch alle Möglichkeiten durchgehen, die man als "unwissender" Anwender falsch machen könnte. Eventuell kommst Du dadurch schon zu einer anderen Vorgehensweise.
Ich könnte mir z.B. vorstellen, dass Du eine Userform mit 3 Textboxen für die 3 Felder erstellst. Wenn Die Daten zu den 3 Feldern nicht gleichzeitig vorliegen, könnte man zwischen einer Neuanlage und einer Änderung einer Zeile differenzieren. Dazu wäre z.B. eine Combobox oder Listbox interessant, wo Du die Zeile auswählen kannst.
Allerdings lässt mich der weitere Verlauf Deiner Beschreibung zweifeln, ob die Daten überhaupt in die Tabelle eingetragen werden sollen.
Zitat:Das Excel muss sich jetzt diesen Wert speichern.
Beim betätigen des OK, kommt eine zweite Userform (Habe ja dies bereits gemacht) wo der User seine eMail Adresse eingeben soll.
Diese email muss ja auch irgendwie zwischen gespeichert werden.
Für die e-mail-Adresse ist nicht ersichtlich, wo die gespeichert werden soll. Das sich Excel einen Wert speichern soll, klingt auch nicht unbedingt, als ob der unter Daten8, 18 oder 30 eingetragen werden soll.
Ich könnte nun vermuten, dass die beiden Angaben z.B. auch in A1 und A2 gespeichert werden können und es ausreicht, erst beim Datenimport den gespeicherten Wert mit den Daten zu verglichen.
Du merkst, ich kenne und verstehe das auch nicht
und wenn ich Deinem Rat folgen würde, dürfte ich das nicht schreiben ...
Hier mal ein Formelansatz um festzustellen, ob Daten vorhanden sind. Der "Suchbegriff" wird in Spalte A eingetragen - könnte auch auf einer anderen Tabelle sein. In B wird geschaut, ob bzw. in welcher Zeile ab Zeile 16 es den in 8, 18 oder 30 gibt. In C wird dann die Anzahl der Einträge in den 3 Zellen der gefundenen Zeile gezählt. Steht dort 3, ist alles da. Steht dort 15, gibt es den Begriff nicht (hier werden die Überschriften gezählt), steht dort 1 oder 2, fehlen noch Daten. In Spalte D könnte man die E-Mail-Adresse eintragen.
Arbeitsblatt mit dem Namen 'Tabelle1' |
| A | B | C |
1 | PS023 | 1 | 3 |
2 | PS024 | 0 | 15 |
Zelle | Formel |
B1 | =WENNFEHLER(VERGLEICH(A1;$H$16:$H$20;0);WENNFEHLER(VERGLEICH(A1;$R$16:$R$20;0);WENNFEHLER(VERGLEICH(A1;$AD$16:$AD$20;0);0))) |
C1 | =ANZAHL2(INDEX(($H$16:$H$20);B1))+ANZAHL2(INDEX(($R$16:$R$20);B1))+ANZAHL2(INDEX(($AD$16:$AD$20);B1)) |
Verwendete Systemkomponenten: [Windows (32-bit) NT 10.00] MS Excel 2016 |
Diese Tabelle wurde mit Tab2Html (v2.6.2) erstellt. ©Gerd alias Bamberg |
Dann könnte man einen Button erstellen wo ein Makro zur Auslösung der E-Mail hinterlegt ist. Das Makro schaut dann, ob oben in C1 bis Cx eine 3 steht und erstellt dann die zugehörige E-Mail. ... und sollte dann ggf. auch den Eintrag löschen. Das würde ich aber noch mit einer Sicherheitsabfrage ergänzen. Falls das Senden nicht klappt, sollte der Eintrag doch lieber stehen bleiben.