Clever-Excel-Forum

Normale Version: VBA Dateneingabe in Maske - auch alte Daten verändern
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

ich brauche mal eure Hilfe :)

Ich habe eine Excel Datei erstellt, in der Eine Maske aufgerufen wird, in welcher man dann durch Textfelder verschiedene eingaben machen kann. Durch "Speichern" (Command Button) werden die Daten dann in eine neue Zeile in meiner Tabelle gespeichert (ab da verwende ich sie dann weiter für meine Auswertung). Das klappt super. Jetzt würde ich es aber gerne so machen, dass ich nicht nur neue Daten eintragen kann, sondern mir in der Maske auch die alten Danten aufrufen und ggf. verändern kann (über das Datum). Am Besten wahrscheinlich mit einem Listen/Kombinationsfeld welches mir die alten "Datums" der bereits angelegten Daten anzeigt und nach einer auswahl in den Textboxen dann auch dei alten Daten erscheinen lässt.

Hat mir jemand einen Tipp?

Hier seht ihr wie ich bis jetzt gearbeitet habe und wie die Maske bis jetzt aussieht:

Danke schomal :)
Grüße
David

Code:
Private Sub CommandButton1_Click()
   Dim lZeile  As Long

  With ThisWorkbook.Worksheets("NeuesTraining")   ' den Tabellenblattnamen ggf. anpassen
     lZeile = .Cells(Rows.Count, 3).End(xlUp).Row + 1
     If lZeile < 1 Then lZeile = 1
     
       
               Range("A" & lZeile).Value = TextBox1.Value
               Range("B" & lZeile).Value = TextBox2.Value
               Range("C" & lZeile).Value = TextBox3.Value
               Range("D" & lZeile).Value = TextBox4.Value
               Range("E" & lZeile).Value = TextBox5.Value
               Range("F" & lZeile).Value = TextBox6.Value
               Range("G" & lZeile).Value = TextBox7.Value
               Range("H" & lZeile).Value = TextBox8.Value
               Range("I" & lZeile).Value = TextBox9.Value
               Range("J" & lZeile).Value = TextBox10.Value
               Range("K" & lZeile).Value = TextBox11.Value
               Range("L" & lZeile).Value = TextBox12.Value
               Range("M" & lZeile).Value = TextBox13.Value
               Range("N" & lZeile).Value = TextBox14.Value
               Range("O" & lZeile).Value = TextBox15.Value
               Range("P" & lZeile).Value = TextBox16.Value
               Range("Q" & lZeile).Value = TextBox17.Value
               Range("R" & lZeile).Value = TextBox18.Value
               Range("S" & lZeile).Value = TextBox19.Value
               Range("T" & lZeile).Value = TextBox20.Value
               Range("U" & lZeile).Value = TextBox22.Value
               Range("V" & lZeile).Value = TextBox23.Value
               Range("W" & lZeile).Value = TextBox25.Value
               Range("X" & lZeile).Value = TextBox26.Value
               Range("Y" & lZeile).Value = TextBox28.Value
               Range("Z" & lZeile).Value = TextBox29.Value
               Range("AA" & lZeile).Value = TextBox31.Value
               Range("AB" & lZeile).Value = TextBox32.Value
               Range("AC" & lZeile).Value = TextBox33.Value
               Range("AD" & lZeile).Value = TextBox34.Value
               Range("AE" & lZeile).Value = TextBox35.Value
               Range("AF" & lZeile).Value = TextBox36.Value
               Range("AG" & lZeile).Value = TextBox37.Value
               Range("AH" & lZeile).Value = TextBox38.Value
               Range("AI" & lZeile).Value = TextBox39.Value
               Range("AJ" & lZeile).Value = TextBox40.Value
               Range("AK" & lZeile).Value = TextBox41.Value
               Range("AL" & lZeile).Value = TextBox42.Value
               Range("AM" & lZeile).Value = TextBox43.Value
               Range("AN" & lZeile).Value = TextBox44.Value
               Range("AO" & lZeile).Value = TextBox45.Value
               Range("AP" & lZeile).Value = TextBox46.Value
               Range("AQ" & lZeile).Value = TextBox47.Value
               Range("AR" & lZeile).Value = TextBox48.Value
               Range("AS" & lZeile).Value = TextBox49.Value
               Range("AT" & lZeile).Value = TextBox50.Value
               Range("AU" & lZeile).Value = TextBox52.Value
               Range("AV" & lZeile).Value = TextBox53.Value
               Range("AW" & lZeile).Value = TextBox55.Value
               Range("AX" & lZeile).Value = TextBox56.Value
               Range("AY" & lZeile).Value = TextBox58.Value
               Range("AZ" & lZeile).Value = TextBox59.Value
               Range("BA" & lZeile).Value = TextBox61.Value
               Range("BB" & lZeile).Value = TextBox62.Value
               Range("BC" & lZeile).Value = TextBox63.Value
               Range("BD" & lZeile).Value = TextBox64.Value
               Range("BE" & lZeile).Value = TextBox65.Value
               Range("BF" & lZeile).Value = TextBox66.Value
               Range("BG" & lZeile).Value = TextBox67.Value
               Range("BH" & lZeile).Value = TextBox68.Value
               Range("BI" & lZeile).Value = TextBox69.Value
               Range("BJ" & lZeile).Value = TextBox70.Value
               Range("BK" & lZeile).Value = TextBox71.Value
               Range("BL" & lZeile).Value = TextBox72.Value
               Range("BM" & lZeile).Value = TextBox73.Value
               Range("BN" & lZeile).Value = TextBox74.Value
               Range("BO" & lZeile).Value = TextBox75.Value
               Range("BP" & lZeile).Value = TextBox76.Value
               Range("BQ" & lZeile).Value = TextBox77.Value
               Range("BR" & lZeile).Value = TextBox78.Value
               Range("BS" & lZeile).Value = TextBox79.Value
               Range("BT" & lZeile).Value = TextBox80.Value
               Range("CB" & lZeile).Value = TextBox82.Value
               Range("BU" & lZeile).Value = TextBox83.Value
               Range("BV" & lZeile).Value = TextBox85.Value
               Range("CA" & lZeile).Value = TextBox86.Value
               Range("BW" & lZeile).Value = TextBox88.Value
               Range("BX" & lZeile).Value = TextBox89.Value
               Range("BY" & lZeile).Value = TextBox91.Value
               Range("BZ" & lZeile).Value = TextBox92.Value
               
     Dim pt As PivotTable
   For Each pt In Worksheets("Auswertung TW3").PivotTables
 
     pt.RefreshTable
  Next pt
 
  For Each pt In Worksheets("Auswertung TW1").PivotTables
       pt.RefreshTable
  Next pt
 
  For Each pt In Worksheets("Auswertung TW2").PivotTables
       pt.RefreshTable
  Next pt
 
 
  End With
 
   Unload Me
   
End Sub
[img]file:///C:/Users/fussballschule/Desktop/Bild1.png[/img]
Hi

mit einer Beispieldatei die 2 bis 3 Datensätze enthält wäre das sicher zu realisieren
wer möchte denn eine Userform mit 92 TextBoxen nachbauen...?

MfG Tom
Moin David!
Nur meine Meinung:
Ein Userform mit mehr als ~10 TextBoxes lohnt den Aufwand in keinster Weise.
Dafür nimmt man ein "Formular"-Tabellenblatt und arbeitet mit CommandButtons oder auch Formularsteuerelementen.

Gruß Ralf
Hallo Tom, Hallo Ralf,

danke erstmal für eure Antworten.

@Ralf ich versteh leider nicht ganz was du meinst. Bin kein Excel Experte.

@ Tom ich habe die Beispiel Datei im Anhang hochgeladen. Wenns ein Kombofeld geben würde in dem man nach Datum die alten Daten anschauen kann (evtl. mit Uhrzeit aber nicht zweingend notwendig, dann die alten Daten bearbeiten oder sogar löschen könnte). Wäre klasse.
Danke schon mal für deine Hilfe :)

Grüße
David
Hat jemand eine Idee   Huh
... hier ist auch noch was zu tun ...
noch nicht :(?
Hallo David,

meine Idee wäre zwei Listboxen in Deiner Userform zu verwenden.
In der einen lässt Du Dir die Daten des Manschaftstrainigs anzeigen, in der anderen die Daten der Torwarttrainigs.
Ein paar Textboxen wirst Du immer noch benötigen aber nicht mehr in der Menge.

In der Listbox kannst Du über das Klick-Event einzelne Einträge auswählen und diese an die Textboxen übergeben und dort dann auch ändern.

So weit meine Idee.

Eine Beispieldatei von Dir mit der aktuellen Struktur wäre aber sehr hilfreich beim Helfen :32:.

Gruß
Ich
Hallo David,

ich habe mich mal ein wenig an Deiner Tabelle versucht.

Zunächst ist mir aufgefallen, dass diese extrem umfangreich ist. Ich habe also eine neue Tabelle angelegt  und auf "diverse" Spalten verzichtet.
Deine Ursprungstabelle ist nur ausgeblendet und nicht gelöscht. Ich denke aber die Erfassung in weniger Spalten macht Sinn.
Die Spalte "Art" wird von meiner Userform noch nicht bedient. Ich hatte keine Idee was Du damit meinen könntest Huh .
Ich habe eine Tabelle "Parameter" angelegt. Auf diese greifen die Comboboxen zur Befüllung zurück. Da es Listen sind,
kannst Du sie nach belieben erweitern. Die Comboboxen zeigen dann die ergänzten Einträge.

Zur Bedienung meiner Userform:
Entweder Du wählst aus der Listbox einen Eintrag und editierst diesen dann in den entsprechenden Feldern oder
Du legst ein neues Training an, indem Du einfach den unteren Teil der Userform nutzt.

Ich bin mir sicher es gibt noch ein ein paar Unwägbarkeiten. Du hast aber auch nicht viel Input da gelassen.

Teste einfach mal.

[attachment=6775]


@ All:
Ich habe etwas Schwierigkeiten beim (Zurück)schreiben der Dauer wenn diese geändert wird, also nicht mehr das Format (hh:mm:ss) hat, bzw. nicht im Format (mm) einegegben.
Da habe ich im Moment etwas "gemogelt". Würde mich freuen wenn sich das jemand von Euch anschaut und mir einen Tipp gibt wie das sauber zu lösen ist.

Danke und Gruß
Ich
Hallöchen,

mit den Calendar-Controls könnte der Fragesteller Probleme bekommen ... Ersatzweise habe ich auch was in Petto:
http://www.xltips.de/ftxt/lnk-dow/DatePicker.htm

[attachment=6778]