Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
692to696
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
692to696
692to696
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Suchen und danach änderung speichern

Suchen und danach änderung speichern
08.11.2005 11:25:42
Berchtold
Hallo zusammen
Bin sicher das mir jemand helfen kann, Steh im Moment auf dem Schlauch und komm nicht weiter.
Ich hab ein UserForm zum suchen von Daten über mehrere Tabellenblätter. Das suchen funktioniert soweit gut. Nun möchte ich aber, wenn etwas gefunden wurde dann auch eine Änderung, zb. in Textbox3, vornehmen können und diese abspeichern im jeweiligen Blatt auf dem die jeweilige Zeile gefunden wurde. Der Suchbegriff kann nur einmal vorkommen also nicht mehrmals.
Mein Makro zum suchen sieht so aus:

Private Sub CommandButton6_Click()
Set frm2 = UserForm2
With frm2
Sheets(Array("DG1", "DG2", "DG3", "DG4")).Select
Range("A:A").Select
On Error GoTo fehler
Selection.Find(What:=.TextBox1.Value, _
After:=ActiveCell, _
LookIn:=xlFormulas, LookAt:=xlPart).EntireRow.Select
.TextBox2.Value = ActiveCell.Offset(0, 1).Value
.TextBox7.Value = ActiveCell.Offset(0, 2).Value
.TextBox3.Value = ActiveCell.Offset(0, 3).Value
.TextBox4.Value = ActiveCell.Offset(0, 4).Value
Exit Sub
fehler:
MsgBox "Dossier mit der Nummer : " & .TextBox1.Value & " konnte nicht gefunden werden!"
End With
End Sub

Das Problem dabei ist, dass alle 4 Blätter markiert sind. Eventuell gibt es eine Lösung das dann nur das jweilige Blatt in dem die Zeile gefunden wurde aktiv ist und dann ginge es auch mit dem speichern.
Besten Dank für eure Hilfe
Roger

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Suchen und danach änderung speichern
08.11.2005 11:33:21
Alexander
Hallo Roger. Die Lösung ist zwar nicht schön, aber einfach:

Private Sub CommandButton6_Click()
findeAufBlatt("DG1")
findeAufBlatt("DG2")
findeAufBlatt("DG3")
findeAufBlatt("DG4")
End Sub

Function findeAufBlatt(SheetName As String)
Sheets(SheetName).Select
With UserForm2
Range("A:A").Select
On Error GoTo fehler
Selection.Find(What:=.TextBox1.Value, _
After:=ActiveCell, _
LookIn:=xlFormulas, LookAt:=xlPart).EntireRow.Select
.TextBox2.Value = ActiveCell.Offset(0, 1).Value
.TextBox7.Value = ActiveCell.Offset(0, 2).Value
.TextBox3.Value = ActiveCell.Offset(0, 3).Value
.TextBox4.Value = ActiveCell.Offset(0, 4).Value
Exit Function
fehler:
MsgBox "Dossier mit der Nummer : " & .TextBox1.Value & " konnte nicht gefunden werden!"
End With
End Function
Das könnte man sicher noch verbessern, z.B. wenn man eine public Variable einführt, die sagt ob etwas gefunden wurde oder nicht und in dem Fall dann die restlichen Ausführungen abbricht oder so, aber es ist ein Ansatz.
Gruß, Alexander.
Anzeige
AW: Suchen und danach änderung speichern
08.11.2005 11:45:45
Berchtold
Danke für den Tipp.
Das funktioniert soweit auch, nur das wenn z.B. auf dem Blatt DG3 etwas gefunden wird er auf dem Blatt DG4 stehen bleibt. Das heisst bei jedem Blatt das er nicht findet kommt die Meldung Nummer nicht vorhanden, also bei DG1, DG2, und DG4 wo er dann auch stehen bleibt. Die Fehlermeldung sollte nur kommen wenn niergends was gefunden wurde. Ausserdem sollte das Blatt das die gefundene Zeile enthält aktiv sein.
Danke für die Hilfe
AW: Suchen und danach änderung speichern
08.11.2005 13:02:38
Alexander
Hallo nochmal.
Dann machen wir das ganze am besten so:
Dim FoundOn As String

Private Sub CommandButton6_Click()
FoundOn=""
findeAufBlatt("DG1")
if FoundOn="" then findeAufBlatt("DG2")
if FoundOn="" then findeAufBlatt("DG3")
if FoundOn="" then findeAufBlatt("DG4")
if FoundOn="" then MsgBox "Dossier mit der Nummer : " & .TextBox1.Value & " konnte nicht gefunden werden!"
End Sub

Function findeAufBlatt(SheetName As String)
Sheets(SheetName).Select
With UserForm2
Range("A:A").Select
On Error GoTo fehler
Selection.Find(What:=.TextBox1.Value, _
After:=ActiveCell, _
LookIn:=xlFormulas, LookAt:=xlPart).EntireRow.Select
.TextBox2.Value = ActiveCell.Offset(0, 1).Value
.TextBox7.Value = ActiveCell.Offset(0, 2).Value
.TextBox3.Value = ActiveCell.Offset(0, 3).Value
.TextBox4.Value = ActiveCell.Offset(0, 4).Value
FoundOn=SheetName
End With
fehler:
End Function
Anzeige
Super!
08.11.2005 15:02:49
Berchtold
Vielen Dank Alexander
Du hast mir sehr geholfen. So klappts einwandfrei.
Besten Dank
Gruss
Roger

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige