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 CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

IF Then Else

Betrifft: IF Then Else von: NoPa
Geschrieben am: 24.10.2014 08:22:18

Hallo,

ich möchte über eine Eingabe aus einem UserForm einen Wert in der ersten Spalte suchen. Und wenn er ihn gefunden hat soll er eine Anweisung ausführen.
Wenn nicht, soll er eine andere Anweisung ausführen!
Ich komme mit dem Buch „Einstig in VBA mit Excel“ nicht zurecht!

Wie geht das!? Kann mir bitte einer helfen!?

Hier mein Versuch!
https://www.herber.de/bbs/user/93327.xlsm

Danke
Gruß
Norbert

  

Betrifft: AW: IF Then Else von: hary
Geschrieben am: 24.10.2014 08:59:40

Moin Norbet

Dim KW
Dim zelle As Range
KW = TextBox2
Set zelle = Worksheets("Tabelle1").Columns(1).Find(What:=KW)
  If Not zelle Is Nothing Then
   zelle.Offset(, 2) = "OK"
  Else
   Set zelle = Worksheets("Tabelle1").Columns(2).Find(What:=KW)
     If Not zelle Is Nothing Then
       zelle.Offset(, 2) = "OK"
     Else
       MsgBox " nicht vorhanden"
     End If
  End If
Unload Me
End Sub

gruss hary


  

Betrifft: AW: IF Then Else von: NoPa
Geschrieben am: 24.10.2014 10:24:15

Hallo,

klappt super! Vielen Dank.
Habe leider noch vergessen zu sagen, dass wenn er es in der 1.Spalte gefunden hat auch in der 2.Spalte und soger später in der 3. und 4. Spalte suchen und ausführen soll.

Eigentlich soll er in jeder Spalte von 1 bis 4 suchen ob die KW drin steht! und überall wo er die KW findet soll er die Anweisung durch führen! und wenn nicht gefunden, dann in er nächsten Spalte von 1-4 suchen!

Habt Ihr dafür auch eine Lösung?!

Danke
Norbert


  

Betrifft: AW: IF Then Else von: hary
Geschrieben am: 24.10.2014 10:33:14

Moin
"soll er in jeder Spalte von 1 bis 4"
????? Meinst du in SpalteA bis SpalteD die Zeilen 1 bis 4?
Dann passt aber Offset(,2) nie.
Beschrei mal besser.
gruss hary


  

Betrifft: AW: IF Then Else von: Beverly
Geschrieben am: 24.10.2014 09:02:28

Hi Norbert,

ich kenne das Buch leider nicht, aber ich würde es so lösen:

Private Sub CommandButton1_Click()
    Dim rngZelle As Range
    Set rngZelle = Columns(1).Find(TextBox2, lookat:=xlWhole)
    If Not rngZelle Is Nothing Then
        rngZelle.Offset(0, 2) = "Ok"
    Else
        Set rngZelle = Columns(2).Find(TextBox2, lookat:=xlWhole)
        If Not rngZelle Is Nothing Then
            rngZelle.Offset(0, 2) = "Ok"
        Else
            MsgBox "Nicht gefunden"
        End If
    End If
    Set rngZelle = Nothing
    Unload Me
End Sub
Allerdings ist dabei nicht berücksichtigt, dass der Sucherwert in BEIDEN Spalten vorhanden sein kann - dann müsste man es anders lösen.


GrußformelBeverly's Excel - Inn


  

Betrifft: an Euch beide von: NoPa
Geschrieben am: 24.10.2014 10:45:13

Hallo Ihr beiden,

eigentlich gut!
Ich tu mich immer etwas schwer das alles in Worte zu fassen was in meinem Kopf vorgeht! Ich versuche es jetzt:
über all wo die gesuchte KW steht, soll er dort wo die KW steht mit Offset(,2) "OK" eintragen.
also in Spalte 1,2,3 und 4.
Sollte er z.B. eine KW in einer Spalte nicht finden, dann soll er nur dort die Anweisung ausführen wo sie gefunden wurde!

