folgendes Problem: in der Spalte A sind mehrere Kauf-Preise und in der Spalte B mehrere Verkaufs-Preise angegeben. Zu jedem ersten Kaufpreis gehört der erste Verkaufspreis und zu jedem ersten Verkaufspreis gehört der erste Kaufpreis. Im Bild habe ich die Zugehörigkeit der Kauf- und Verkaufspreise durch Pfeile markiert. Die durchgestrichenen und nicht passenden Zellen müssen gelöscht werden. Hinweis: beide Spalten enhalten Formeln (Wenn-Funktionen). Habt Ihr eine Idee, wie ich das machen kann?
mit Formeln kenne ich mich nicht aus, wage aber zu sagen: Bei so einem Durcheinander einer Tabelle werden auch die besten Formelprofis kaum einen Sinn hineinbekommen, was da zusammengehört, und was gelöscht werden muss?? Auch per VBA mach ich mir keinen Kopf das zu lösen. Diese Zuordnung kann nur derjenige kennen und auswerten, der mit eurer Preisliste vertraut ist. Sein Auge kann das sehen, wir können nur "Raetselraten" spielen!
erst mal einfach mit Eintragung der bleibenden Zeilen in einer Hilfsspalte - hier C Du kannst dann nach den Zellen ohne x in Spalte C filtern - also den leeren, und diese löschen. Im Anschluss müsstest Du nur noch die Zahlen zusammenziehen
Code:
Sub test() 'Variablendeklarationen Dim iCnt%, bo_A As Boolean 'in Startzeile - C2 "x" eintragen Cells(2, 3) = "x" 'x eingetragen fuer Spalte A merken bo_A = True 'Schleife bis Zeile 20 - Zahl anpassen! For iCnt = 3 To 20 'wenn in B was > 0 steht und "x" gemerkt wurde, dann If Cells(iCnt, 2) > 0 And bo_A = True Then 'x eintragen Cells(iCnt, 3) = "x" 'x fuer Spalte A nicht mehr merken bo_A = False 'oder wenn in A was > 0 steht und "x" nicht mehr gemerkt wurde, dann ElseIf Cells(iCnt, 1) > 0 And bo_A = False Then 'x eintragen Cells(iCnt, 3) = "x" 'x eingetragen fuer Spalte A merken bo_A = True 'Ende wenn in B was > 0 steht ... End If Next End Sub
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Zunächst vielen Dank Andre für deinen Vorschlag, aber: Habe ich dich richtig verstanden, dass ich die Zellen, die ich benötige manuell in die Spalte C kopiere und anschließend die leeren Zeilen entferne? Falls es so ist, dann habe ich tausende Zeilen, das wird schwierig. Mir geht´s eigentlich darum, dass die nicht durchgestrichenen, also die zu verbleibenden, Zellen bleiben, wo sie sind, aber die Werte in den durchgestrichenen Zellen sollen entfernt werden. Ziel ist es, dass in den beiden Spalten abwechselnd 1x Kaufen und 1x Verkaufen-Werte stehen.
08.04.2021, 09:37 (Dieser Beitrag wurde zuletzt bearbeitet: 08.04.2021, 09:38 von Rudi'S.)
Hallo ProteinX,
ja du hast André richtig verstanden. Das Makro von André fügt in Spalte C etwas provisorisches ein. Wenn deine Spalte C besetzt ist, nimmst du dir irgendeine leere rechts am Ende deiner Einträge, merkst dir die Spaltenzahl und änderst im Makro die Zahl 3 bei Cells(2, 3) = "x" bzw. bei Cells(iCnt, 3) = "x" auf deine Spaltenzahl. Und das in allen anderen Bezügen. Am Ende, damit deine Provisorien auch wieder gelöscht werden fügst du vor End Sub folgenden Löschbefehl (schaffen die Profis mit cleverem Befehl) folgendes ein:
For iCnt = 2 To 20 'diese 20 änderst du auf deine Anzahl der tausenden Zeilen If Cells(iCnt, 3) <> "x" Then Cells(iCnt, 2).Clear Cells(iCnt, 1).Clear End If If Cells(iCnt, 3) = "x" Then Cells(iCnt, 3).Clear End If Next
auch dir Danke für das Makro. Ok gut, ohne diese Makros und nur mit Excel-Formeln komme ich anscheinend nicht weit. Ich werde Eure Tipps demnächst umsetzen. Sollte es nicht gehen, melde ich mich. Beste Grüße!
Ihr habt mir aus der Patsche geholfen, Andre und Rudi`S! Andre, dein Makro hat mich ein wesentliches Stück weitergebracht. Rudi`S, den Löschbefehl vor End Sub habe ich auch integriert und läuft! Danke Euch beiden und bleibt bitte gesund! [img] Dateiupload bitte im Forum! So geht es: Klick mich! ]