Discussion:
VBA-Makro erstellen HILFE!
(zu alt für eine Antwort)
Kevin "Keegan" Ganz
2007-02-05 09:26:01 UTC
Permalink
Hallo NG members,

hab ein großes Problem und benötige Hilfe beim erstellen von Makros, zumal
ich nur einen kleinen schimmer davon habe. Ich möchte aus 2 Exceldateien
bestimmte
Daten rauslesen und in einer 3. Exceldatei dann diese Daten wiedergeben.
Also genau gesagt: Ich ziehe mir eine Produktionsliste aus SAP als
Excelformat raus. In der Liste stehen Produktionstart /-ende, zu fertigendes
Material, Auftragsnummer, Bedarfsmenge, Einheit.
Zur besseren Verständnis:

Spalte B Spalte C Spalte D Spalte E Spalte F
Spalte G

A1 Start Prod. Ende Prod. Material Auftragsnr Menge Einheit
A2 26.01.07 30.01.07 A 1234 200 St.
A3 26.01.07 01.02.07 B 5678 300 St.
A4 26.01.07 05.02.07 C 9101 150 St.
. . . . .
. .
. . . . .
. .
. . . . .
. .

Merke: In dieser Liste stehen steht Spalte D und Spalte F im Focus!
Dateiname: SAP-Liste

Die zweite Exceldatei ist eine Materialliste, in der hinterlegt ist welche
Vorgänge das Material in der Produktion durchläuft. Diese hat folgender
aufbau:

Spalte B Spalte C Spalte D Spalte E ......... Spalte O

A1 Material Waschen Spülen Zentrieren
A2 C Ja Ja Nein
A3 A Nein Ja Ja
A4 B Ja Nein Nein
. . . . .
. . . . .
. . . . .

Merke: Diese Liste ist Fix alle Daten sind von bedeutung!
Dateiname: Produktionliste


Problem: Aus diesen beiden listen soll nun ein sogenannter Schichtplan
erstellt werden. Die Produktionsliste soll nach den Materialien durchsucht
werden, welche
in der Materialliste vorkommen. Sprich wenn in der Materialliste, Material A
steht und in der Produktionsliste ebenfalls zu finden ist soll aus der
Produktionsliste, die im Focus stehenden Spalten übernommen werden mit den
ganzen Daten aus der Materialliste. Der schichtplan sieht folgender maßen aus.


Spalte B Spalte C Spalte D Spalte E Spalte F
A1 Material Menge Waschen Spülen Zentrieren
A2 A 200 Nein Ja Ja
A3 C 150 Ja Ja Nein

Dateiname: Schichtplan

Ich hoffe ich konnte euch das Problem gut genug schildern. Hoffe ihr könnt
mir weiterhelfen, wäre echt super. Vielen Dank schon mal im Vorraus.

Gruss Kevin
--
Best regards

Kevin "Keegan" Ganz
Eberhard Funke
2007-02-05 11:45:34 UTC
Permalink
Post by Kevin "Keegan" Ganz
Hallo NG members,
hab ein großes Problem und benötige Hilfe beim erstellen von Makros, zumal
ich nur einen kleinen schimmer davon habe. Ich möchte aus 2 Exceldateien
bestimmte
Daten rauslesen und in einer 3. Exceldatei dann diese Daten wiedergeben.
Also genau gesagt: Ich ziehe mir eine Produktionsliste aus SAP als
Excelformat raus. In der Liste stehen Produktionstart /-ende, zu fertigendes
Material, Auftragsnummer, Bedarfsmenge, Einheit.
Spalte B Spalte C Spalte D Spalte E Spalte F
Spalte G
A1 Start Prod. Ende Prod. Material Auftragsnr Menge Einheit
A2 26.01.07 30.01.07 A 1234 200 St.
A3 26.01.07 01.02.07 B 5678 300 St.
A4 26.01.07 05.02.07 C 9101 150 St.
. . . . .
. .
. . . . .
. .
. . . . .
. .
Merke: In dieser Liste stehen steht Spalte D und Spalte F im Focus!
Dateiname: SAP-Liste
Die zweite Exceldatei ist eine Materialliste, in der hinterlegt ist welche
Vorgänge das Material in der Produktion durchläuft. Diese hat folgender
Spalte B Spalte C Spalte D Spalte E ......... Spalte O
A1 Material Waschen Spülen Zentrieren
A2 C Ja Ja Nein
A3 A Nein Ja Ja
A4 B Ja Nein Nein
. . . . .
. . . . .
. . . . .
Merke: Diese Liste ist Fix alle Daten sind von bedeutung!
Dateiname: Produktionliste
Problem: Aus diesen beiden listen soll nun ein sogenannter Schichtplan
erstellt werden. Die Produktionsliste soll nach den Materialien durchsucht
werden, welche
in der Materialliste vorkommen. Sprich wenn in der Materialliste, Material A
steht und in der Produktionsliste ebenfalls zu finden ist soll aus der
Produktionsliste, die im Focus stehenden Spalten übernommen werden mit den
ganzen Daten aus der Materialliste. Der schichtplan sieht folgender maßen aus.
Spalte B Spalte C Spalte D Spalte E Spalte F
A1 Material Menge Waschen Spülen Zentrieren
A2 A 200 Nein Ja Ja
A3 C 150 Ja Ja Nein
Dateiname: Schichtplan
Ich hoffe ich konnte euch das Problem gut genug schildern. Hoffe ihr könnt
mir weiterhelfen, wäre echt super. Vielen Dank schon mal im Vorraus.
Gruss Kevin
Hallo Kevin,

das lässt sich mit SVERWEIS einfacher lösen als per Makro.

Ich habe im folgenden angenommen, dass Deine Daten jeweils in Spalte A (und
nicht in Spalte B) beginnen.

Kopiere die Daten aus Produktionsliste nach Schichtplan.
Füge vor Spalte B in Schichtplan eine leere Spalte ein.
B2=SVERWEIS(Schichtplan!A2;'SAP-Liste'!C1:E10;2;0)
und runterkopieren bis Datenende.

In den Fällen, wo das Produkt aus Produktionsliste in SAP-Liste nicht
vorkommt, steht jetzt #NV!
Diese Zeilen löschst Du folgendermassen:
Taste F5 --> Inhalte --> Formeln
hier klickst Du alles weg bis auf "Fehler".

Dann Menü Bearbeiten --> Zellen löschen --> "ganze Zeilen" wählen und ok.
--
Mit freundlichen Grüssen Eberhard
XP home XL 2000
Eberhard(punkt)W(punkt)Funke(at)t-online.de
Kevin "Keegan" Ganz
2007-02-05 12:07:00 UTC
Permalink
Danke eberhard für deine schnelle Hilfe. Werde deine Möglichkeit mal austesten.
Vielen Dank für deinen Support.

Gruss Kevin
--
Best regards

Kevin "Keegan" Ganz
Post by Eberhard Funke
Post by Kevin "Keegan" Ganz
Hallo NG members,
hab ein großes Problem und benötige Hilfe beim erstellen von Makros, zumal
ich nur einen kleinen schimmer davon habe. Ich möchte aus 2 Exceldateien
bestimmte
Daten rauslesen und in einer 3. Exceldatei dann diese Daten wiedergeben.
Also genau gesagt: Ich ziehe mir eine Produktionsliste aus SAP als
Excelformat raus. In der Liste stehen Produktionstart /-ende, zu fertigendes
Material, Auftragsnummer, Bedarfsmenge, Einheit.
Spalte B Spalte C Spalte D Spalte E Spalte F
Spalte G
A1 Start Prod. Ende Prod. Material Auftragsnr Menge Einheit
A2 26.01.07 30.01.07 A 1234 200 St.
A3 26.01.07 01.02.07 B 5678 300 St.
A4 26.01.07 05.02.07 C 9101 150 St.
. . . . .
. .
. . . . .
. .
. . . . .
. .
Merke: In dieser Liste stehen steht Spalte D und Spalte F im Focus!
Dateiname: SAP-Liste
Die zweite Exceldatei ist eine Materialliste, in der hinterlegt ist welche
Vorgänge das Material in der Produktion durchläuft. Diese hat folgender
Spalte B Spalte C Spalte D Spalte E ......... Spalte O
A1 Material Waschen Spülen Zentrieren
A2 C Ja Ja Nein
A3 A Nein Ja Ja
A4 B Ja Nein Nein
. . . . .
. . . . .
. . . . .
Merke: Diese Liste ist Fix alle Daten sind von bedeutung!
Dateiname: Produktionliste
Problem: Aus diesen beiden listen soll nun ein sogenannter Schichtplan
erstellt werden. Die Produktionsliste soll nach den Materialien durchsucht
werden, welche
in der Materialliste vorkommen. Sprich wenn in der Materialliste, Material A
steht und in der Produktionsliste ebenfalls zu finden ist soll aus der
Produktionsliste, die im Focus stehenden Spalten übernommen werden mit den
ganzen Daten aus der Materialliste. Der schichtplan sieht folgender maßen aus.
Spalte B Spalte C Spalte D Spalte E Spalte F
A1 Material Menge Waschen Spülen Zentrieren
A2 A 200 Nein Ja Ja
A3 C 150 Ja Ja Nein
Dateiname: Schichtplan
Ich hoffe ich konnte euch das Problem gut genug schildern. Hoffe ihr könnt
mir weiterhelfen, wäre echt super. Vielen Dank schon mal im Vorraus.
Gruss Kevin
Hallo Kevin,
das lässt sich mit SVERWEIS einfacher lösen als per Makro.
Ich habe im folgenden angenommen, dass Deine Daten jeweils in Spalte A (und
nicht in Spalte B) beginnen.
Kopiere die Daten aus Produktionsliste nach Schichtplan.
Füge vor Spalte B in Schichtplan eine leere Spalte ein.
B2=SVERWEIS(Schichtplan!A2;'SAP-Liste'!C1:E10;2;0)
und runterkopieren bis Datenende.
In den Fällen, wo das Produkt aus Produktionsliste in SAP-Liste nicht
vorkommt, steht jetzt #NV!
Taste F5 --> Inhalte --> Formeln
hier klickst Du alles weg bis auf "Fehler".
Dann Menü Bearbeiten --> Zellen löschen --> "ganze Zeilen" wählen und ok.
--
Mit freundlichen Grüssen Eberhard
XP home XL 2000
Eberhard(punkt)W(punkt)Funke(at)t-online.de
Eberhard Funke
2007-02-05 16:50:13 UTC
Permalink
Post by Kevin "Keegan" Ganz
Danke eberhard für deine schnelle Hilfe. Werde deine Möglichkeit mal austesten.
Hallo Kevin,

dann ändere bitte die Formel
Post by Kevin "Keegan" Ganz
Post by Eberhard Funke
B2=SVERWEIS(Schichtplan!A2;'SAP-Liste'!C1:E10;2;0)
ab in:

B2=SVERWEIS(Schichtplan!A2;'SAP-Liste'!C$1:E$10;2;0)

(Natürlich musst Du E$10 auch noch an Deine Zeilenzahl anpassen).
--
Mit freundlichen Grüssen Eberhard
XP home XL 2000
Eberhard(punkt)W(punkt)Funke(at)t-online.de
Oliver
2007-02-05 11:47:57 UTC
Permalink
Hi Kevin,

wenn es nicht unbedingt vba sein muss, hilft auch einfach ein
SVerweis:

Spalte D und F einfach in die Zieltabelle übernehmen und dann drei
weitere Spalten (die relevaten D E und F) aus der Materialtabelle per
Sverweis anziehen:

Dementsprechend für die Spalte Waschen:
=SVERWEIS($A2;Produktionliste !$A:$D;2;FALSCH)

Für die Spalte Spülen:
=SVERWEIS($A2;Produktionliste !$A:$D;3;FALSCH)

und für die Spale Zentrieren:
=SVERWEIS($A2;Produktionliste !$A:$D;4;FALSCH)

Viele Grüße

Oliver
Kevin "Keegan" Ganz
2007-02-05 12:13:01 UTC
Permalink
Hallo Olli,

werde auch deine Alternative Möglichkeit in betracht ziehen und austesten.
Merci, für deine schnellen reply.

Gruss Kevin
--
Best regards

Kevin "Keegan" Ganz
Post by Oliver
Hi Kevin,
wenn es nicht unbedingt vba sein muss, hilft auch einfach ein
Spalte D und F einfach in die Zieltabelle übernehmen und dann drei
weitere Spalten (die relevaten D E und F) aus der Materialtabelle per
=SVERWEIS($A2;Produktionliste !$A:$D;2;FALSCH)
=SVERWEIS($A2;Produktionliste !$A:$D;3;FALSCH)
=SVERWEIS($A2;Produktionliste !$A:$D;4;FALSCH)
Viele Grüße
Oliver
Rainer Blum
2007-02-05 12:05:05 UTC
Permalink
Hallo Kevin,

[...] das bekommst Du auch ohne Makro hin.

Öffne alle drei Dateien in Excel.

In der Mappe Schichtplan stellst Du in A2 einen Bezug zur Produktionsliste
D2 her (Materialname) und E2 (Menge).
Diese Formeln kopierst Du soweit wie nötig nach unten. Damit hast Du
Material und Menge.

In der Mappe Materialliste erstellst Du einen Bereich mit Namen. Einfügen >
Namen > definieren. Z.B. Material.

In E2 der Schichtplanliste gibst Du die Sverweisformel ein:
=Sverweis($D2;[Mappe1]Tabelle1!Material;2;0)

Mappe1 ist der Name Deiner Materialmappe. Tabelle1! bezeichnet Deine Tabelle
und Material ist der benannte Bereich. Achte auf [] !.

Diese Formel kopierst Du zunächst nach rechts (so weit wie nötig) und dann
nach unten. Damit hast Du die zugehörigen Materialeigenheiten.

Aus der Spalte 2 holst Du dir den Wert von Waschen; aus Spalte 3 den von
Spülen etc. 0 bedeutet, dass die Tabelle nicht sortiert vorliegt. Excel
findet somit alle Werte. Ist ein Material nicht vorhanden, kommt es zu #NV.
Fehler: Nicht vorhanden!

Hoffe ich konnte Dir helfen
Viele Grüße
Rainer
Loading...