Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

Prüfproblem


Betrifft: Prüfproblem von: Peter
Geschrieben am: 26.09.2019 13:46:12

Hallo,

ich suche mit "Set rng = wksWD.Range("D2:D" & z).Find(Zelle_A)" ob der Begriff aus Textbox3=Zelle_A in der Spalte D vorhanden ist.

Nun mein Problem:
wenn der Wert(z.B. Test2) in der Spalte nicht vorhanden ist und damit rng = nothing
dann soll Makro ausgeführt werden.

Könnt ihr mir bitte helfen.

Besten Dank

Gruss
Peter

  

Betrifft: AW: Prüfproblem von: Werner
Geschrieben am: 26.09.2019 13:51:59

Hallo Peter,

Set rng = wksWD.Range("D2:D" & z).Find(Zelle_A)
If Not rng Is Nothing Then
     '....mach was wenn vorhanden
Else
     '....mach was wenn nicht vorhanden
End If
Gruß Werner


  

Betrifft: AW: Prüfproblem von: Peter
Geschrieben am: 26.09.2019 14:00:31

Hallo Werner,

besten Dank für Deine Hilfe.

Ich habe folgendes Problem:

1. Prüfung Wert in Spalte=rng = nothing und TextBox3=""
2. Prüfung Wert in Spalte=rng = vorhanden und TextBox3=identisch mit rng
3. Prüfung Wert in Spalte=rng = nothing und TextBox3 vorhanden nicht identisch mit rng

Gruss
Peter


  

Betrifft: AW: Prüfproblem von: Werner
Geschrieben am: 26.09.2019 14:19:15

Hallo Peter,

meinst du so was?

If Not Zelle_A = vbNullString Then
    Set Rng = wksWD.Range("D2:D" & Z).Find(what:=Zelle_A, LookIn:=xlValues, LookAt:=xlWhole)
    If Not Rng Is Nothing Then
        '....mach was wenn vorhanden
    Else
        '....mach was wenn nicht vorhanden
    End If
End If
Gruß Werner


  

Betrifft: bei der Find-Methode immer ... von: Rudi Maintaire
Geschrieben am: 26.09.2019 14:00:45

Hallo,
... zumindest den Parameter LookAt:= xlPart/ xlWhole mitgeben. Sonst ist das Ergebnis unberechenbar.

Set rng = wksWD.Range("D2:D" & z).Find(What:=Zelle_A, LookAt:=xlwhole)
If rng Is Nothing Then
     '....mach was wenn nicht vorhanden
Else
     '....mach was wenn vorhanden
End If

Gruß
Rudi


  

Betrifft: AW: bei der Find-Methode immer ... von: Peter
Geschrieben am: 26.09.2019 18:59:00

Hallo Rudi,

besten Dank für Deine Hilfe. Ich komme monentan nicht weiter.

Melde mich wieder.

Gruss
Peter


  

Betrifft: AW: bei der Find-Methode immer ... von: Peter
Geschrieben am: 26.09.2019 19:29:55

Hallo Rudi,

das Problem ist folgendes:

Wenn ich in der SpalteD den Wert von TB3 suche und dort steht nichts drin also = "" dann ergibt sich eine Fehlermeldung, das das Ergebnis von rng = nothing und der Wert von TB3 = "" und diese Prüfung passt nicht zusammen.

Was ist hier zu machen, um eine Lösung zu finden?

Kann man den Wert = nothing in = "" umwandeln= ?

Gruss
Peter


  

Betrifft: AW: Prüfproblem von: Piet
Geschrieben am: 26.09.2019 19:56:00

Hallo Peter

probier bitte mal diese variante. Es ist der Code von Werner, nur ein bisschen "umgestrickt"!
Ich habe mir dazu die drei Prüfungsregeln noch mal genau angesehen. So sieht meine Lösung aus:

mfg Piet

Sub test()
'1. Prüfung TextBox2 = "", kein Wert! Mit MsgBox Meldung abfangen!
If Textbox3 = Empty Then MsgBox "Kein Wert in Textbox3 vorhanden - bitte ausfüllen!": Exit Sub

   Set Rng = wksWD.Range("D2:D" & z).Find(Zelle_A)
     '2. Prüfung "rng" vorhanden + mit TextBox3 identisch!
     If Not Rng Is Nothing Then
     If Rng.Value = Textbox3.Value Then
          '....mach was wenn vorhanden
     End If
     End If

     '3. Prüfung kann entfallen, da gibt es keinen "rng" zum vergleichen!!
     If Rng Is Nothing Then
          '....ggf, Fehlermeldung ausgeben, sonst kann dieser Teil entfallen!
          '** bei vielen Daten könnte eine MsgBox als Fehlermeldung hinderlich sein ....
     End If
End Sub



  

Betrifft: AW: Prüfproblem gelöst von: Peter
Geschrieben am: 27.09.2019 08:55:12

Hallo Piet,

besten Dank für Deine Hilfe. Ich habe Deine Lösung auf meine konkreten Bedürfnisse angepasst.

Es funktioniert einwandfrei.

Vielen Dank an alle die mir geholfen haben.

Ich möchte an dieser Stelle einmal allen Danken, die in diesem Forum Hilfe geben um die Programierprobleme zu lösen.

Gruss
Peter