Bedingtes Einfügen einer neuen Zeile

Hallo liebe Experten,
ich hab eine Exceldatei mit 2 Tabellenblätern erstellt, die der Aufnahme von Problemen und die Lösung des Problems dokumentieren soll (Tabelle 1). Manchmal ist eine Lösung nur möglich, indem man sich einer Software betätigt. Die Änderungen innerhalb der Software sollen in Tabelle 2 dokumentiert werden.
Nun habe ich bereits ein Feld in Tabelle 1 „Software benötigt?“ welches mit Yes/No beantwortet werden kann. Ich möchte gern, dass jedes Mal, wenn in diesem Feld ein „Yes“ ausgewählt wird, eine Zeile in Tabelle 2 erstellen, in der dann automatisch Daten aus Tabelle 1 übernommen werden (Datum, Problem,…).
Wird ein „No“ angegeben, wird keine neue Zeile in Tabelle 2 erstellt. Das hat zur Folge, dass im laufe der Zeit Tabelle 1 mehr Einträge haben sollte als Tabelle 2, da bestimmte Probleme auch ohne Software gelöst werden können.
Hat wer eine Idee, wie man die Geschichte ohne VBA lösen kann? Vielen lieben Dank schön mal im Vorraus.
der Student

Hallo Student,

also ohne VBA sehe ich da schwarz. Warum darf es denn kein VBA sein? Damit könnte ich dir vermutlich schon eine Lösung stricken.

Gruß, Andreas

Hallo Andreas,
nun, prinnzipell gern auch mit VBA, wenn du da eine Lösung hast.
Da ich aber keine wirklich Erfahrung in der VBA Programmierung habe, probiere ich das soweit wie es geht zu vermeiden ^^ Einen anderen Grund gibt es nicht…

Vielen Dank für deine Antwort,
der Student

Na, dann versuchen wir mal VBA. Am einfachsten für mich wäre es, wenn du eine Beispielmappe hochladen könntest, z.B. hier: http://www.file-upload.net/
Dann kann ich deine Erklärungen sicher leichter verstehen und kann den Makro direkt in die Mappe einbauen.

Gruß, Andreas

Hey Andreas,
ich bin gespant, ob du mir mit VBA helfen kannst. Hier die Beispielmappe:
http://www.file-upload.net/download-9983053/Beispiel…

Ich bedanke mich schon mal recht herzlich für die Mühe!!! :smile:

'nabend Student,

ich habe dir hier mal deine Mappe mit Makros bestückt:
http://www.file-upload.net/download-9984876/Beispiel…

ACHTUNG!!! Wenn du keinen Werbeblocker benutzt, strotzt die Downloadseite von gefaketen Buttons. Der richtige ist der blaue mit der kleinen weißen Wolke und dem blauen Pfeil nach unten!

Ein paar Anmerkungen:

Ich habe die Zellen auf Tabelle1 mit den „yes“ und „no“ mit einem Ereignismakro versehen: Immer wenn du in eine dieser Zellen doppelklickst, ändert sich der Wert von yes nach no oder no nach yes. Wenn du eine neue Zeile einträgst und es steht noch nichts in der Spalte, kommt bei doppelklick yes.

Wenn du durch einen Doppelklick ein yes erzeugt hast, wird diese Zeile in die nächste freie Zeile in Tabelle2 kopiert.

Wenn du durch einen Doppelklick ein no erzeugt hast, wird diese Zeile in Tabelle2 gesucht. Sofern sie vorhanden ist, wird sie dort gelöscht.

In Spalte A von Tabelle1 hast du ja durch Formeln fortlaufende Nummern erzeugt.
Das hattest du auch in Tabelle2 so gemacht.
Ich war aber davon ausgegangen, dass immer die entsprechende Nummer aus Tabelle1 dorthin kopiert werden soll, sodass die Nummern in Tabelle2 nicht unbedingt fortlaufend sein müssen. Ich habe also die Formeln in Tabelle2 ganz frech rausgenommen und schreibe durch den Makro die Werte aus Tabelle1 dort rein.

Give it a try und melde dich, wenns noch Probleme oder Wünsche gibt.

Gruß, Andreas

1 Like

Hallo Andreas!

Erstmal riesieges Dankeschön. So ähnlich hab ich mir das vorgestellt, auch wenn du ganz „frech“ Sachen rausgenommen hast.

Ich habe aber trotdem noch ein paar Fragen/Bitten:

  • Muss es ein Ereigniss Makro für die yes/no Auswahl sein, oder kann ich das auch durch ein einfaches Drop down Menü ersetzen?
  • Jedes Mal, wenn eine Lösung in Tabelle 2 angelegt wird, soll diese in Tabelle 1 kopiert werden. Ich denke mal, dass ist nur ein Austausch von Variablen, oder?
  • Damit ich beim nächsten Mal nicht so blöd nachfragen muss, würde ich es super finden, wenn du ein paar Kommentare in dein Makro einfügst.

Falls du mir diese drei Fragen/Wünsche erfüllen könntest, wäre das ein absoluter Traum!!!

Nochmals Danke,
der Student!

Hallo Andreas!

Hi Student,

Erstmal riesieges Dankeschön. So ähnlich hab ich mir das
vorgestellt, auch wenn du ganz „frech“ Sachen rausgenommen
hast.

ich hoffe, ich habe richtig spekuliert mit den Zeilennummern. Falls nicht, sag Bescheid.

Ich habe aber trotzdem noch ein paar Fragen/Bitten:

  • Muss es ein Ereigniss Makro für die yes/no Auswahl sein,
    oder kann ich das auch durch ein einfaches Drop down Menü
    ersetzen?

Klar, geht auch. Ich habe in der neusten Version Dropdowns eingebaut:
http://www.file-upload.net/download-9989267/Beispiel…

  • Jedes Mal, wenn eine Lösung in Tabelle 2 angelegt wird, soll
    diese in Tabelle 1 kopiert werden. Ich denke mal, dass ist nur
    ein Austausch von Variablen, oder?

Hast du hier Tabelle 1 und 2 verwechselt?
Ich habe hier keine VBA-Variablen benutzt sondern nur mit Range(…)=Range(…) gearbeitet, d.h. die Daten eines Bereichs werden in einen anderen geschrieben (kopiert).

  • Damit ich beim nächsten Mal nicht so blöd nachfragen muss,
    würde ich es super finden, wenn du ein paar Kommentare in dein
    Makro einfügst.

Ist mit der neuen Version hoffentlich geschehen.

Falls du mir diese drei Fragen/Wünsche erfüllen könntest, wäre
das ein absoluter Traum!!!

Gib Bescheid was zum absoluten Traum noch fehlt.

Nochmals Danke,
der Student!

Bitte und Gruß,
Andreas

1 Like

Hallo Andreas,

sorry für die späte Antwort - mich hat eine Erkältung am Wochenende umgehauen…

Ich hab dann doch noch eine letzte Frage:
Ich weiß, dass es möglich ist, ein Makro hinter einen Button zu hinterlegen. Also müsste es doch auch möglich sein, das Überschreiben/löschen mit einem solchen hervor zurufen.
Nennen wir den Button einfach „Update“…
ISt auf der einen Seite mehr Aufwand, und auf der anderen Seite eine kleine Sicherheit, da ja alles kopiert wird, sobald ich mich für ein „yes“ entscheide. Ändere ich nun in der Problembeschreibung etwas, dann diese ja nicht mehr übernommen.

Ich werde mich in der Zwischenzeit auch mal ein bisschen an deinem tollen Programm probieren. Vielleicht bekomme ich das ja mit deinen guten Kommentaren auch alleine hin :wink:

Dann noch was für dich in eigener Sache: ich kann dir leider, so gern ich es auch würde und du es verdient hast, keine Sterne geben, da bei WWW dann ein Fehler auftritt. „Das Skript wurde mit falschen oder fehlenden Parametern aufgerufen“

Erneut: riesen Danke und schöne Grüße aus Berlin
der Student

Hallo Student,

klar, das mit dem Button geht. Dann muss aber bei jedem Update die komplette Liste überprüft werden. Das Makro weiß ja nicht, welche yes–>no oder no–>yes Änderungen seit dem letzten Update gemacht wurden. Da wäre es dann fast am einfachtsten, das Makro würde die Tabelle2 komplett leeren und mit den yes-Zeilen aus Tabelle1 neu befüllen. Was ist denn mit der Spalte „Date of Change“ in Tabelle2. Machst du die Einträge direkt dort? Die gibts ja nicht in Tabelle1.
Dann ginge es natürlich nicht, die Tabelle2 bei jedem Update komplett neu zu erstellen. Die „Date of Change“ Infos wären dann weg.

Eine andere Möglichkeit wäre, die Überprüfung nur anhand der Nummern in Spalte A vorzunehmen:
Nummer vorhanden und yes --> Zeile updaten
Nummer vorhanden und no --> Zeile löschen
Nummer nicht vorhanden und yes --> Zeile anfügen.

Was gefällt dir besser?

Gruß, Andreas

Hallo Andreas,

ich kann dir nun endlich berichten, dass ich es auch alleine geschafft habe. Meine alten Programmierkenntnisse zusammen mit google und deinen Code haben ein zufriedenstellendes Ergebnis hervorgebracht :wink:
Ich hab es genau so gelöst, wie du es beschrieben hast:

Eine andere Möglichkeit wäre, die Überprüfung nur anhand der
Nummern in Spalte A vorzunehmen:
Nummer vorhanden und yes --> Zeile updaten
Nummer vorhanden und no --> Zeile löschen
Nummer nicht vorhanden und yes --> Zeile anfügen.

Nochmals Danke!
Der Student