Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1852to1856
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Beschränkung auf Spalte

Beschränkung auf Spalte
05.11.2021 14:33:20
Sven
Hallo,
ich habe ein Marko, bei welchem bei in einer Dropdown- Auswahl mehrere Einträge möglich sind und diese untereinander geschrieben werden sollen. Hatte dazu bereits hier gepostet.
Nachdem ich nun selbst gesucht und probiert habe, bin ich soweit vorangeschritten, dass die Einträge in 2 Spalten möglich sind, das Makro arbeitet nur in den gewünschten Spalten.
Leider kopiert der Code die Einträge aus Spalte 17 auch in die Spalte 18, was nicht gewünscht ist.
Ich möchte den Text aus Spalte 17 NUR in Spalte 17, genauso für Spalte 18, also "Replace(TargetOldText...)" soll auf die jeweilige Spalte beschränkt werden.
Genutzt wird folgender Code (auszugsweise):
If Not TargetOldText = "" And Not Target.Value = "" Then
If InStr(1, TargetOldText, Target.Value) > 0 Then
strResult = Replace(TargetOldText, Chr(10) & strTarget, "")
strResult = Replace(strResult, strTarget & ", ", "")
strResult = Replace(strResult, strTarget, "")
Else
strResult = TargetOldText & Chr(10) & Target.Value 'Chr bedeutet die Auflistung untereinander
End If
Target.Value = strResult
Else
Target.Value = Target.Value
End If
TargetOldText = Target.Value
Else
blockedEvent = False
End If
Else
TargetOldText = ""
End If
End Sub
Und hier hört mein Verständnis auf. Die Recherche im internet hat mehrere, nicht mehr verfügbare (weil gelöschte Tabellen) Lösungen ergeben, daher weiß ich, dass es möglich ist...
Ich hoffe, die Problemstellung ausreichend erklärt zu haben.

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Beschränkung auf Spalte
05.11.2021 14:50:48
GerdL
Hallo Sven,
ja, aber zeige bitte noch dein gesamtes Makro.
Gruß Gerd
AW: Beschränkung auf Spalte
05.11.2021 18:27:55
Sven
Hier das vollständige Makro:
Option Explicit
Const bolSorted As Boolean = False ' Legt fest, ob die Werte noch sortiert werden.
Dim blockedEvent As Boolean
Dim TargetOldText As String
<pre>Private Sub Worksheet_Change(ByVal Target As Range)
Dim strResult As String
Dim strTarget As String
Dim arrSorted As Variant
Dim i As Long
If Target.Column = 17 Or Target.Column = 18 Then
strTarget = Trim$(Target.Value)
If Not blockedEvent Then
blockedEvent = True
If Not TargetOldText = "" And Not Target.Value = "" Then
If InStr(1, TargetOldText, Target.Value) > 0 Then
strResult = Replace(TargetOldText, Chr(10) & strTarget, "")
strResult = Replace(strResult, strTarget & ", ", "")
strResult = Replace(strResult, strTarget, "")
Else
strResult = TargetOldText & Chr(10) & Target.Value 'Chr bedeutet die Auflistung untereinander
End If
Target.Value = strResult
Else
Target.Value = Target.Value
End If
TargetOldText = Target.Value
Else
blockedEvent = False
End If
Else
TargetOldText = ""
End If
End Sub</pre>
<pre>Private Sub Selectionsort(ByRef data As Variant)
Dim OG&, i&, j&, k&, h As Variant
OG = UBound(data)
For i = 0 To OG - 1
h = data(i)
k = i
For j = i - 1 To OG
If data(j) < h Then
h = data(j)
k = j
End If
Next j
data(k) = data(i)
data(i) = h
Next i
End Sub</pre>
Zusätzlich konnte ich jetzt die Tabelle als Beispiel anfügen. https://www.herber.de/bbs/user/148967.xlsm
Anzeige
AW: Beschränkung auf Spalte
06.11.2021 07:57:02
Sven
Ich hatte den Haken vergessen, die Bitte war ja, das Makro mitzutelen. Entschuldigung!!!
AW: Beschränkung auf Spalte
08.11.2021 17:22:07
Yal
HalloSven,
Du musst ein TargetOldText für Spalte 17 und ein für Spalte 18 vorenthalten, sonst beeinflüssen sie sich gegenseitig:

Dim blockedEvent As Boolean
Dim TargetOldText(17 To 18) As String
Private Sub Worksheet_Change(ByVal Target As Range)
Dim strResult As String
Dim strTarget As String
Dim arrSorted As Variant
Dim i As Long
If Target.Column = 17 Or Target.Column = 18 Then
strTarget = Trim$(Target.Value)
If Not blockedEvent Then
blockedEvent = True
If Not TargetOldText(Target.Column) = "" And Not Target.Value = "" Then
If InStr(1, TargetOldText(Target.Column), Target.Value) > 0 Then
strResult = Replace(TargetOldText(Target.Column), Chr(10) & strTarget, "")
strResult = Replace(strResult, strTarget & ", ", "")
strResult = Replace(strResult, strTarget, "")
Else
strResult = TargetOldText(Target.Column) & Chr(10) & Target.Value 'Chr bedeutet die Auflistung untereinander
End If
Target.Value = strResult
Else
Target.Value = Target.Value
End If
TargetOldText(Target.Column) = Target.Value
Else
blockedEvent = False
End If
Else
TargetOldText(Target.Column) = ""
End If
End Sub
VG
Yal
Anzeige
AW: Beschränkung auf Spalte
08.11.2021 23:10:33
Sven
FREUDE FREUDE;
ich bin hellauf bekleistert! Es funktioniert! Allerdings musste ich das letzte TargetOldText(Target.Column) = "" im unteren Bereich entfernen, da sonst die Dropdown- Funktion in Spalte D nicht funktioniert hätte. Dort soll lediglich ein Eintrag erfolgen/ möglich sein!
Nochmals HERZLICHEN DANK!!!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige