Das Clever-Excel-Forum.de - Treffen
findet vom 15. - 17. September 2017 in Thüringen / Region Großer Inselsberg statt. Hotelbuchung ab sofort möglich.


VBA Werte Tabelle über UF ändern
#1
Hallo zusammen,

Brauch mal kurz Hilfe.

UF öffnet mit 14 Textboxen, bei Click in eine Listboxzeile (Anzahl 6 Spalten) wird der Wert in die ersten 6 Textboxen übergeben. Die leeren Textboxen werden nun mit Werten gefüllt und bei Click auf Button soll der Datensatz aus Listbox die Zeile um die Werte der Textboxen 8-14 hinzufügen.

Bei meinem Versuch schreibt er immer die Werte in die zweite Zeile der Tabelle, wo liegt mein Fehler?

Code:
Private Sub cmd_ändern_Click()
'Datensatz ändern
Dim lng As Long
Dim i As Integer

lng = Sheets("Depot").Range("A1048576").End(xlUp).Offset(1, 1).Column
With frm_Depot
Sheets("Depot").Activate
Cells(lng, 1).Value = .TextBox1.Value
Cells(lng, 2).Value = .TextBox2.Value
Cells(lng, 3).Value = .TextBox3.Value
Cells(lng, 4).Value = .TextBox4.Value
Cells(lng, 5).Value = .TextBox5.Value
Cells(lng, 6).Value = .TextBox6.Value
Cells(lng, 7).Value = .TextBox7.Value
Cells(lng, 8).Value = .TextBox8.Value
Cells(lng, 9).Value = .TextBox9.Value
Cells(lng, 10).Value = .TextBox10.Value
Cells(lng, 11).Value = .TextBox11.Value
Cells(lng, 12).Value = .TextBox12.Value
Cells(lng, 13).Value = .TextBox13.Value
Cells(lng, 14).Value = .TextBox14.Value
End With
End Sub

Danke schon mal im Voraus!
Grüße aus Bremen
Bernie

"Wenn du jemanden triffst ohne lächeln, schenke ihm deins !!!"

MS Office 2010 Pro - Win 7 Home Premium
Haftungshinweis: Trotz sorgfältiger inhaltlicher Kontrolle übernehmen ich keine Haftung für die Inhalte externer Links. Für den Inhalt der verlinkten Seiten sind ausschließlich deren Betreiber verantwortlich.
to top
#2
Hallo,

Code:
lng = Sheets("Depot").Range("A1048576").End(xlUp).Offset(1, 1).Column

Column heißt auf Deutsch Spalte. Ergo wird bei dir in dieser Codezeile immer die 2 zurückgegeben. Mache es so

Code:
lng = Sheets("Depot").Range("A1048576").End(xlUp).Row +1

wobei ich anstatt der Zahl immer Rows.Count nehmen würde also so

Code:
lng = Sheets("Depot").Cells(Worksheets("Depot").Rows.Count, 1).End(xlUp).Row +1
Gruß Stefan
Win 7 / Office 2007
to top
#3
Hi Stefan,

kurze Frage: steht das
Code:
Row +1
nicht dafür, dass in eine neue Zeile der Datensatz in die Tabelle geschrieben wird oder irre ich?

Ergänzung: ja, wie ich vermutet hatte, es wird eine neue Zeile an die bestehenden angefügt.

Mein Ansatz sollte sein: in der Listbox1 wird eine Zeile angeklickt, diese Werte werden in die ersten 6 von 14 Textboxen geladen, dann möchte ich in die Textboxen 7-10 Werte eingeben (Textbox 11-14 sind berechnende, Werte ergeben sich aus Textbox 7-10. Dann Klick auf Butten und die bereits bestende Zeile soll um die Daten der übrigen Werte aus Textbox 8-14 ergänzt werden. Also keine neue Zeile ansteuern sondern bestehende Zeile ergänzen.
Grüße aus Bremen
Bernie

"Wenn du jemanden triffst ohne lächeln, schenke ihm deins !!!"

MS Office 2010 Pro - Win 7 Home Premium
Haftungshinweis: Trotz sorgfältiger inhaltlicher Kontrolle übernehmen ich keine Haftung für die Inhalte externer Links. Für den Inhalt der verlinkten Seiten sind ausschließlich deren Betreiber verantwortlich.
to top
#4
Hallo Bernd,

Du irrst dich nicht.
Gruß Stefan
Win 7 / Office 2007
to top
#5
Hi Stefan,

hatte vorherigen Beitrag gerade ergänzt. Schau mal kurz drauf.
Grüße aus Bremen
Bernie

"Wenn du jemanden triffst ohne lächeln, schenke ihm deins !!!"

MS Office 2010 Pro - Win 7 Home Premium
Haftungshinweis: Trotz sorgfältiger inhaltlicher Kontrolle übernehmen ich keine Haftung für die Inhalte externer Links. Für den Inhalt der verlinkten Seiten sind ausschließlich deren Betreiber verantwortlich.
to top
#6
Hallo Bernd,

ergänzen oder den Zellinhalt ändern? Wenn ändern: Warum änderst Du die Werte nicht in den Textboxen 1 bis 7 und schreibst sie dann zurück?
Gruß Stefan
Win 7 / Office 2007
to top
#7
Hallo Stefan,

hab mal ne Beispielmappe eingestellt.

1. UF Depot öffnen
2. Listboxzeile anklicken und Texboxen 1-6 füllen sich
3. leere Textboxen füllen. Hier Testdaten: Kaufdatum 01.12.2013, Kaufkurs 100,00, Stück 1000, Trailing SL 10. Die restlichen Textboxen sind Berechnende, aber soweit bin ich noch nicht. Gib irgend etwas ein.
4. Klick auf Button = Tabelle Depot und die Listbox sollen aktualisiert werden.

Ich hoffe, dass es jetzt verständlicher war.


Angehängte Dateien
.xlsm   BKTest_2.xlsm (Größe: 23,37 KB / Downloads: 11)
Grüße aus Bremen
Bernie

"Wenn du jemanden triffst ohne lächeln, schenke ihm deins !!!"

MS Office 2010 Pro - Win 7 Home Premium
Haftungshinweis: Trotz sorgfältiger inhaltlicher Kontrolle übernehmen ich keine Haftung für die Inhalte externer Links. Für den Inhalt der verlinkten Seiten sind ausschließlich deren Betreiber verantwortlich.
to top
#8
Hallo Bernd,

teste mal (da die Textboxen nur Text liefern, wandle ich die entsprechenden Werte um)

Code:
Private Sub cmd_ändern_Click()
'Datensatz ändern
Dim lng As Long

If ListBox1.ListIndex = -1 Then MsgBox "Nichts ausgewählt!", vbInformation: Exit Sub
lng = ListBox1.ListIndex + 2
'lng = Sheets("Depot").Cells(Worksheets("Depot").Rows.Count, 1).End(xlUp).Row
With frm_Depot
Sheets("Depot").Activate
Cells(lng, 1).Value = .TextBox1.Value
Cells(lng, 2).Value = .TextBox2.Value
Cells(lng, 3).Value = .TextBox3.Value
Cells(lng, 4).Value = .TextBox4.Value
Cells(lng, 5).Value = .TextBox5.Value
If IsNumeric(.TextBox6.Value) Then Cells(lng, 6).Value = CDbl(.TextBox6.Value)
If IsDate(.TextBox7.Value) Then Cells(lng, 7).Value = CDate(.TextBox7.Value)
If IsNumeric(.TextBox8.Value) Then Cells(lng, 8).Value = CCur(.TextBox8.Value)
If IsNumeric(.TextBox9.Value) Then Cells(lng, 9).Value = CLng(.TextBox9.Value)
Cells(lng, 10).Value = .TextBox10.Value
Cells(lng, 11).Value = .TextBox11.Value
Cells(lng, 12).Value = .TextBox12.Value
Cells(lng, 13).Value = .TextBox13.Value
Cells(lng, 14).Value = .TextBox14.Value
End With
UserForm_Initialize
End Sub
Gruß Stefan
Win 7 / Office 2007
[-] Folgende(r) 1 Benutzer sagt Danke an Steffl für diesen Beitrag:
Bernie
to top
#9
Hallo Stefan,

Funktioniert toll, genauso wie ich mir es vorgestellt hatte. Du bist einfach "SPITZE" 23

Ein schönes Wochenende wünsche ich Dir!!!
Grüße aus Bremen
Bernie

"Wenn du jemanden triffst ohne lächeln, schenke ihm deins !!!"

MS Office 2010 Pro - Win 7 Home Premium
Haftungshinweis: Trotz sorgfältiger inhaltlicher Kontrolle übernehmen ich keine Haftung für die Inhalte externer Links. Für den Inhalt der verlinkten Seiten sind ausschließlich deren Betreiber verantwortlich.
to top


Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Matrix bzw. Schnittpunkt der gesuchten Werte in einer Tabelle suchen Wolf59 5 65 08.12.2016, 20:59
Letzter Beitrag: Wolf59
  Doppelte Werte über 2 Spalten waldemarrrrr 1 52 01.12.2016, 15:39
Letzter Beitrag: shift-del
  Tabelle oder Bereich über "Name" auswählen und anzeigen lassen Bernilli 7 214 30.09.2016, 12:17
Letzter Beitrag: Ego
  Werte von einer Tabelle in die andere übertragen (automatisch) TheBug 9 328 19.09.2016, 10:52
Letzter Beitrag: TheBug
  Werte suchen, folgewerte in Tabelle kopieren Sagulum 9 412 08.09.2016, 16:24
Letzter Beitrag: Sagulum
Sad Pivot Tabelle, Werte abgleichen caro2508 1 166 17.08.2016, 13:39
Letzter Beitrag: Peter
  Tabelle auslesen und Werte ausummieren m.s. 12 534 05.08.2016, 12:04
Letzter Beitrag: m.s.
  Werte auf kleinste/größte Werte einer anderen Spalte zuordnen MaxiL 2 238 21.07.2016, 10:24
Letzter Beitrag: MaxiL
  Werte mit bestimmtem Merkmal andere Werte zuweisen miesi 6 657 20.05.2016, 14:04
Letzter Beitrag: steve1da
  Tabelle füllen über Formular Nixblick0815 4 555 05.05.2016, 08:17
Letzter Beitrag: schauan

Gehe zu:


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