Frage von Robin19xx, 30

Progammieren mit Excel 2016 - Wie kann ich durch die Eingabe von Zahlen automatisch standardisierte Sätze einfügen lassen?

Guten Tag liebe Community,

ich möchte standardisierte Berichte verfassen. Dazu sollen aus etwa 100 verfügbaren Sätzen für jeden Bericht etwa 20 dieser Sätze ausgewählt werden. Ich suche nach einer Möglichkeit das mit Excel 2016 umzusetzen. Eine detaillierte Beschreibung wäre zwar super, mir würde aber auch schon sehr Hinweise helfen unter welchen "Programmierer-Fachbegriffen" ich die Lösung/Anleitung finde.

Folgendes möchte ich umsetzen: 100 Sätze stehen in 100 Zellen. Ein Satz in je einer Zelle. Diese "Satz-Zellen" sind "codiert" mit Zahlen von 1 bis 100. In 20 weiteren Zelle brauche ich jetzt nur die "Code-Zahlen" eingeben. Wenn ich die nun die "1, 2, 5, 8, 12 ..." eintrage, dann werden in einer weiteren Zelle die Sätze mit den "Code-Zahlen" 1, 2, 5, 8, 12 usw. eingefügt.

Anschließend kann ich diesen so entstandenen Textblock für den Bericht übernehmen und muss ihn nur noch individuell umgestalten. Bei etwa 200 Berichten im Jahr verspreche ich mir dadurch eine enorme Zeitersparnis.

Danke und mit freundlichen Grüßen,

Robin

Expertenantwort
von Ninombre, Community-Experte für Excel, 6

Stehen die Codes für die Texte alle komma-getrennt in einer Zelle? Dann wird es vermutlich per Makro am einfachsten sein, das auseinanderzupflücken und in die Texte umzusetzen.

Formelbasiert könntest Du es tatsächlich mit sverweis alleine lösen, wenn Du die Codes untereinander schreibst.

für das Makro folgende Annahme:

Codes in Spalte A, zugehörige Text in Spalte B

In G1 steht 1,2,5,10,22 oder ähnliches (meine Annahme: Ohne Leerzeichen, die muss man sonst nur zusätzlich rausfummeln)

In G2 wird das Ergebnis eingetragen

Sub texteaufloesen()
dim i, codenummer as long
dim meintext as string
i = 1
While i < Len(Range("G1"))
codenummer = (Mid(Range("G1"), i, WorksheetFunction.Find(",", Range("G1"), i) - i) * 1)
meintext = meintext & WorksheetFunction.VLookup(codenummer, Range("A1:B100"), 2, False)
i = i + WorksheetFunction.Find(",", Range("G1"), i) - i + 1
Wend
Range("G2").Value = meintext
End Sub

Das Makro "hangelt" sich von Komma zu Komma. Der Teil dazwischen ist der Suchbegriff für den sverweis (vlookup). Die Treffer aus Spalte B werden aneinandergekettet und stellen dann das Ergebnis dar. Mehr ist eigentlich nicht notwendig, wenn ich die Frage richtig verstanden habe.

Das *1 ist notwendig, um aus dem Teil zwischen den Kommas wieder eine Zahl zu machen. Bei rechts/links/teil wird sonst standardmäßig mit einem Text gesucht und damit findet sich in Spalte A kein Ergebnis. Zumindest ist das so in der Frage genannt. Wenn es keine echten Zahlen sind, sondern Texte wie C43 dann muss das *1 weg.

Antwort
von Robin19xx, 6

Vielen Dank für eure schnellen Antworten! Ich habe mein Problem nun erstmal mit SVERWEIS gelöst. Nun muss ich nur noch die vielen Sätze einfügen.

Kommentar von Ninombre ,

das ist gut, wenn Du die Lösung hast. Mir kam allerdings eben nur der Gedanke, ob eine Lösung in Word mit Textbausteinen für dich nicht komfortabler wäre.

http://praxistipps.chip.de/textbausteine-in-word-erstellen_9475

Antwort
von milonguero, 7

Sieh Dir mal SVERWEIS an.

Antwort
von Murmaider, 6

Der Fachbegriff den du suchst heißt 'Makros'... Diese sind bzw. werden in VBA verfasst.

Keine passende Antwort gefunden?

Fragen Sie die Community