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

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

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
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

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige