Wünsche einen schönen Tag,
und würde mich freuen wenn mir jemand bei den nachfolgenden Problemen helfen könnte
In meiner Tabelle möchte ich oben noch 2 Zeilen einfügen.
Im VBA Code der Eingabemaske weiß ich nun nicht wo ich überall ändern muss,dass die Dateneingabe erst in der 4 Zeile beginnen soll.
In der Eingabemaske sollte bei jenen Feldern wo Zahlen sind diese in auch in der Tabelle als Zahl bzw Datum übernommen werden da sonst der Filter und andere Berechnungen nicht funktionieren
Die Tagesfilterung sollte vom Datum welches z.B. in A2 eingetragen wird übernommen werden
Das gleiche gilt bei der Abfrage eine Zeitraums von bis
Ich bin für jegliche Unterstützung dankbar
Profis werden sofort sehen "Viel kopiert und wenig verstanden"
Hänge meine Datei an
LG Geri
[
attachment=5786]
Hi,
(23.06.2016, 13:16)Geri schrieb: [ -> ]In meiner Tabelle möchte ich oben noch 2 Zeilen einfügen.
Du könntest in dem Code überall statt +1 dann +3 schreiben:
Code:
TextBox1 = Cells(ComboBox1.ListIndex + 1, 1)
Guten Morgen,
erstmal vielen Dank, dass du meiner angenommen hast.
Ich habe den Code überall so abgeändert wo ich den List Index mit 1 gefunden habe
Das Ergebnis; In der 1. eingefügten leeren Zeile erfolgt der Eintrag und die 2. Zeile wird gelöscht
Habe ich etwas übersehen, wo ich noch eine Änderung machen muss?
LG Geri
Hi,
(24.06.2016, 04:08)Geri schrieb: [ -> ]Habe ich etwas übersehen, wo ich noch eine Änderung machen muss?
ne, hast Du nicht. Mein Vorschlag war zu einfach gedacht, das funktioniert so nicht.
Ich muß da erst mal rumprobieren.
Vielleicht fällt jemand Anderem was ein. Die Makros gehen mit Sicherheit auch deutlich kürzer.
Wo sollen denn die leeren Zeilen eingefügt werden, über dem Tabellenkopf oder über der bisherigen ersten Patientenzeile (Mustermann)?
In A2 steht kein Datum.
Hallo,
die Zeilen sollten über dem Tabellenkopf eingefügt werden.
Da möchte ich die Überschrift für das Datum und dem Datum von bis eingeben
In der zweiten Zeile dann die jeweiligen Datums
Die Commandbuttons für die Filter könnte ich dann auch da unterbringen
Vielen Dank für deine Mühe
Geri
Hallo Geri,
Code:
Private Sub UserForm_Initialize()
Dim i As Long
ComboBox1.Clear
ComboBox1.AddItem "Neuen Patienten hinzufügen"
For i = 4 To Cells(Rows.Count, 1).End(xlUp).Row
ComboBox1.AddItem Cells(i, 1) & ", " & Cells(i, 2)
Next i
ComboBox1.ListIndex = 0
End Sub
und die anderen Makros wie Ralf schrieb mit Index + 3.
Gruß Uwe
Hi Uwe,
(24.06.2016, 10:09)Kuwer schrieb: [ -> ]und die anderen Makros wie Ralf schrieb mit Index + 3.
wenn dann aber ein neuer Patient eingegeben wird, werden die zwei vorhandenen Patienten in die ersten beiden Zeilen des Arbeitsblattes verschoben.
Hi
die Daten werden in der richtigen Stelle eingetragen
Es kommt jetzt aber der nachstehende Fehler
Columns("A:X").Sort Key1:=Range("A3"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
UserForm_Initialize
End Sub
Lade mal die geänderte Datei hoch
Vielen Dank an euch
[
attachment=5806]
Entschuldigung,
habe jetzt eine ganze Eingabe gemacht und gesehen, dass in der 2. oben eingefügten Zeile die Daten eingefügt werden
Hi,
(24.06.2016, 11:41)Geri schrieb: [ -> ]Entschuldigung,
habe jetzt eine ganze Eingabe gemacht und gesehen, dass in der 2. oben eingefügten Zeile die Daten eingefügt werden
Uwe hatte ja geschrieben, daß der ".Listindex + 3" lauten muß. Es fehlte noch an zwei Stellen:
beim Löschen und beim Übernehmen
Das Sortieren habe ich mal auskommentiert und das Feststellen der letzten belegten Zeile verallgemeinert, damit es auch für Excel > 2010 und damit größere Dateien funktioniert.
Die TextBox-Orgie habe ich jeweils mit einer Schleife ersetzt.
Die ganzen kleinen leeren Makros können entfernt werden.
Das ist alles, was Du an Makros benötigst:
Code:
Option Explicit
Private Sub ComboBox1_Click() 'Daten aus Liste holen
Dim i As Long
If ComboBox1.ListIndex <> 0 Then
For i = 1 To 24
Me.Controls("TextBox" & CStr(i)) = Cells(ComboBox1.ListIndex + 3, i)
Next i
Else
For i = 1 To 24
Me.Controls("TextBox" & CStr(i)) = ""
Next i
End If
End Sub
Private Sub CommandButton1_Click() 'Patienten löschen
Dim i As Long
If ComboBox1.ListIndex > 0 Then
Rows(ComboBox1.ListIndex + 3).Delete
For i = 1 To 24
Me.Controls("TextBox" & CStr(i)) = ""
Next i
UserForm_Initialize
End If
End Sub
Private Sub CommandButton2_Click() 'neuen Patienten übernehmen
Dim xZeile As Long
Dim i As Long
If TextBox1 = "" Then Exit Sub
If ComboBox1.ListIndex = 0 Then
xZeile = Cells(Rows.Count, 1).End(xlUp).Row + 1 'Letzte Zeile der Spalte A
' xZeile = [A65536].End(xlUp).Row + 1
Else
xZeile = ComboBox1.ListIndex + 3
End If
For i = 1 To 24
Cells(xZeile, i) = Me.Controls("TextBox" & CStr(i))
Next i
For i = 1 To 24
Me.Controls("TextBox" & CStr(i)) = ""
Next i
' Columns("A:X").Sort Key1:=Range("A3"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
UserForm_Initialize
End Sub
Private Sub UserForm_Initialize() 'Userform zurücksetzen
Dim i As Long
ComboBox1.Clear
ComboBox1.AddItem "Neuen Patienten hinzufügen"
For i = 4 To Cells(Rows.Count, 1).End(xlUp).Row
ComboBox1.AddItem Cells(i, 1) & ", " & Cells(i, 2)
Next i
ComboBox1.ListIndex = 0
End Sub
Private Sub CommandButton3_Click() 'Eingabe abbrechen
Unload Me
End Sub
[
attachment=5807]