Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
904to908
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
904to908
904to908
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

InputBox

InputBox
10.09.2007 15:16:00
lisa
Hall Exceljaner
Kann mir bitte noch einmal jemand helfen?
Ist es möglich hier die Abfrage über die Inputbox rauszunehmen und statt dessen die Eingabe über eine Celle ("a1") zu steuern?

Private Sub CommandButton1_Click()
Dim intwort, intbereich, intergebnis, intgef As Integer
Dim loletzte As Long
Range("e1:f1").ClearContents
intgef = 1
loletzte = IIf(IsEmpty(Range("d65536")), Range("d65536").End(xlUp).Row + 1, 65536)
intwort = InputBox("Was soll gesucht werden?")
If intwort = "" Then Exit Sub
For intbereich = 4 To loletzte
If InStr(1, Cells(intbereich, 4), intwort, vbTextCompare) Then
Cells(intgef, 5) = Cells(intbereich, 4)
intergebnis = intbereich
Rows(intbereich).Delete
Cells(intgef, 6) = intergebnis
intgef = intgef + 1
End If
Next intbereich
End Sub


Liebe Grüße Lisa

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: InputBox
10.09.2007 15:21:00
Andi
Hi,
intwort = InputBox("Was soll gesucht werden?")
ersetzen durch
intwort = Range("A1").Value
Die Eingabe in C1 muss aber vor dem Klick auf den Button passieren, weil keine Eingaben in einer Zelle möglich sind, solange ein Makro läuft.
Schönen Gruß,
Andi

AW: InputBox
10.09.2007 15:52:45
lisa
Hallo Andi
Das funktioniert so sehr gut.
Ist es vieleicht auch möglich auf den Button zu verzichten und statt dessen nach der Eingabe in a1 den gesuchten Datensatz anzeigen zu lassen?
Liebe Grüße Lisa

AW: InputBox
10.09.2007 16:05:00
Renee
Hi Lisa,
Dann sollte Dein Code in die Tabelle und zwar ungefähr so:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim intbereich, intergebnis, intgef As Integer
Dim loletzte As Long
If Target.Address  "$A$1" Then Exit Sub
ActiveSheet.Range("e1:f1").ClearContents
intgef = 1
loletzte = IIf(IsEmpty(ActiveSheet.Range("d65536")), ActiveSheet.Range("d65536").End(xlUp). _
Row + 1, 65536)
If Target = "" Then Exit Sub
For intbereich = 4 To loletzte
If InStr(1, ActiveSheet.Cells(intbereich, 4), Target, vbTextCompare) Then
ActiveSheet.Cells(intgef, 5) = ActiveSheet.Cells(intbereich, 4)
intergebnis = intbereich
ActiveSheet.Rows(intbereich).Delete
ActiveSheet.Cells(intgef, 6) = intergebnis
intgef = intgef + 1
End If
Next intbereich
End Sub


GreetZ Renee

Anzeige
AW: InputBox
10.09.2007 16:07:42
Rudi
Hallo,
in das Klassenmodul der Tabelle:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" And Target  "" Then
On Error GoTo FEHLER
Application.EnableEvents = False
Dim intbereich, intgef As Integer
Dim loletzte As Long
Range("e1:f1").ClearContents
intgef = 1
loletzte = IIf(IsEmpty(Range("d65536")), Range("d65536").End(xlUp).Row + 1, 65536)
For intbereich = 4 To loletzte
If InStr(1, Cells(intbereich, 4), Target, vbTextCompare) Then
Cells(intgef, 5) = Cells(intbereich, 4)
Rows(intbereich).Delete
Cells(intgef, 6) = intbereich
intgef = intgef + 1
End If
Next intbereich
End If
FEHLER:
Application.EnableEvents = True
End Sub


Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

Anzeige
AW: InputBox
11.09.2007 10:08:00
lisa
Hallo zusammen
Ich habe versucht es hinzubekommen.
So wie beschrieben, ins KLassenmodul der Tabelle, ohne Klassenmodul in die Tabelle, aber es tut sich nichts.
Was mache ich falsch?
Gruß lisa

AW: InputBox
10.09.2007 16:09:00
Renee
Hi Nochmals,
Nimm RUDI's Code, ich hab den EnableEvents = False vergessen ! Mea culpa.
GreetZ Renee

AW: InputBox
11.09.2007 12:31:26
lisa
Hallo Renee
Ich habe ja Rudi´s Code, so wie du gestern gesagt hast, genommen, aber damit funktioniert es ja nicht.
Gruß Lisa

AW: InputBox
11.09.2007 13:11:44
Renee
Hallo Lisa,
Der Code in die Tabelle, in der Du das Verhalten wünschst:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim intbereich, intergebnis, intgef As Integer
Dim loletzte As Long
If Target.Address  "$A$1" Then Exit Sub
Application.EnableEvents = False
ActiveSheet.Range("e1:f1").ClearContents
intgef = 1
loletzte = IIf(IsEmpty(ActiveSheet.Range("d65536")), _
ActiveSheet.Range("d65536").End(xlUp).Row + 1, 65536)
If Target = "" Then Exit Sub
For intbereich = 4 To loletzte
If InStr(1, ActiveSheet.Cells(intbereich, 4), Target, vbTextCompare) Then
ActiveSheet.Cells(intgef, 5) = ActiveSheet.Cells(intbereich, 4)
intergebnis = intbereich
ActiveSheet.Rows(intbereich).Delete
ActiveSheet.Cells(intgef, 6) = intergebnis
intgef = intgef + 1
End If
Next intbereich
Application.EnableEvents = True
End Sub


macht genau das was Dein alter Code, via Inputbox gemacht hat.
GreetZ Renee

Anzeige
AW: Ja Danke jetzt klappt es! oT
11.09.2007 13:20:00
lisa

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige