Autor
|
Thema: Umbauen in Excel (1126 mal gelesen)
|
LedZep84 Mitglied
Beiträge: 3 Registriert: 17.01.2008
|
erstellt am: 17. Jan. 2008 11:05 <-- editieren / zitieren --> Unities abgeben:
Ich brauche mal eure Unterstützung für ein Excel Makro. Ich habe einen elektronischen Katalog in Excel mit folgenden Spalten: Beschreibung, Artikelnummer, Preis, Menge etc. Für mengenabhängige Preise gibt es zusätzlich die Spalten Mengenvariante1, Mengenvariante2, Mengenvariante3, Preisvariante1, Preisvariante2, Preisvariante3. Mengenvariante(x) bezieht sich auf Preisvariante(x). Mengenvariante(x) stellt die jeweilige Mengenuntergrenze dar, ab der die Preisvariante(x) gilt. Beispiel: Bei Mengenvariante1=1, Mengenvariante2=10 und Preisvariante1=20, Preisvariante2=10 würde das bedeuten, ab 1 Stück gilt der Preis 20¤ und ab 10 Stück der Preis 10¤. Ich habe das auch nochmal als Screenshot eingefügt, damit ihr seht, wie das in Excel aussieht. Problem jetzt, es muss so unformatiert werden, dass ich für jede Mengenvariante eine extra Zeile habe. D.h. für das Beipsiel oben, müsste es die Zeile nocheinmal kopieren, da ich ja 2 Mengenvarianten habe und in der jeder Zeile den Preis in die Spalte "Preis" eintragen und die dazugehörige Mengenunterschranke die Spalte "Mengenvariante". Ich hoffe ich hab das verständlich erklärt und ihr könnt mir weiterhelfen. Danke und schönen Gruß. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
LedZep84 Mitglied
Beiträge: 3 Registriert: 17.01.2008
|
erstellt am: 17. Jan. 2008 11:13 <-- editieren / zitieren --> Unities abgeben:
|
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 17. Jan. 2008 11:36 <-- editieren / zitieren --> Unities abgeben: Nur für LedZep84
|
LedZep84 Mitglied
Beiträge: 3 Registriert: 17.01.2008
|
erstellt am: 17. Jan. 2008 14:46 <-- editieren / zitieren --> Unities abgeben:
Ok, vielleicht hast du recht. Sorry. Das Problem ist, ich habe noch nicht viel mit VBA gemacht, also auch nicht mit Makro aufzeichnen. Nicht das ich grundsätzlich ein Problem mit dem Programmieren habe, habe schon viel in Turbo Pascal und C++ gemacht, allerdings eben nicht in VBA. Da ich keine Kenntnis der Syntax habe, kann ich dir auch nichts in VBA anbieten. Was ich aber tun kann, ist einen Strukturplan zu erstellen. Sprich ich kann den genauen Ablauf sagen. Nur in VBA umsetzen kann ich leider nicht. Makro aufzeichnen bringt da nicht viel, da ich dort keine Schleien, Bedingungen einbauen kann. Also das Makro müsstre folgendes tun Das muss für jede Zeile durchlaufen werden 1. In der Zeile prüfen, ob in der Spalte Mengeneinheit1 etwas steht bzw. "1" ist (also <>0) --> wenn dies so ist, ist die Bedingungen erfüllt und wir haben Staffelpreise in dieser Zeile 2. Dann prüfen wieviele Mengenpreise, d.h. wenn die Spalte "Mengenvariante1"<>0, wiviele Spalten(n) nach rechts(Mengenvariante2, Mengenvariante3 etc) sind auch <>0 3. Die Zeile dann (n-1) mal untereinander kopieren 4. die Orginalzeile bleibt unverändert. In die kopierten Zeilen immer die entsprechenden Preise, Mengenunterschranken eintragen. Beispiel: Zeile 2 in die Spalte "Preis" die "Preisvariante2" aus der Orginalzeile eintragen und die entsprechende Mengenunterschranke in die Spalte "Mengenvariante1" kopieren. Das für alle kopierten wiederholen. Die Mengenunterschranken stehen somit alle untereinander in der Spalte "Mengenvariante1". 5. So alle Zeilen durchlaufen und zum Schluss die Spalte "Mengenvariante1" in "Mengenvariante" umbenennen und alle Spalten die weiter rechts (Mengenvariante2, Mengenvariante3, Preisvariante1, Preisariante2....etc.) löschen. 6. Fertig. Wie gesagt, der Ablaufplan passt soweit. Es muss eben nur umgestzt werden. Wäre deshalb schön wenn mir jemand was anbieten könnte. Muss ja nicht perfekt sein, aber ein paar Befehle und einen Ansatz wäre schon hilfreich. Danke.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 17. Jan. 2008 15:09 <-- editieren / zitieren --> Unities abgeben: Nur für LedZep84
Zitat: ... da ich dort keine Schleien, Bedingungen einbauen kann
Guck' mal in den Nachbarbeitrag, was carsten-3m dazu schreibt. Mir fehlt momentan die Zeit, entschuldige. Irgendwo solltest Du schon selbst mal anfangen, z.B. mit dem Makrorecorder. Der bringt sehr wohl was, gerade am Anfang. Es ist IMHO ein wenig dekadent zu sagen, Makro aufzeichnen bringt nix, wenn man's nicht einmal versucht hat. SCNR [Edit] Statt "Goodbye, Lenin": Ein paar Ansätze. Code: Option ExplicitSub Einzelteile() Dim i As Integer 'eine Variable Dim n As Integer 'noch eine 'zu 1) If Range("B2") = "" Then 'Bedingung prüfen MsgBox "Zelle B2 ist leer" 'mach' was ElseIf Range("B2") = 0 Then 'sonst... MsgBox "B2 = 0" 'mach' was anderes End If 'zu 2) n = 1 If Range("B2").Offset(0, 1) = "" Then MsgBox "Rechts von B2 steht nix." For i = 1 To Range("B2").CurrentRegion.Count 'End(xlToRight) If Range("B2").Offset(0, i) <> "" Then n = 1 + n End If Next i MsgBox n & " Spalten ab B2" 'zu 3) For i = 1 To n Range("B2").EntireRow.Copy Range("B2").Offset(i, 0).EntireRow.PasteSpecial Next i Application.CutCopyMode = False Range("B2").Select 'zu 4) Range("C3").Copy Range("D4").PasteSpecial Range("D5") = "Preis in D5" 'zu 5) Columns(4).EntireColumn.Delete 'zu 6) MsgBox "Erledigt", vbOKOnly + vbInformation, "Hinweis" End Sub
[/Edit] ------------------ DIN1055.de | Lastannahmen für Anwender[Diese Nachricht wurde von Paulchen am 19. Jan. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|