Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Eingabemaske
#1
Guten Morgen,

Bei Eingabe von Daten in der Eingabemaske werden vorhandene Daten überschrieben.
Ich vermute, dass dies vorkommt, wenn ein Filter gesetzt ist.
Wäre es möglich, dass die Filter aufgehoben werden bevor die Eingabemaske eingeblendet wird?
Weiters habe ich die Sortierung ziemlich laienhaft gemacht, vielleicht kann man diese verkürzen.
Sortiert wird zuerst der OP- Raum und dann die Reihenfolge der Patienten
Mit bestem Dank im Voraus für eure Mühe
Ich lade die Datei mit hoch, mit dem Hinweis, dass diese Datei ohne die Hilfe von Rabe und Kuwert
niemals zustande gekommen wäre


Angehängte Dateien
.xlsm   OP2.xlsm (Größe: 339,5 KB / Downloads: 18)
Office 2010
Antworten Top
#2
Hallo Geri,

probiere es mal so:
Private Sub UserForm_Initialize()               'Standard für Userform setzen
  Dim i As Long
  ComboBox1.Clear
  ComboBox1.AddItem "Neuen Patienten hinzufügen"
  'For i = 4 To Cells(Rows.Count, 1).End(xlUp).Row
  For i = 4 To Columns(1).SpecialCells(xlCellTypeBlanks).Row - 1
     ComboBox1.AddItem Cells(i, 1).Value & ", " & Cells(i, 2).Value
  Next i
  ComboBox1.ListIndex = 0
End Sub
Gruß Uwe
Antworten Top
#3
Hallo Geri,

zur Frage 2:
Sub Tabelle1sortieren()
 With ActiveWorkbook.Worksheets("Tabelle1").Sort
   .SortFields.Clear
   .SortFields.Add Key:=Range("V4"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
   .SortFields.Add Key:=Range("N4"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
   .SortFields.Add Key:=Range("O4"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
   .SetRange Range("A3:XEL261")
   .Header = xlYes
   .MatchCase = False
   .Orientation = xlTopToBottom
   .SortMethod = xlPinYin
   .Apply
 End With
End Sub
Gruß Uwe
Antworten Top
#4
Hallo Uwe,

werde es morgen probieren und melde mich dann. Ich habe  zuhause nur Office 2003 
Vielen Dank inzwischen
Office 2010
Antworten Top
#5
Guten Morgen Uwe

ich habe deinen Code eingefügt und getestet.
Das sortieren klappt wunderbar nachdem ich die Sortierung in Spalte V entfernt habe
Leider klappt der Code bei der Eingabemaske nicht. Bei gesetztem Filter wird immer 
der letzte Datensatz überschrieben. Ohne Filter läuft die Eingabemaske ohne Probleme

Danke dir Uwe, für die Mühe die du dir meinetwegen machst

LG Geri
Office 2010
Antworten Top
#6
Hallo Geri,

ersetze mal den Userformcode komplett:



' **************************************************************
'  Modul:  Eingabemaske  Typ = Userform
' **************************************************************


Option Explicit

Dim lngZeile As Long

Private Sub ComboBox1_Click()                   'Daten aus Liste holen
  Dim i As Long
  If ComboBox1.ListIndex <> 0 Then
     lngZeile = ComboBox1.ListIndex + 3
     For i = 1 To 24
        Me.Controls("TextBox" & i) = Cells(lngZeile, i).Value
     Next i
  Else
     lngZeile = Columns(1).SpecialCells(xlCellTypeBlanks).Row
     For i = 1 To 24
        Me.Controls("TextBox" & i) = ""
     Next i
  End If
End Sub

Private Sub CommandButton1_Click()              'Patienten löschen
  Dim i As Long
  If ComboBox1.ListIndex > 0 Then
     Rows(lngZeile).Delete
     For i = 1 To 24
        Me.Controls("TextBox" & i) = ""
     Next i
     UserForm_Initialize
  End If
End Sub

Private Sub CommandButton2_Click()              'Daten übernehmen
  Dim i As Long
  If TextBox1 = "" Then Exit Sub
  For i = 1 To 24
     Select Case i
     Case Is = 2, 18, 20, 22, 23, 24            'Datumfelder
        If IsDate(Me.Controls("TextBox" & i)) Then
           Cells(lngZeile, i).Value = CDate(Me.Controls("TextBox" & i))
        Else
           Cells(lngZeile, i) = ""
        End If
     Case Is = 11, 15                     'Zahlenfelder
        If IsNumeric(Me.Controls("TextBox" & i)) Then
           Cells(lngZeile, i).Value = CLng(Me.Controls("TextBox" & i))
        Else
           Cells(lngZeile, i) = ""
        End If
     Case Is = 19                           'Telefonnummer
           Cells(lngZeile, i).Value = CStr(Me.Controls("TextBox" & i))
     Case Else
        Cells(lngZeile, i).Value = Me.Controls("TextBox" & i)
     End Select
     Me.Controls("TextBox" & i) = ""
  Next i
  Range("A3:AT3" & lngZeile).Sort Key1:=Range("A3"), Order1:=xlAscending, Header:=xlYes, _
                           OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
  UserForm_Initialize
End Sub

Private Sub UserForm_Initialize()               'Standard für Userform setzen
 Dim i As Long
 lngZeile = Columns(1).SpecialCells(xlCellTypeBlanks).Row
 ComboBox1.Clear
 ComboBox1.AddItem "Neuen Patienten hinzufügen"
 'For i = 4 To Cells(Rows.Count, 1).End(xlUp).Row
 For i = 4 To lngZeile - 1
    ComboBox1.AddItem Cells(i, 1).Value & ", " & Cells(i, 2).Value
 Next i
 ComboBox1.ListIndex = 0
End Sub

Private Sub CommandButton3_Click()              'Eingabe abbrechen
  Unload Me
End Sub

Gruß Uwe


Angehängte Dateien
.xlsm   OP2_Kuwer.xlsm (Größe: 340,03 KB / Downloads: 8)
Antworten Top
#7
Hallo Uwe,
Habe den gesamten Code kopiert;
nachstehender Fehler kommt bei Patienten löschen
Fehler beim Kompilieren 
Variable nicht definiert

Private Sub CommandButton1_Click()              'Patienten löschen
  Dim i As Long
  If ComboBox1.ListIndex > 0 Then
     Rows(lngZeile).Delete
     For i = 1 To 24
        Me.Controls("TextBox" & i) = ""
     Next i
     UserForm_Initialize
  End If
End Sub

LG Geri
Office 2010
Antworten Top
#8
Hallo Geri,

damit kann ich leider nichts anfangen und auch nicht nachvollziehen.

Gruß Uwe
Antworten Top
#9
Hallo Uwe,

du hast recht. Der Fehler kommt nicht mehr.
Muss jetzt noch genau testen ob nichts mehr überschrieben wird.
Vielen, vielen Dank Uwe, ich melde mich auf alle Fälle wenn es klappt

LG Geri
Office 2010
Antworten Top
#10
Hallo Uwe,

fantastisch, es funktioniert perfekt.
Vielen vielen Dank und einen schönen Tag noch

LG Geri
Office 2010
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste