Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1388to1392
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

IF Then Else

IF Then Else
24.10.2014 08:22:18
NoPa
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

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: IF Then Else
24.10.2014 08:59:40
hary
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

AW: IF Then Else
24.10.2014 10:24:15
NoPa
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

Anzeige
AW: IF Then Else
24.10.2014 10:33:14
hary
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

AW: IF Then Else
24.10.2014 09:02:28
Beverly
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.


Anzeige
an Euch beide
24.10.2014 10:45:13
NoPa
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!? :)

AW: an Euch beide
24.10.2014 10:49:00
hary
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

Anzeige
AW: an Euch beide
24.10.2014 11:35:05
NoPa
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

Anzeige
AW: an Euch beide
24.10.2014 11:42:37
Beverly
Hi,
du hast meinen Beitrag schon gelesen?


AW: an Euch beide
24.10.2014 11:07:37
Beverly
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


Anzeige
AW: an Euch beide
24.10.2014 11:52:09
NoPa
O ja, jetzt habe ich es gelesen!
wunderbar! jetzt! hoffe ich noch dass ich damit das restliche machen kann!?
Danke

AW: an Euch beide
24.10.2014 12:18:45
Beverly
Hi,
klar, anstelle dieser Zeile: rngZelle.Offset(0, 1) = "Ok"


AW: an Euch beide
24.10.2014 13:33:08
NoPa
Ok ich warte!
Danke

AW: an Euch beide
24.10.2014 13:55:27
Beverly
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...


AW: an Euch beide
27.10.2014 07:51:51
NoPa
Guten morgen,
ich hoffe schon, dass das dann so hin haut wie ich mir das ausgedacht hatte!
Gruß
Norbert
Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige