Meine Funktion schreibt dann zwar für das Item eine Zeile für das Update oder die Rectifications, dann aber deutlich weiter unten in der Tabelle.
Ich möchte also, dass erkannt wird, dass es sich um das selbe Projekt handelt und alle Statusinformationen mit Zeilenumbruch in dieselbe Zeile gepackt werden.
Variante 1: Du sortierst die Tabelle anschließend nach Projektnummer.
Variante 2: Du suchst beim Eintrag nach der Projektnummer und wenn der Eintrag existiert, hängst du die Daten hinten dran.
--
If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch --
Wird hier eine PowerQuery Abfrage aktualisiert? Was wird in der Abfrage gemacht?
Hier wird die Verbindung zum Mailserver aktualisiert und die Datenquelle (das Mailpostfach) abgefragt.
Dein VBA-Code bedeutet doch, dass Du jedes mal alle Zellen neu schreiben musst oder?
Die Rohdaten sind in einem Excelsheet, die Abfrage aktualisiert diese und fügt neue hinzu und dann wird daraus meine Übersicht generiert. Könnte man bestimmt besser lösen, aber wir reden hier nicht von allzu vielen Einträgen, von daher vernachlässigbar, denke ich.
Variante 1: Du sortierst die Tabelle anschließend nach Projektnummer.
Ist das in VBA zu realisieren? Zurzeit benutze ich einfach den Filter von Excel und sortiere damit, aber es wäre natürlich eleganter (da es auch andere benutzen sollen), wenn direkt sortiert wäre und eine Zeile pro Projekt
Variante 2: Du suchst beim Eintrag nach der Projektnummer und wenn der Eintrag existiert, hängst du die Daten hinten dran.
Selbes Spiel, wie mache ich das in VBA? Das wäre auch meine Idee gewesen, das Array nach Dopplungen zu durchsuchen und dann wenn zwei mal oder öfter "ProjektXX" auftaucht, das in eine gemeinsame Zeile schreiben zu lassen. Ich weiß nur leider nicht, wie ich das realisiere.
Dein Code ist relativ umständlich und schon gar nicht objektorientiert.
Das schreckt mich ein wenig davor ab, dir direkte Änderungen an deinem Code vorzuschlagen.
Wenn ich so was im Job zur Überarbeitung in die Hand bekomme, werfe ich es weg und schreibe es neu.
--
If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch --
Vielen Dank für die Hilfe, ich werde dann wohl versuchen, zumindest die Projekte in einzelnen Zeilen untereinandergeschrieben hinzubekommen.
Ich habe den Code auch so bekommen und leider wenig bis keine Ahnung von VBA, neu schreiben ist daher keine Option.
Vollzitat entfernt. ~Thunderbolt
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Thunderbolt“ ()
Mit Range.Sort
Habe rumprobiert, aber kriege nicht wirklich raus, wie ich damit die Projekte sortieren kann.
Also die Initiierung, Update und Rectification fangen immer mit der Projektnummer_Jahr an, danach würd ich entsprechend gern sortieren. Dann wären zumindest die Projekte in Zeilen untereinander sortiert, das würde schon reichen.
Kannst du mir sagen, wie ich das in meine Funktion einbauen könnte? Lasse ich meinen Code laufen, um die Tabelle zu bauen und mache danach dann Range.Sort auf die Spalte der Projektbezeichnung? Steige da leider nicht ganz durch, sorry.
Auch wenn der Code wie du sagst nicht sonderlich schön ist, wäre das alles und das Makro würde seinen Zweck erfüllen. Objektorientiert und generell besser geschrieben übersteigt leider meine Fähigkeiten, auch wenn mir das natürlich lieber wäre.
Lasse ich meinen Code laufen, um die Tabelle zu bauen und mache danach dann Range.Sort auf die Spalte der Projektbezeichnung?
Ja
--
If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch --
Kommt das in die Schleife oder außerhalb? Magst du mir verraten, wie ich Range.sort in Bezug auf das Projekt benutze? Sorry für die Anfängerfragen, aber danke dir für die Hilfe!