AW: Warenkorb erstellen Zellen kopieren wenn
02.07.2021 11:39:29
Ludwig
Hey Thorsten,
vielen Dank - das ist genau so eine Lösung die ich gebraucht habe.
Buttonlösung ist gut und ich habe damit zuvor schon ein wenig herumprobiert, die Live Änderung sobald die Stückzahl größer 0 ist wäre einfach nur interessant gewesen.
Dies hätte ja bedeutet das die Abfrage ( vermutlich in Form einer Schleife ) permanent im Hintergrund laufen muss.
Ich bin nun schon ein paar Stunden dran deinen Code zu zerlegen und anzupassen, allerdings habe ich mir das etwas einfacher vorgestellt.
Hier benötigt man doch etwas mehr Fachwissen als bei mir vorhanden ist.
zu deinen Fragen:
Was ich nicht verstanden habe, ist...
...2. Wird eine Zahl im oben genannten Bereich gefunden z.B. 2 dann sollen die grünen Zellen in Tabelle 2 Kopiert werden
= Du hast alle Zeilen grün gefärbt, deren Wert in Spalte A größer 0 ist; als Bsp 2 hervorzuheben, dann aber auch andere Zeilen grün färben, die in Spalte A NICHT 2 haben, hab ich nicht verstanden
A: Das grün einfärben hab ich nur gemacht damit besser ersichtlich ist was übertragen werden soll. Viele kopieren dann nämlich einfach die ganze Zeile. Aber ich wollte ja einige Werte nicht in Tabelle2 übertragen.
...in deiner Tabelle2 hast du in Zelle I4 NICHT eine Formel für die Einzelsumme eingetragen
= Warum nicht?
A:Nun ja die Summe am Ende war erst mal Prio2 das hätte ich dann irgendwie hin gepfuscht oder Nachträglich eingefügt.
Ist Kabelnr 1 mit Durchmesser 22 immer gratis?
A: Nein war zur Zufall - Sorry
...in deiner Tabelle2 hast du in Zelle I3 für Gesamtsumme die Formel =SUMME(I5:I19) stehen
= Warum? Die Formel übernimmt alle Werte aus den Zellen I5 bis I19, inklusive dem Gesamtsummenwert aus I14
Hab ich nicht verstanden.
A: Summenberechnung war nur Probiert - hier wäre die Richtige Lösung noch später gekommen.
Zu deinem Code, diesen wollte ich gerne auf meine Original Excel Liste Portieren aber mit sowas da unten hab ich ja nicht gerechnet. Qeullbereich zum auslesen und Zielbereich zum Ausgeben ( Höhe Breite etc. bekomme ich ja noch hin ) aber wie man die Zellen zur Übertragung Markiert ist mir noch ein wenig ein Rätsel.
Ich habe in Tabelle1 mal alles eine Spalte nach Rechts verrückt und dann die Werte im Code versucht anzupassen einfach try & error = schauen was passiert - aber selbst das war mir nicht möglich.
Ich hätte diese Beispieldatei eher an das Original anlehnen sollen ( Zellenanzahl usw.. ) wollte ich ja selbst anpassen :-(
Sub sbOrder()
Dim lshLive As Worksheet, lloRow As Long, lloNext As Long //Definitionen - ok Verstanden
Set lshLive = Sheets("Tabelle1") 'wenn Name nicht Tabelle1, dann hier anpassen! // Warum ? man kann doch auch mit "Sheets("Tabelle1")" arbeiten oder ?
With Sheets("Tabelle2") 'wenn Name nicht Tabelle2, dann hier anpassen!
lloNext = .Cells(.Rows.Count, 2).End(xlUp).Row
If lloNext >= 3 Then
.Range("B3:I" & lloNext).Delete Shift:=xlUp
End If
lloNext = .Cells(.Rows.Count, 2).End(xlUp).Row + 13 'Einfügehöhe Tabelle 1!
For lloRow = 3 To lshLive.Cells(.Rows.Count, 1).End(xlUp).Row ' Auslesehöhe Tabelle 1!
If lshLive.Range("A" & lloRow).Value "0" And _
lshLive.Range("A" & lloRow).Value "" Then // Filter auf A alle Werte größer 0 - OK
lshLive.Range("A" & lloRow & ":B" & lloRow & ",D" & lloRow & ":G" & lloRow & ",I" & lloRow).Copy .Range("B" & lloNext) '"soe hier wirds nun Lustig für mich - ich dachte man hat hier eine Quellzelle und eine Zielzelle aber das Konstrukt ist für mich schon etwas knifflig ohne Vorkenntnisse !
.Range("I" & lloNext).Value = .Range("B" & lloNext).Value * .Range("E" & lloNext).Value
lloNext = .Cells(.Rows.Count, 2).End(xlUp).Row + 1
End If
Next
.Range("I2").Value = Application.WorksheetFunction.Sum(.Range("I3:I" & .Cells(.Rows.Count, 2).End(xlUp).Row)) - Das hier ist nice - hab ich kapiert - so einfach kann das sein.
End With
Set lshLive = Nothing
End Sub
https://www.herber.de/bbs/user/146914.xlsx