Collapse column

Beiträge anzeigen

Diese Sektion erlaubt es dir alle Beiträge dieses Mitglieds zu sehen. Beachte, dass du nur solche Beiträge sehen kannst, zu denen du auch Zugriffsrechte hast.


Nachrichten - tooob

Seiten: [1]
1
Excel / Do Schleife bei einer Suchfunktion (VBA UserForm)
« am: August 20, 2015, 10:45:44 Vormittag »
Hallo zusammen,

ich versuche Namen zu suchen in einer Tabelle. In A stehen die Nachnamen, in B Vornamen. Das ganze soll in einer VBA User Form geschehen.
Einzelne Nachnamen zu suchen ist kein Problem, Namen wie Müller, Meier etc. ;) kommen jedoch häufiger vor und sollen dann in Kombination mit dem Vornamen ausgegeben werden. Das Problem ist, dass ich nicht weiß wie ich eine passende Schleife da rein setzte, dass der solange sucht bis Vorname und Nachname in der gleiche Row gefunden werden.

Das ist mein Ansatz:

Zitat
Private Sub Such_Click()
Dim i As Integer
 Dim rZelle        As Range
 Dim rZelle2        As Range
 Dim sSuchbegriff  As String
 Dim sSuchbegriff2  As String

    If Trim$(TextBox1.Value) <> "" Then
       sSuchbegriff = Trim$(TextBox1.Value)
     Else
       MsgBox "Sie müssen einen Suchbegiff eingeben - danke.", _
          48, "   Hinweis für " & Application.UserName
       Exit Sub
    End If
   
    If Trim$(TextBox2.Value) <> "" Then
       sSuchbegriff2 = Trim$(TextBox2.Value)
     Else
       MsgBox "Sie müssen einen Suchbegiff eingeben - danke.", _
          48, "   Hinweis für " & Application.UserName
       Exit Sub
    End If


Do
i = 1
Set rZelle = ThisWorkbook.Worksheets("Daten").Cells(i, 1).Find(what:=sSuchbegriff, LookAt:=xlPart, LookIn:=xlValues)
Set rZelle2 = ThisWorkbook.Worksheets("Daten").Cells(i, 2).Find(what:=sSuchbegriff2, LookAt:=xlPart, LookIn:=xlValues)
   
 If rZelle.Row = rZelle2.Row Then
 
   
       With ThisWorkbook.Worksheets("Daten").Columns(1)
       If Not rZelle Is Nothing Then
         Label2.Caption = .Range("A" & rZelle.Row).Value
          Label3.Caption = .Range("B" & rZelle.Row).Value
          Label4.Caption = .Range("C" & rZelle.Row).Value
          Label5.Caption = .Range("D" & rZelle.Row).Value
          Label6.Caption = .Range("E" & rZelle.Row).Value
          Label7.Caption = .Range("F" & rZelle.Row).Value
          Label44.Caption = .Range("G" & rZelle.Row).Value
          Label9.Caption = .Range("H" & rZelle.Row).Value
          Label10.Caption = .Range("I" & rZelle.Row).Value
          Label11.Caption = .Range("J" & rZelle.Row).Value
          Label12.Caption = .Range("K" & rZelle.Row).Value
          Label13.Caption = .Range("L" & rZelle.Row).Value
          Label14.Caption = .Range("M" & rZelle.Row).Value
          Label15.Caption = .Range("N" & rZelle.Row).Value
          Label16.Caption = .Range("O" & rZelle.Row).Value
          Label17.Caption = .Range("P" & rZelle.Row).Value
          Label39.Caption = .Range("Q" & rZelle.Row).Value
          Label40.Caption = .Range("R" & rZelle.Row).Value
          Label41.Caption = .Range("S" & rZelle.Row).Value
          Label42.Caption = .Range("T" & rZelle.Row).Value
          Label43.Caption = .Range("U" & rZelle.Row).Value
         Label45.Caption = .Range("V" & rZelle.Row).Value
         
         
       
         
       ' usw.
        Else
          MsgBox "Der Begriff  """ & sSuchbegriff & """  wurde nicht gefunden.", _
             48, "   Hinweis für " & Application.UserName
          With TextBox1
             .SetFocus
             .SelStart = 0
             .SelLength = Len(.Text)
          End With
       End If
   End With
Else
i = i + 1
Loop
End If

   Set rZelle = Nothing
Set rZelle2 = Nothing
 End Sub


Das mit der Schleife stimmt vorne und hinten nicht,... wäre über Hilfe sehr dankbar.
Liebe Grüße

2
Excel / Antw: Daten in Tabelle per Userform ändern
« am: August 19, 2015, 12:39:15 Nachmittag »
Hab es schon!
Trotzdem Danke

3
Excel / Daten in Tabelle per Userform ändern
« am: August 19, 2015, 12:08:17 Nachmittag »
Hallo zusammen,

ich versuche Daten aus einer Tabelle zu suchen (nach Namen), und dann Änderungen abzuspeichern. Das Suchen mittels des Buttons Such funktioniert einwandfrei.
Der Button speichern funktioniert hingegen nicht. Er schreibt eine neue Zeile statt die alte zu überspeichern (Ist bei dem Code auch zu erwarten, aber ich weiß nicht wie man emptyRow die richtige Zelle zu weißt).
Wie kann ich der Variabel emptyRow die richtige Zeile zuweisen, damit er auch darin überschreibt ?


Hier der Code zum Speicher Button:

Private Sub Speichern_Click()

Dim emptyRow as Long

Worksheets("Daten").Activate


emptyRow = WorksheetFunction.CountA(Range("A:A")) + 1

Cells(emptyRow, 1).Value = TextBox2.Value
Cells(emptyRow, 2).Value = TextBox3.Value
Cells(emptyRow, 3).Value = TextBox4.Value
Cells(emptyRow, 4).Value = TextBox5.Value
Cells(emptyRow, 5).Value = TextBox6.Value
Cells(emptyRow, 6).Value = ComboBox1.Value


Cells(emptyRow, 7).Value = TextBox8.Value

Cells(emptyRow, 8).Value = ComboBox2.Value
Cells(emptyRow, 9).Value = ComboBox3.Value



Cells(emptyRow, 10).Value = TextBox10.Value


If CheckBox1.Value = True Then Cells(emptyRow, 11).Value = CheckBox1.Caption
If CheckBox2.Value = True Then Cells(emptyRow, 11).Value = CheckBox2.Caption


Cells(emptyRow, 12).Value = ComboBox4.Value
Cells(emptyRow, 13).Value = ComboBox5.Value
Cells(emptyRow, 14).Value = ComboBox6.Value
Cells(emptyRow, 15).Value = ComboBox7.Value

Cells(emptyRow, 19).Value = TextBox9.Value
Cells(emptyRow, 20).Value = TextBox11.Value
Cells(emptyRow, 21).Value = TextBox12.Value
Cells(emptyRow, 22).Value = TextBox13.Value

If CheckBox3.Value = True Then Cells(emptyRow, 17).Value = CheckBox3.Caption
If CheckBox4.Value = True Then Cells(emptyRow, 17).Value = CheckBox4.Caption

If CheckBox5.Value = True Then Cells(emptyRow, 18).Value = CheckBox7.Caption
If CheckBox6.Value = True Then Cells(emptyRow, 18).Value = CheckBox8.Caption

If CheckBox7.Value = True Then Cells(emptyRow, 16).Value = CheckBox7.Caption
If CheckBox8.Value = True Then Cells(emptyRow, 16).Value = CheckBox8.Caption


End Sub


Hier ein Teil des Codes zum Suchen:

Private Sub Such_Click()

 Dim rZelle        As Range
 Dim sSuchbegriff  As String

    If Trim$(TextBox1.Value) <> "" Then
       sSuchbegriff = Trim$(TextBox1.Value)
     Else
       MsgBox "Sie müssen einen Suchbegiff eingeben - danke.", _
          48, "   Hinweis für " & Application.UserName
       Exit Sub
    End If

    With ThisWorkbook.Worksheets("Daten").Columns(1)
       Set rZelle = .Find(What:=sSuchbegriff, LookAt:=xlWhole, LookIn:=xlValues)
       If Not rZelle Is Nothing Then
         TextBox2.Value = .Range("A" & rZelle.Row).Value
          TextBox3.Value = .Range("B" & rZelle.Row).Value
          TextBox4.Value = .Range("C" & rZelle.Row).Value
....
usw.



Vielen Dank!!!


Seiten: [1]