Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1620to1624
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

Weitere Frage zu bestehendem Thema

Weitere Frage zu bestehendem Thema
28.04.2018 11:21:30
Mr.T
Hallo,
ich habe vor eingier Zeit eine Frage zur Find-Methode gehabt, Thema "Find Mthode was ist zu beachten" https://www.herber.de/cgi-bin/callthread.pl?index=1617493#1617493
Leider weiß ich nicht wie ich darauf noch was antworten kann, weil ich immer im Archiv lande... Naja nun zu meiner Frage
In meinem Projekt habe ich folgenden Code:

Private Sub TextBox2_Change()
Dim WkSh    As Worksheet
Dim rZelle  As Range
Dim lngIndex As Long
Set WkSh = ThisWorkbook.Worksheets("Datenpool_Gesamtmaschine")
If TextBox2.Value  "" Then
With WkSh.Columns(2)
         Set rZelle = .Find(What:=Replace$(Expression:=TextBox2.Value, _
Find:=vbCr, Replace:=""), LookAt:=xlPart, LookIn:=xlValues, MatchCase:=False)
If Not rZelle Is Nothing Then
TextBox3.Value = .Cells(rZelle.Row, 2).Value
TextBox40.Value = .Cells(rZelle.Row, 8).Value
TextBox41.Value = .Cells(rZelle.Row, 9).Value
TextBox42.Value = .Cells(rZelle.Row, 10).Value
TextBox51.Value = .Cells(rZelle.Row, 11).Value
TextBox60.Value = .Cells(rZelle.Row, 12).Value
TextBox43.Value = .Cells(rZelle.Row, 13).Value
TextBox52.Value = .Cells(rZelle.Row, 14).Value
TextBox61.Value = .Cells(rZelle.Row, 15).Value
TextBox44.Value = .Cells(rZelle.Row, 16).Value
TextBox53.Value = .Cells(rZelle.Row, 17).Value
TextBox62.Value = .Cells(rZelle.Row, 18).Value
Set rZelle = Nothing
End If
End With
End If
Set WkSh = Nothing
End Sub

Sobald der Text ind TextBox2 über 255 Zeichen lang ist, meckert mir Excel die fett markierten Zeilen an.
Gibt es eine einfach Möglichkeit das Ganze zu beheben?
Vielen Dank im Voraus
David

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Weitere Frage zu bestehendem Thema
28.04.2018 11:36:39
Daniel
Hi
zunächsteinmal solltest du versuchen herauszufinden, welcher deiner zwei Funktionen in der Zeile (.Find, Replace) für das Problem verantwortlich ist.
hierzu nimmsts du das Replace aus dem .Find heraus und übergibst den Wert einer Variablen, die du dann im .Find einsetzt:
dim txt as string
txt =Replace$(Expression:=TextBox2.Value, Find:=vbCr, Replace:="")
Set rZelle = .Find(What:=txt, ....)
dann erkennst du, ob Replace oder Find das Problem ist und daraus ergibt sich dann der weitere Lösungsweg.
Gruß Daniel
ps: es ist eine Besonderheit dieses Forums, dass Threads nur c.a. eine Woche aktiv sind und weitergeführt werden können.
Danach werden sie geschlossen und wandern ins Archiv
Anzeige
AW: Weitere Frage zu bestehendem Thema
28.04.2018 11:56:50
Mr.T
Danke Daniel,
habe es mal so gemacht, wie Du es beschrieben hast.

Dim WkSh    As Worksheet
Dim rZelle  As Range
Dim lngIndex As Long
Dim txt As String
Set WkSh = ThisWorkbook.Worksheets("Datenpool_Gesamtmaschine")
If TextBox2.Value  "" Then
With WkSh.Columns(2)
txt = Replace$(Expression:=TextBox2.Value, Find:=vbCr, Replace:="")
Set rZelle = .Find(What:=txt, LookAt:=xlPart, LookIn:=xlValues, MatchCase:=False) _
b>
Jetzt ist nur noch die eine fett markierte Zeile das Problem...
Kommen wir damit der Lösung näher?
Grüße
AW: Weitere Frage zu bestehendem Thema
28.04.2018 12:19:17
Daniel
ja
.Find verarbeitet nur Texte bis maximal 255 Zeichen Länge.
da musst du dir die Suche selber programmieren, indem du in einer Schleife die Zellwerte mit dem Suchbegriff vergleichst.
for each rZelle in  WkSh.Columns(2).SpecialCells(xlcelltypeconstants, 2)
if instr(rZelle.Value, txt) > 0 then Exit for
Next
Gruß Daniel
Anzeige
AW: Weitere Frage zu bestehendem Thema
28.04.2018 12:25:30
Mr.T
Ja, dass nur 255 Zeichen verarbeitet können hatte ich irgendwo gelesen.
Aber wie bekomme ich deinen Hilfecode in meinen bestehenden eingebunden?
Bin noch nicht so der VBA Profi, arbeite mich halt Stück für Stück durch immer neu auftretende Probleme durch...
AW: Weitere Frage zu bestehendem Thema
28.04.2018 12:57:40
Daniel
mein hilfscode erstetzt genau die Zeile mit dem .Find
einfach diese eine Zeile durch meine 3 Zeilen austauschen.
ist jetzt nicht so schwer und hat weniger mit VBA-Wissen als mit allgemeiner Intelligenz zu tun.
Gruß Daniel
AW: Weitere Frage zu bestehendem Thema
28.04.2018 13:48:27
Mr.T
Funktioniert bestens!
Danke vielmals!

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige