Hallo liebe Leute,
bin seit 1ner Woche dabei eine riesiege Tabelle zu programmieren. Hab fast alles geschafft. Danke den Foren und vielen Lösungshilfen bin ich soweit mit allem bis auf einen Punkt, mit den Tabellen fertig. Kopierschutz, Sicherheitskopie in anderer Ablage, vergleiche mit Löschung von zellen, blattschutz aufheben, kontrolle der werte, blattschutz wieder einfügen. automatisches speicher bei änderung, werte vergleich bei Änderung mit anzeige wahr / falsch und so weiter.
jetzt hänge ich aber bei einem Punkt, und mein Kopf weiß den Fehler, will mir aber die Lösung nicht verraten :(
Ich will aus einem Bereich, den letzten Wert größer 0 auslesen ( hab auch nebenbei probiert einfach alle werte größer 0 in eine andere Tabelle zu koppieren )
Der Bereich M4:M34 ist komplett jede Zelle mit Formel hinterlegt, die 2x verschiedene Datum´s vergleicht und die abgelaufende Zeit in Tagen ausgibt.
Wenn kein datum drin steht, ergibt dies automatisch den Wert 0 in der tabelle.
Es wird der reihe nach eingegeben, sprich, wenn M4 mit datum durch ist, kommt M5 ran ( chargen, die der reihe nach abgearbeitet werden )
Immer wenn eine Charge erfolgreich beendet wird. wird die Zeit automatisch gelöscht, sprich bei beginn von M5, werden alle Daten aus M4 automatisch gelöscht, wenn M6 anfängt, werden alle aus M5 gelöscht und so weiter.
im laufe der zeit hat man nun viele leere Felder, eins mit Anzeige der Zahl ( tagzähler der laufenden Charge )
und viele übrige nullen, halt bis M34
ich möchte den wert der in als tagzähler existent ist, also nicht die leeren felder, und auch nicht die nuller, koppieren in ein anderes tabellenblatt,
es soll ein tabellenblatt sein, wo man eine übersicht hat, über die tagzähler, sämtlicher maschinen.
sprich die M4:M34 tabelle existiert 6 mal, 6 verschiedene tabellenblätter, die vollgeschrieben sind mit Datum´s und den ausrechnungsformeln, der chargennummer und und und. und nur die Tagzähler der aktiven Charge , soll in ein extra Tabellen stehen, samt Farblicher hinterlegung ( die Farbliche Hinterlegung ergibt sich aus dem tagzähler, eine Charge darf nicht länger wie 5 tage laufen, läuft sie unter 4 tage ist es grün, am 4ten tag gelb hinterlegt und ab dem 5ten rot )
nun erstmal mein probiertes verkleckertes vba cödchen
Dim r, r1 As Range
Worksheets("BP1 Standzeit-Abfüllzeit").Activate 'das ist eine maschine mit chargen
Set r = Sheets("BP1 Standzeit-Abfüllzeit").Cells(Rows.Count, "M").End(xlUp) 'letzte charge soll gefunden werden ( findet nur leider immer die letzte 0 )
lz = Cells(Rows.Count, "M").End(xlUp).Rows.Row 'versuchter eingebauter zähler zum rückwärts abzählen
Set r1 = Sheets("Standzeitliste").Range("D2") 'das ist die seite in der die standzeiten alle aufgeführt sein sollen mit D2 als zelle für BP1
For t = lz To 4 Step -1 'mein rückwärtszähler bis M4
If Cells(t, 1).Value = ">0" Then 'vergleicher
lz.Copy 'koppieren, funktioniert nicht :( hab vorher r koppiert gehabt, aber halt ergebniss dass mir immer die ltzte 0 sprich M34 koppiert wird
r1.PasteSpecial xlPasteValues ' Kopiert den Wert
r1.PasteSpecial xlPasteFormats ' Kopiert das Format (also auch die Farbe)
Application.CutCopyMode = xlCut 'cut mode beenden
End If 'schleifenabfrage
Next t 'nächster schritt
end sub
joa, hab es versucht im code soweit es geht zu erläutern. mein lz count ist zwar richtig, aber lz koppieren ergibt kein sinn, ich weiß einfach nicht, wie ich mein count nun mit dem r verbinden kann, dass ich also wirklich den count vergleich, bis nicht mehr 0 ist, weitergebe als zelle die ich koppieren muss !
mein schädel brennt langsam, soviel ausprobiert und nichts wollte klappen, dass ich jetzt nur noch murks gerade hinkriege :(
kann bitte jemand helfen ?
|