ich hoffe Ihr versteht mich!? :)


  

Betrifft: AW: an Euch beide von: hary
Geschrieben am: 24.10.2014 10:49:00

Moin nochmal
Alles klar, nur mit Offset(,2) ueberschreibt er Bspw. wenn gefunden in SpalteA die Zelle in SpalteC mit "OK". Soll das so sein?
gruss hary


  

Betrifft: AW: an Euch beide von: NoPa
Geschrieben am: 24.10.2014 11:35:05

Hi,

o Gott... ich glaube jetzt wirds kompliziert.... :(
ok, eigentlich soll nicht das "OK" geschrieben werden. Ich habe das"OK" eigentlich nur als "Platzhalter" verwendet. Anstatt dem "OK" muss ich eigentlich einen Wert der mit Offset(,2) ermittelt wird, kopieren und in die Tabelle2 an eine bestimmte Stelle einfügen!
Ich brauche eigentlich nur den Ansatz, wie ich in jeder der 4 Spalten eine KW finde, und mit offset,2 den jeweiligen Wert, wo die KW gefunden wurde, kopieren.
Dann kann ich mit meiner anderen Anweisung die ich bereits habe weiter machen!


Hier mein vorhaben!
https://www.herber.de/bbs/user/93337.xlsm

Ich hoffe dass ich meine Gedanken soweit vermitteln konnte.

Wenn nicht, dann ist das auch nicht schlimm! Nur nicht böse auf mein Durcheinander sein! :)

Grüße


  

Betrifft: AW: an Euch beide von: Beverly
Geschrieben am: 24.10.2014 11:42:37

Hi,

du hast meinen Beitrag schon gelesen?


GrußformelBeverly's Excel - Inn


  

Betrifft: AW: an Euch beide von: Beverly
Geschrieben am: 24.10.2014 11:07:37

Hi,

Private Sub CommandButton1_Click()
    Dim rngZelle As Range
    Dim strStart As String
    With Columns("A:D")
        Set rngZelle = .Find(TextBox2, lookat:=xlWhole)
        If Not rngZelle Is Nothing Then
            strStart = rngZelle.Address
            Do
                rngZelle.Offset(0, 1) = "Ok"
                Set rngZelle = .FindNext(rngZelle)
            Loop While Not rngZelle Is Nothing And rngZelle.Address <> strStart
        Else
            MsgBox "Nicht gefunden"
        End If
        Set rngZelle = Nothing
    End With
    Unload Me
End Sub

GrußformelBeverly's Excel - Inn


  

Betrifft: AW: an Euch beide von: NoPa
Geschrieben am: 24.10.2014 11:52:09

O ja, jetzt habe ich es gelesen!


wunderbar! jetzt! hoffe ich noch dass ich damit das restliche machen kann!?

Danke


  

Betrifft: AW: an Euch beide von: Beverly
Geschrieben am: 24.10.2014 12:18:45

Hi,

klar, anstelle dieser Zeile: rngZelle.Offset(0, 1) = "Ok"


GrußformelBeverly's Excel - Inn


  

Betrifft: AW: an Euch beide von: NoPa
Geschrieben am: 24.10.2014 13:33:08

Ok ich warte!
Danke


  

Betrifft: AW: an Euch beide von: Beverly
Geschrieben am: 24.10.2014 13:55:27

Hi,

ehm, du wolltest einen Ansatz, wie man alle Stellen finden kann, wo der Suchtext steht - der Rest (so hätte ich deinen Beiträgen entnommen) war dir klar...


GrußformelBeverly's Excel - Inn


  

Betrifft: AW: an Euch beide von: NoPa
Geschrieben am: 27.10.2014 07:51:51

Guten morgen,

ich hoffe schon, dass das dann so hin haut wie ich mir das ausgedacht hatte!

Gruß
Norbert