wie schön, da hatte ich vielleicht die richtige Nase für eine raffinierte VBA Lösung.
In Spalte E stehen die Dateiendungen, die kannst du selbst bestimmen. Auch in andere Spalte verlegen. Steht im DropDown eine Endung, wird sie in Spalte A bei jeder Eingabe mit Punkt angehangen. Steht DropDown auf Leer, wird beim anklicken einer Zelle die vorhandene Endung wieder gelöscht.
Wie gefällt dir dieser Vorschlag?? Das Makro befindet sich im Sheet Tabelle1, KEIN normales Modul!
(10.06.2025, 19:04)Karthagos schrieb: es geht nicht nur um diese Dateiendung, sondern einfach darum, Text zu ergänzen, also unterschiedliche Gründe. Ich lasse mir eine Liste von Dateinamen oft mit einem Dateilister aus dem Explorer in Excel kopieren. Manchmal brauche ich die Namen mit, manchmal ohne Dateiendung und ggf. muss ich später aus irgendwelchen Zwängen wieder umwandeln. Es ging mir einfach nur darum, die Vorgehensweise wenn möglich zu vereinfachen. Ein einheitliches Muster kann ich leider nicht benennen.
...verwende doch eine formatierte Tabelle. Da hast Du alle Optionen offen....
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben. Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.
Hallo und vielen Dank für die weiteren Lösungsvorschläge.
@Gast 123 hab Deine Excel-Datei „Endungen anhängen.xlsm“ heruntergeladen und getestet. Bekomme aber kein Ergebnis. Muss ich eine DropDown-Feld anlegen bzw. wo muss ich die gewünschte Endung hinschreiben. So tut sich bei mir erst mal nichts, wenn ich in Spalte A etwas eingeben.
@snb mit der Funktion Hyperlink kann ich es natürlich auch lösen, aber wo ist der Vorteil, steht ja wie eine Formellösung dann irgendwo und muss umgewandelt werden?
@Ralf die Tabelle zu formatieren scheitert daran, dass diese oft viele Spalten hat und das dafür zu aufwändig ist.
Vielleicht stehe ich aber auch wieder etwas auf dem Schlauch und habe es nicht richtig verstanden
Gruß Günther ________________________________________________________________ Windows 11 Pro Version 24H2 • Microsoft Office Professional 2019
wenn es VBA-unterstützt sein darf für die nachträgliche Bearbeitung:
füge dieses Makro in ein allgemeines Modul ein und weise es für den einfachen Aufruf einer Tastenkombination zu:
Code:
Sub TextAnhängen() Dim Wert As String Dim R As Range Dim D As New DataObject
For Each R In Selection.Areas If R.Cells.Count = 1 Then Wert = R.Text Exit For Next
If Wert = "" Then
If Application.CutCopyMode = xlCopy Then D.GetFromClipboard Wert = D.GetText(1) Wert = Left(Wert, Len(Wert) - 2) 'letzten Zeilenumbruch entfernen Else Wert = Application.InputBox("Text zum Anängen:") End If End If If Wert <> "" Then For Each R In Selection.SpecialCells(xlCellTypeConstants, 2) If R.Value <> Wert Then R.Value = Zelle.Value & Wert Next End If
End Sub
damit das Makro funktioniert, muss in EXTRAS - VERWEISE der Haken bei "Microsoft Forms 2.0 Object Library" gesetzt sein. Das geht ohne große Suche, in dem man einfach eine Userform erstellt (diese kann man ja leer lassen und muss sie nicht nutzen)
du hast jetzt drei Möglichkeiten, das zu bedienen: 1. markierst zuerst die Zelle, die den anzufügenden Text enthält (nur eine Zelle!) und dann mit gehaltener STRG-Taste die zu bearbeitenden Zellen, dann startest du das Makro
2. du kopierst die Zelle mit dem anzufügenden Text, markierst dann die zu bearbeitenden Zellen und startest das Makro
3. du markierst nur die Zellen, die bearbeitet werden sollen (mindestens 2, sonst greift Möglichkeit 1) und startest dann das Makro. Dann fragt dich das Makro, welchen Text es anfügen soll.
(10.06.2025, 21:40)Karthagos schrieb: die Tabelle zu formatieren scheitert daran, dass diese oft viele Spalten hat und das dafür zu aufwändig ist.
...das verstehe wer will... die Aufgabe lautet: setze mir 2 Strings zusammen... tja, da kommt man schon mal schnell ins schwitzen...
Wenn man ein großes Problem hat, zerlegt man es in viele kleine...
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben. Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.
ein Test in der Beispieldatei die ich hochgeladen habe sollte funktionieren. Bei mir klappt es einwandfrei! Eingaben in Spalte A werden mit Endung versehen, wenn du in Zelle A1 eine Endung -ausgewählt- hast! Die Endungen stehen in der Spalte E, Überschrift "DropDown Liste". Die Spalte kannst du ggf verschieben/ verlängern.
Die Zelle A1 kannst du in deine Originaldatei kopieren. Ebenso den Bereich E1-E9 mit den Endungen. Das Makro (unten) musst du im VBA Editor in die Tabelle kopieren, wo du deine Eingaben machst. Mit Taste Alt+F11 kannst du den VBA Editor öffnen. Dann die richtige Tabelle anklicken, Makro mit Str+V einfügen. Im Menü Daten findest du unter Datentools den Menüpunkt "Datenprüfung", dort Liste anklicken und den Bereich angeben.
Danach sollte meine Lösung auch bei dir funktionieren. Es sei denn du nimmst eine andere (bessere) Lösung.
mfg Gast 123
Code:
Dim Txt As String
Private Sub Worksheet_Change(ByVal Target As Range) If InStr(Target.Address, ":") Then Exit Sub If Target.Value = Empty Then Exit Sub If Target.Column <> 1 Then Exit Sub
If [a1] <> Empty Then Application.EnableEvents = False If Right(Target, Len([a1])) <> [a1] Then Target.Value = Target.Value & "." & [a1] End If End If Application.EnableEvents = True End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If InStr(Target.Address, ":") Then Exit Sub If Target.Column <> 1 Then Exit Sub If [a1] <> Empty Then Exit Sub
If [a1] = "" And InStr(Right(Target, 5), ".") Then _ Target.Value = Left(Target, InStrRev(Target, ".") - 1) End Sub
12.06.2025, 11:06 (Dieser Beitrag wurde zuletzt bearbeitet: 12.06.2025, 11:06 von Karthagos.)
Hallo, habe eben erst zufällig gesehen, dass weitere Antworten eingegangen sind. Irgendwie hat auf einmal die eMail-Benachrichtigung darüber in Outlook gefehlt, obwohl ich da nichts verändert habe. Werde die durcharbeiten und melde mich später wieder dazu. Zunächst vielen Dank für alle neuen Antworten.
Hallo Gast 123, jetzt habe ich erst mal Deine Version noch mal getestet und zwar erst mal mit Deiner Datei. Das mit der Datenüberprüfung habe ich noch nicht ganz verstanden. Welchen Bereich muss ich bei Quelle angeben, Spalte A oder E?
Gruß Günther
Gruß Günther ________________________________________________________________ Windows 11 Pro Version 24H2 • Microsoft Office Professional 2019
12.06.2025, 14:05 (Dieser Beitrag wurde zuletzt bearbeitet: 12.06.2025, 14:09 von Gast 123.)
Hallo
in Zelle A1 ist ein DropDown, mit dem du die Endungen durch anklicken auswählen kannst! Diese Endungen, oder jeder beliebige Text, stehen in E2-E8. Dort siehst du ja alle Texte! Diese Liste kannst du nach unten beliebig erweitern, weitere Endungen hinzufügen. Danach musst du im Menü Daten, Datentools unter Datenprüfung den Range erweitern!
mfg Gast 123 Datenprüfung "Liste" bezieht sich hier auf die Spalte E
(12.06.2025, 14:05)Gast 123 schrieb: Diese Liste kannst du nach unten beliebig erweitern, weitere Endungen hinzufügen. Danach musst du im Menü Daten, Datentools unter Datenprüfung den Range erweitern!
Und wenn Du aus der Liste eine formatierte Tabelle machst, deren Datenbereich Du als Quelle angibst, kannst Du beliebig oft erweitern/ändern/löschen, ohne jedesmal den Bereich manuell anpassen zu müssen...
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben. Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.