VBA - prüfen, kopieren und einfügen

Bild

Betrifft: VBA - prüfen, kopieren und einfügen
von: Alex
Geschrieben am: 22.06.2015 10:48:23

Hallo zusammen,
Ich bin ganz neu und brauche für meine Arbeit folgende Hilfestellung, die ich mit normalen Funktionen nicht lösen kann.
Insgesamt müssen drei Sachen geprüft werden und bei Prüfung gewisse Aktionen getätigt werden.
1. Wenn in Spalte A die Zahl 10 steht dann kopiere die Zeile drei mal, ändere den Wert 10 in 20,30 und 40 und verteile den dazugehörigen Wert in Spalte E auf die drei neu generierten Zeilen mit dem Schlüssel 3/6. 2/6, 1/6 ebenfalls in Spalte E.
2.Wenn in Spalte B die ersten zwei Stellen die Zahl "10" herauszulesen ist, dann kopiere die Zeile drei mal, ändere die ersten zwei Stellen in 20,30 und 40 (die restlichen 6 Stellen danach bleiben unberührt) und verteile den dazugehörigen Wert in Spalte E auf die drei neu generierten Zeilen mit dem Schlüssel 3/6. 2/6, 1/6 ebenfalls in Spalte E.
3. Wenn in Spalte A 528 steht, dann kopiere die Zeile drei mal, ändere den Wert 10 in 20,30 und 40 und verteile den dazugehörigen Wert in Spalte E auf die drei neu generierten Zeilen mit einem von mir jeweils einmalig (je Makro-Ausführung) vorgenommenen Schlüssel.
Sind diese Bedingungen nicht gegeben, übernehme diese Zeile einfach. Am besten wäre es, wenn dies alles in einem neuen Tabellenblatt geschieht.
Über Hilfe wäre ich unglaublich dankbar. Falls ich etwas undeutlich geschildert habe, bitte ich das mit meiner Unerfahrenheit bei solchen Problemstellungen zu entschuldigen :-P
Beste Grüße
Alex

Bild

Betrifft: AW: VBA - prüfen, kopieren und einfügen
von: Armin
Geschrieben am: 22.06.2015 12:26:49
Hallo Alex,
zum ersten warum keine Demo-Datei? Zum zweiten ich habe keine Lust die Datei nachzubauen die bei Dir schon existiert.

Bild

Betrifft: AW: VBA - prüfen, kopieren und einfügen
von: Alex
Geschrieben am: 23.06.2015 06:49:40
Hallo,
der unten angegebene Link führt zur Demo-Datei.
Beste Grüße
https://www.herber.de/bbs/user/98397.xlsx

Bild

Betrifft: AW: VBA - prüfen, kopieren und einfügen
von: Armin
Geschrieben am: 23.06.2015 08:30:03
Hallo Alex,
Frage was heißt "dazugehörigen Wert" Spalte D oder G?
1. Wenn in Spalte A die Zahl 10 steht dann kopiere die Zeile drei mal, ändere den Wert 10 in 20,30 und 40 und verteile den dazugehörigen Wert in Spalte E auf die drei neu generierten Zeilen mit dem Schlüssel 3/6. 2/6, 1/6 ebenfalls in Spalte E.
Gruß Armin

Bild

Betrifft: AW: VBA - prüfen, kopieren und einfügen
von: Armin
Geschrieben am: 23.06.2015 09:19:37
Hallo Alex,
weitere Fragen können die Ereignisse in einer Zeile mehrfach auftreten?
D.h.: Spalte A=10 , Spalte B=10334 ? zwei Ereignisse in einer Zeile?
Gruß Armin

Bild

Betrifft: AW: VBA - prüfen, kopieren und einfügen
von: Alex
Geschrieben am: 23.06.2015 10:31:14
Hallo Armin,
vielen lieben Dank erstmal, dass du dich dieser Fragestellung annimmst und mir helfen möchtest :-)
Ich Trottel habe die Demo-Datei nicht 100% gleich der Beschreibung aufgebaut-.-
Also mit der in der Beschreibung erwähnten "Spalte E" ist in der Demo-Datei die Spalte G gemeint, das hast du schon richtig erkannt. Und mit Spalte A ist dann Spalte D gemeint.
Mit dem "dazugehörigen Wert" ist Spalte G gemeint. Ursprung war z.B. 50 in Spalte G, daraus werden jetzt in einem neuen Tabellenblatt drei Zeilen, die sich auf 25(50*3/6), 16,67 (50*2/6) und 8,33 (50*1/6)in Spalte G aufteilen. (natürlich müssen noch die anderen Spalten der drei Zeilen mitkopiert werden und in Spalte D noch die Änderung vorgenommen werden. (aus 10 wird 20,30 und 40)
Zu deiner anderen Frage:
In Spalte D kann die "10" sowohl alleine stehen (Spalte C ist leer) als auch in Verbindung mit der 8-stelligen Nummer in Spalte C, bei der an Stelle 3 und 4 die ebenfalls zu berücksichtigende Nummer "10" stehen könnte.
Somit sind m.E. zwei Ereignisse in einer Zeile möglich.
Ich hoffe, ich konnte meine wirren Gedanken klar genug zum Ausdruck bringen.
Beste Grüße
Alex

Bild

Betrifft: AW: VBA - prüfen, kopieren und einfügen
von: Armin
Geschrieben am: 23.06.2015 13:16:12
Hallo Alex,
noch nicht ganz leider wiederspricht sich eine Aussage.
Im Orig. heißt es 2.Wenn in Spalte B die ersten zwei Stellen die Zahl "10" herauszulesen ist
im zweiten Teil
auch in Verbindung mit der 8-stelligen Nummer in Spalte C, bei der an Stelle 3 und 4 die ebenfalls zu berücksichtigende Nummer "10" stehen könnte
Mal abesehen von der Spalte B & C Verwechselung stimmt auch das andere nicht überein. Steht die Zahl 10 nun an der Stelle 1+2 oder 3+4?

Bild

Betrifft: AW: VBA - prüfen, kopieren und einfügen
von: Alex
Geschrieben am: 23.06.2015 13:37:47
Hallo Armin,
eigentlich dachte ich dies in meiner Nachricht untergebracht zu haben, scheinbar war es der Post, der durch eine Zeitüberschreitung nicht gepostet wurde.
Genau, nicht Stelle 1+2, sondern Stelle 3+4 ist wichtig. Genauso wie Spalte C von Bedeutung ist und nicht wie irrtümlicherweise im Ursprung geschildert Spalte B.
Daaaanke!

Bild

Betrifft: AW: VBA - prüfen, kopieren und einfügen
von: Armin
Geschrieben am: 23.06.2015 14:33:14
Hallo Alex,
also sehen wir mal ob das so geht was Du Dir so vorgestellt hast.
Die Tabelle "Analyse" habe ich neu angelegt. Irgent wo hin muss das Ganze ja.
Also teste mal.
https://www.herber.de/bbs/user/98407.xlsm
Gruß Armin

Bild

Betrifft: AW: VBA - prüfen, kopieren und einfügen
von: Alex
Geschrieben am: 23.06.2015 15:37:45
Hallo Armin,
Das sieht schon wirklich super aus - ich bin begeistert :-)
Großes Lob! Würde gerne alles verstehen, aber bei manchen Zeilen komme ich leider nicht ganz hinterher...(Hast du eine Empfehlung für ein nettes Buch oder ähnliches?)
Was noch nicht ganz passt, sind die Stellen 3+4 der 8-stelligen Nummern in Spalte C, die, wenn eine 10 dort ersichtlich ist, ebenfalls wie die 10 in Spalte D, in 20,30 und 40 angepasst werden müssen.

Bild

Betrifft: AW: VBA - prüfen, kopieren und einfügen
von: Armin
Geschrieben am: 23.06.2015 16:48:13
Hallo Alex,
kann ich nicht nachvollziehen, bei mir funktioniert die Selection z.Bsp. 20109000 da wird die 10 erkannt!
Sie mus jedoch an der 3+4 Stelle stehen!
Gruß Armin

Bild

Betrifft: AW: VBA - prüfen, kopieren und einfügen
von: Alex
Geschrieben am: 23.06.2015 16:53:39
Hallöchen,
abolut richtig, die Zahl soll jedoch nicht nur erkannt werden, sondern auch auf 20,30 und 40 an der 3+4 Stelle anstatt der dort gefundenen 10 angepasst werden.
Beste Grüße
Alex

Bild

Betrifft: AW: VBA - prüfen, kopieren und einfügen
von: Armin
Geschrieben am: 23.06.2015 18:34:33
Hallo Alex,
so war das mir leider nicht klar das die Nummer selbst angepasst werden soll!
Aber mit mir kann man ja "reden".
Also ich habe auch diesen Part noch eingebaut. Schaun wir mal.
https://www.herber.de/bbs/user/98414.xlsm
schönen Abend und Grüße aus Nürnberg
Armin

Bild

Betrifft: AW: VBA - prüfen, kopieren und einfügen
von: Alex
Geschrieben am: 24.06.2015 08:19:13
Hallo Armin,
danke für die Anpassung. Bin mir nicht sicher, ich glaube aber, dass dies leider nur für die ersten Zeilen greift, da etwas weiter unten weiterhin die 10 in Spalte C an der 3+4 Stelle steht, anstatt 20,30,40 wie in Spalte D. Siehe Bild.
Userbild
Beste Grüße aus dem Ruhrgebiet
Alex

Bild

Betrifft: AW: VBA - prüfen, kopieren und einfügen
von: Armin
Geschrieben am: 24.06.2015 11:40:24
Hallo Alex,
ok jetzt habe ich noch eine Änderung vorgenommen. Das kam zu stande das die erste 10 Spalte D höhere Prio hatte und damit die Änderung nicht mehr vorenommen wurde. Ich frage jetzt anders ab. Schau mal ob jetzt alles richtig läuft.
https://www.herber.de/bbs/user/98429.xlsm
Gruß Armin

Bild

Betrifft: AW: VBA - prüfen, kopieren und einfügen
von: Alex
Geschrieben am: 26.06.2015 14:18:36
Hallo Armin,
danke das funktioniert jetzt. Allerdings ist mir bei der Prüfung folgende Problematik aufgefallen.
Eigentlich soll in Spalte D geprüft werden ob Nummer 528 vorliegt. Ist dies der Fall soll die in der gleichen Zeile stehende Zahl mit einem von mir einzugebenden Schlüssel multipliziert bzw. dividiert werden.
Daher zuerst die Frage, ob bei der Abfrage dividiert oder multipliziert wird. Soll ich also 0,5 0,4 0,1 oder 5 4 1 als Verteilungsschlüssel nehmen?

Bei Eingabe des Schlüssels 0,5, 0,4, 0,1 wird bei der Abfrage die Spalte G übernommen und für 528 steht die Zahl 40 . Für die anderen beiden, also 20 und 30, erfolgt eine Multiplikation des Ursprungswertes in Spalte G.
Vielen Dank und schöne Grüße
Alex

Bild

Betrifft: AW: VBA - prüfen, kopieren und einfügen
von: Armin
Geschrieben am: 26.06.2015 16:17:09
Hallo Alex,
zur Zeit wird multipliziert. Wenn man div. müssen zusätzliche Abfragen eingebaut werden! Wegen null.
Wert1 bezieht sich auf 20, Wert2 auf 30 usw.
Falls die Zuordnung anders sein soll kannst Du das ja leicht ändern. Schau die den Code an.
frm_Faktor.W1.Value ist Wert1 und wird bei 20 benutzt.
Falls Du nicht klar kommst melde Dich.
Gruß Armin

 Bild

Beiträge aus den Excel-Beispielen zum Thema "VBA - prüfen, kopieren und einfügen"