VBA für index-vergleich

Moderator: ModerationP

Re: VBA für index-vergleich

Beitragvon HH-Joh. » 03. Dez 2020, 21:06

Hallo Helmut,

danke für deine Unterstützung. Jetzt hab ich es verstanden.
Der Code klappt nun wie vorgesehen.

Gruß
Johanna
_________________________________________________________________________________
Win 10 - Office 365 -
HH-Joh.
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 136
Registriert: 15. Mai 2015, 08:55

Re: VBA für index-vergleich

Beitragvon HH-Joh. » 04. Dez 2020, 06:35

so geht es jetzt gut
Code: Alles auswählen
Sub KundenFinden()
Dim Suchzelle As String
Dim Kdno As String
Dim rngFound As Range
Dim firstAddress As Variant
Dim Frage As String

'Suchzelle = Worksheets("Kunden").Range("G3").Value
Frage = InputBox("Bitte geben Sie einen Wert ein", "Werte-Eingabe", , 200, 500)
MsgBox Frage

Suchzelle = Frage
 
With Worksheets("Kunden").Range("b2:b300")

Set rngFound = .Find(What:="*" & Suchzelle & "*", LookIn:=xlValues)
   
  If Not rngFound Is Nothing Then
    Do
     firstAddress = rngFound.Address
      Kdno = rngFound.Offset(, -1).Value
      Set rngFound = .FindNext(rngFound)
      MsgBox Kdno
     Loop While rngFound.Address <> firstAddress
     
      MsgBox "Suche abgeschlossen."
    Else
       MsgBox "Suche war ergebnislos."
  End If
  End With
End Sub
_________________________________________________________________________________
Win 10 - Office 365 -
HH-Joh.
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 136
Registriert: 15. Mai 2015, 08:55

Re: VBA für index-vergleich

Beitragvon HH-Joh. » 29. Dez 2020, 20:11

Hallo in die Runde,
der Code funktioniert gut, wenn der Suchbegriff nur einmal in der Liste vorkommt. Habe ich aber den Suchbegriff zweimal, so komme ich aus der Schleife nicht mehr raus. Die Suche fängt dann wieder von vorne an.
Habt ihr einen Denkanstoß für mich, wie ich den Code umschreiben kann, dass auch dieser (zwar seltene Fall) abgefedert werden kann.
Danke im voraus.

Johanna
_________________________________________________________________________________
Win 10 - Office 365 -
HH-Joh.
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 136
Registriert: 15. Mai 2015, 08:55

Re: VBA für index-vergleich

Beitragvon HKindler » 29. Dez 2020, 20:42

Hi,

überlege dir einmal ganz genau was wohl mit firstaddress gemeint sein könnte und wann du dir dann diese merken solltest...
Gruß,
Helmut

----------------------------
Windows 10 Enterprise (64 Bit) / Office 365 ProPlus (32 Bit)
Benutzeravatar
HKindler
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 5854
Registriert: 04. Jul 2013, 09:02
Wohnort: Schwarzwald

Re: VBA für index-vergleich

Beitragvon HH-Joh. » 29. Dez 2020, 21:34

Hallo Helmut, danke für den Tipp. So klappt es jetzt.
Code: Alles auswählen
Option Explicit
    Sub KundenFinden2()
    Dim Suchzelle As String
    Dim Kdno As String
    Dim rngFound As Range
    Dim firstAddress As Variant
    Dim Frage As String
    Dim Name As String

    'Suchzelle = Worksheets("Kunden").Range("G3").Value
    Frage = InputBox("Bitte geben Sie einen Wert ein", "Werte-Eingabe", , 200, 500)
    MsgBox Frage

    Suchzelle = Frage
     
    With Worksheets("Kunden").Range("b2:b300")

    Set rngFound = .Find(What:="*" & Suchzelle & "*", LookIn:=xlValues)
           'MsgBox rngFound.Address
           
      If Not rngFound Is Nothing Then
      firstAddress = rngFound.Address
        Do
             Name = rngFound
             MsgBox Name
             Kdno = rngFound.Offset(, -1).Value
            Set rngFound = .FindNext(rngFound)
            MsgBox Kdno
         Loop While rngFound.Address <> firstAddress
          MsgBox "Suche abgeschlossen."
        Else
           MsgBox "Suche war ergebnislos."
      End If
      End With
    End Sub
_________________________________________________________________________________
Win 10 - Office 365 -
HH-Joh.
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 136
Registriert: 15. Mai 2015, 08:55

Vorherige

Zurück zu Excel Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 6 Gäste