Text in Liste direkt um Zusatz ergänzen
#11
Hallo

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!

mfg Gast 123


Angehängte Dateien
.xlsm   Endungen anhängen.xlsm (Größe: 16,22 KB / Downloads: 6)
Antworten Top
#12
Vielleicht ?

=HYPERLINK("D:\SNB_\OF\" & A2 &".jpg")
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#13
(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.

Ciao, Ralf

Antworten Top
#14
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  Huh
Gruß Günther
________________________________________________________________
Windows 11 Pro Version 24H2 • Microsoft Office Professional 2019
Antworten Top
#15
Hi

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.

Gruß Daniel
Antworten Top
#16
(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.

Ciao, Ralf

Antworten Top
#17
Hallo

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
Antworten Top
#18
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
Antworten Top
#19
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
Antworten Top
#20
(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.

Ciao, Ralf

Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste