Registriert seit: 08.06.2016
Version(en): 2010
23.06.2016, 13:16
(Dieser Beitrag wurde zuletzt bearbeitet: 23.06.2016, 13:25 von Geri.)
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
Eingabemaske2.xls (Größe: 112,5 KB / Downloads: 15)
Office 2010
Registriert seit: 10.04.2014
Version(en): 2016 + 365
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)
Registriert seit: 08.06.2016
Version(en): 2010
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
Office 2010
Registriert seit: 10.04.2014
Version(en): 2016 + 365
24.06.2016, 08:10
(Dieser Beitrag wurde zuletzt bearbeitet: 24.06.2016, 08:10 von Rabe.)
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.
Registriert seit: 08.06.2016
Version(en): 2010
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
Office 2010
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
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
Registriert seit: 10.04.2014
Version(en): 2016 + 365
24.06.2016, 11:12
(Dieser Beitrag wurde zuletzt bearbeitet: 24.06.2016, 11:12 von Rabe.)
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.
Registriert seit: 08.06.2016
Version(en): 2010
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
Eingabemaske2 probe.xls (Größe: 116 KB / Downloads: 4)
Office 2010
Registriert seit: 08.06.2016
Version(en): 2010
Entschuldigung,
habe jetzt eine ganze Eingabe gemacht und gesehen, dass in der 2. oben eingefügten Zeile die Daten eingefügt werden
Office 2010
Registriert seit: 10.04.2014
Version(en): 2016 + 365
24.06.2016, 12:08
(Dieser Beitrag wurde zuletzt bearbeitet: 24.06.2016, 12:11 von Rabe.)
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
Eingabemaske2 probe - V02.xls (Größe: 97 KB / Downloads: 7)
|