Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Bitte um Fehleridentifikation

Forumthread: Bitte um Fehleridentifikation

Bitte um Fehleridentifikation
26.01.2017 16:30:28
Ferderik
Hallo liebe Forenmitglieder. Ich beschäftige mich erst seit gut einer Woche mit VBA, aber finde langsam einen Einstieg. Nun habe ich schon eine halbwegs ordentliche Funktion ohne Fehlermeldungen zusammenkopiert, aber irgendeine Kleinigkeit funktioniert noch nicht wie es soll.
Mein Ziel ist es eine Zelle nach verschiedenen Suchbegriffen in einem Bereich A zu durchsuchen. Wenn etwas gefunden wird, sollen alternative Werte aus Spalte B kommagetrennt in die Zelle ausgegeben werden.
Beispiel:
In Spalte A steht: [Apfel,Birnen,Bananen,Kiwi]
In Spalte B steht: [1,2,3,4]
Durchsucht wird die Zelle mit dem Inhalt: [Apf Kiw]
Ergebnis soll sein: [1,4]
Was mir mein Programm ausgibt: [1,2,3,4]
Und hier das Programm:

Public Function Substituieren(Zelle As String, Referenz As Range, Substitut As Range) As String
Dim i As Integer
Dim mydic As Object
Set mydic = CreateObject("Scripting.Dictionary")
TMP = Referenz
For i = 1 To Referenz.Count
If InStr(Zelle, Referenz.Item(i)) = 0 Then
mydic(TMP(i, 1)) = Substitut.Item(i)
End If
Next i
Substituieren = Join(mydic.items, ",")
End Function

Kann mir jemand sagen, wo mein Fehler liegt!?
Viele Grüße
Frederik
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bitte um Fehleridentifikation
26.01.2017 16:33:56
Ferderik
Das Beispiel war schlecht gewählt, Apfel und Kiwi müssten ausgeschrieben sein. Nichts desto trotz, das Ergebnis bleibt das selbe...
AW: Bitte um Fehleridentifikation
26.01.2017 16:50:29
ChrisL
Hi Frederik
Bei mir kommt 2,3 raus anstelle von 1,4, was aber nur darin liegt, dass du InStr()=0 und nicht grösser null schreibst. Dass bei dir alle Werte raus kommen kann ich nicht nachvollziehen.
Sub t()
MsgBox Substituieren("Apfel Kiwi", Range("A1:A4"), Range("B1:B4"))
End Sub
cu
Chris
Anzeige
AW: Bitte um Fehleridentifikation
26.01.2017 17:05:28
Ferderik
Oh man, ich hab meine Testdaten schlecht gewählt und deshalb konnte es nicht funktioniert. Allerdings hast du mich erst nochmal darüber nachdenken lassen..! Also danke dir!
Hier nochmal das funktionierende Programm für Interessierte:
Public Function Substituieren(Zelle As String, Referenz As Range, Substitut As Range) As String
Dim i As Integer
Dim mydic As Object
Set mydic = CreateObject("Scripting.Dictionary")
TMP = Referenz
For i = 1 To Referenz.Count
If InStr(Zelle, Referenz.Item(i)) > 0 Then
mydic(TMP(i, 1)) = Substitut.Item(i)
End If
Next i
Substituieren = Join(mydic.items, ",")
End Function

Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige