Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Werteangaben in Spalte A und B abwechselnd und unzutreffende Zellen löschen
#1
Liebe Excel-Freunde,

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?

Danke schon mal hierfür! Smile


Angehängte Dateien Thumbnail(s)
   
Antworten Top
#2
Hallo

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! 

mfg Gast 123
Antworten Top
#3
Hallöchen,

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 Smile

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)
Antworten Top
#4
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. Smile
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.
Antworten Top
#5
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



Gruß Rudi
Antworten Top
#6
Hallo Rudi´S,

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. Smile Beste Grüße!
Antworten Top
#7
Hallöchen,
Nein, du kopierst nichts in die Spalte C. Das Makro trägt in Spalte C ein x wenn die Zeile bleibt.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#8
Thumbs Up 
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!
]
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste