Microsoft Excel

Herbers Excel/VBA-Archiv

Argumente

Betrifft: Argumente von: mark
Geschrieben am: 14.10.2007 13:21:56

Hallo alle zusammen,
ich möchte nach mehren verschiedenen wörter in einer zelle suche, ist eins davon dabei soll in einer anderen zelle
eine zuweisung geschrieben werden

Beispiel:

zelle a1 steht "karlsruhe-bayern"; für zelle b1 werden alle bundesligavereine gesucht, somit soll in zelle b1
"bundesliga" erscheinen und

gruß mark

  

Betrifft: AW: Argumente von: fcs
Geschrieben am: 14.10.2007 14:25:55

Hallo Mark,

das geht meines Wissens nur mit einer benutzerdefinierten Funktion.

Diese Funktion muss du im VBA-Editor in einem Modul einfügen, Falls für die Datei noch kein Modul vorhanden ist, dann zuerst ein Modul einfügen.

Dann den nachfolgenden Code für die Funktion in das Modul kopieren.

Du kannst jetzt die Funktion "SucheWas" wie jede andere Excelfunktion benutzen.

Beispiel für Formel in Zelle B1:
=SucheWas(A1;$F$1:$G$18))

In den Zellen im Bereich (F1:G18) muss du dann in der linken Spalte (F) die Begriffe eintragen, die in A1 gesucht werden sollen und in der rechten Spalte (G) das Ergebnis (z.B.: Bundesliga) .

Gruß
Franz


Function SucheWas(strSuchen As String, Liste As Range) As String
  'Liste ist ein Bereich mit 2 Spalten
  'in der Linken Spalte stehen die zu vergleichenden Begriffe
  'in der rechten Spalte das Ergebnis der Formel
  Dim I As Integer
  For I = 1 To Liste.Rows.Count
    If strSuchen Like "*" & Liste(I, 1) & "*" Then
      SucheWas = Liste(I, 2)
      Exit For
    End If
  Next
End Function




  

Betrifft: AW: Argumente von: Peter Feustel
Geschrieben am: 14.10.2007 14:44:15

Hallo Mark,

so könnte es gehen:



Public Sub Zuweisung()

Dim aVereine  As Variant
Dim iIndxV    As Integer
Dim sTmp      As Variant
Dim iIndxT    As Integer
Dim iAnzahl   As Integer

   aVereine = Array("Bundesliga", "FC-Bayern", "Karlsruhe", "Werder", "HSV", "Schalke", _
      "Hannover", "Frankfurt", "Bayern", "Herta", "Wolfsburg", "Dortmund", _
      "Stuttgart", "Arminia", "Bochum", "Rostock", "Duisburg", "Nürnberg", "Energie")

   sTmp = Split([A1], "-")

   For iIndxT = 0 To UBound(sTmp)
      For iIndxV = 1 To UBound(aVereine)
         If InStr(aVereine(iIndxV), sTmp(iIndxT)) > 0 Then
            iAnzahl = iAnzahl + 1
         End If
      Next iIndxV
   Next iIndxT

   If iAnzahl > UBound(sTmp) + 1 Then
      [B1] = aVereine(0)
   End If

End Sub 


     Code eingefügt mit Syntaxhighlighter 4.4


Gruß Peter