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.

Code zum Datensatz ändern/speichern geht nicht
#11
Hallo Mike,

(30.04.2015, 20:45)Mike4711 schrieb: Du lachst über mich ;)

Das war überhaupt nicht meine Absicht dich auszulachen und möchte mich bei dir dafür entschuldigen. Ich habe hier wohl die schlechteste Auswahl von den Smileys getroffen. :22:

Ich will dir nicht vorgefertigte Lösungen geben sondern dir Lösungsmöglichkeiten aufzeigen damit Du selber erkennen kannst, woran es liegt, dass dein Code nicht funktioniert. Dadurch lernst Du diese 'Programmiersache' viel eher als wenn wir dir dies programmieren.

Um die einzelnen Befehle zu verstehen, klicke auf diesen und drücke die F1-Taste. Jetzt sollte die Onlinehilfe von Excel-VBA aufgehen und du kannst nachlesen, was der Befehl bedeutet. Klar ist dies mühsam und man versteht nicht immer gleich alles und manchmal versteht man nur Bahnhof aber mit der Zeit wird dies immer besser und besser. Oder schaue mal im Forum bei den Beispielen und Workshops vorbei oder auch bei Online-Excel.
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#12
Hallo Stefan,

.xlsm   Packmengen4.xlsm (Größe: 175,15 KB / Downloads: 1)
du hast sicher recht, das es Hilfreich ist, das ich mir die Begriffe mit F1 anzeigen lasse.
Doch leider geht das irgendwie bei mir nicht.

Wenn ich in Editor das Wort "lngC! markiere und dann F1 drücke,

wird mir folgender Link geöffnet: https://msdn.microsoft.com/query/dev11.query?appId=Dev11IDEF1&l=de-DE&k=k(vblr6.chm1009553);k(TargetFrameworkMoniker-Office.Version=v15)&rd=true

und auf dieser Seite finde ich keine Erklärung zu diesem Begriff.

Mit meinem Code bin ich nun so weit:

Code:
rivate Sub ComboBox1_Change()
Dim lngC As Long
 
  If ComboBox1.ListIndex = 0 Then Exit Sub
  lngC = ComboBox1.ListIndex + 2
  With Worksheets("Artikelmenge_Palette")
     TextBox1.Value = .Cells(lngC, 2).Value
     TextBox2.Value = .Cells(lngC, 3).Value
     TextBox3.Value = .Cells(lngC, 4).Value
     TextBox4.Value = .Cells(lngC, 5).Value
     TextBox5.Value = .Cells(lngC, 6).Value
     TextBox6.Value = .Cells(lngC, 7).Value
     TextBox7.Value = .Cells(lngC, 8).Value
     TextBox8.Value = .Cells(lngC, 9).Value
     TextBox9.Value = .Cells(lngC, 10).Value
     TextBox10.Value = .Cells(lngC, 11).Value
     TextBox11.Value = .Cells(lngC, 12).Value
         
  End With

End Sub
Abspeichern geht nun, doch nicht ganz so in den Spalten in dem Blatt" Artkelmenge_Palette", wie es sein soll.

Hier noch einmal meine Datei, schau doch mal, wenn du einen Artikel in der Maske in einer TextBox abänderst und sofort speicherst, was dann wirklich abgespeichert wird?

In der Maske, in der Combobox, die ersten 3 Artikel, habe ich Änderungen vorgenommen und abgespeichert, doch da hat er mir falsche Spalten überschrieben.

Die letzten 2 Artikel (B45-555 und 2088899), so sollte eigentlich aussehen?


Grüße Mike
Antworten Top
#13
Hallo Mike,

Zitat:Wenn ich in Editor das Wort "lngC! markiere .....,

da kannst Du in der Hilfe auch nichts finden, denn das ist der Name einer Variablen. Ich verwende für meine Variablennamen meistens einen Präfix womit ich einen Variablentyp bezeichne. In diesem Fall lng für eine Long-Variable. Google mal nach der 'ungarischen Notation' Ich weiß also somit im Code immer um was für einen Variablentyp es sich bei der Variablen lngC ohne das ich die Dekleration sehe.

Zu deinem Problem: In der Tat schreibt dein Code in die falschen Spalten. Hier wird es richtig gemacht


Code:
TextBox1.Value = .Cells(lngC, 2).Value

und hier falsch


Code:
Cells(ZeileAktuell, 1).Value = Me.TextBox1.Value


welche Spalte ist es im ersten Fall und welche im zweiten?
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#14
Hallo Stefan,


nach langem anschauen des Codes, habe ich dann doch gesehen, das ich die falsch erste Spalte angesprochen habe. :)


Wie in deinem Beispiel, hatte ich erst diese Zeile:

Cells(ZeileAktuell, 1).Value = Me.TextBox1.Value


Anstatt diese Zeile:


TextBox1.Value = .Cells(lngC, 2).Value



Mein Code läuft jetzt.

Code:
rivate Sub CommandButton2_Click()
'Daten korrigieren
Dim ZeileAktuell As Long
Dim lngR As Long

If MsgBox("Daten ändern?", vbQuestion, "Datensatz korrigieren") = vbOK Then
ZeileAktuell = ComboBox1.ListIndex + 2

      With Worksheets("Artikelmenge_Palette")
     .Cells(ZeileAktuell, 2).Value = Me.TextBox1.Value
     .Cells(ZeileAktuell, 3).Value = Me.TextBox2.Value
     .Cells(ZeileAktuell, 4).Value = Me.TextBox3.Value
     .Cells(ZeileAktuell, 5).Value = Me.TextBox4.Value
     .Cells(ZeileAktuell, 6).Value = Me.TextBox5.Value
     .Cells(ZeileAktuell, 7).Value = Me.TextBox6.Value
     .Cells(ZeileAktuell, 8).Value = Me.TextBox7.Value
     .Cells(ZeileAktuell, 9).Value = Me.TextBox8.Value
     .Cells(ZeileAktuell, 10).Value = Me.TextBox9.Value
     .Cells(ZeileAktuell, 11).Value = Me.TextBox10.Value
     .Cells(ZeileAktuell, 12).Value = Me.TextBox11.Value
       
   End With
'    MsgBox ("Die Daten wurden geändert")
 End If
End Sub

Nur der Nebeneffekt, das wenn die Daten ins Zielblatt gespeichert werden, meine eingestellte Formatierung dort überschrieben wird.
Das gleicher passiert auch, wenn ich einen neuen Artikel anlege, auch da wird das Zielformat überschrieben.
Wenn ich das jetzt noch hinbekommen würde?  :)

Grüße Mike
Antworten Top
#15
(02.05.2015, 15:10)Steffl schrieb: Hallo Mike,



Zitat:Wenn ich in Editor das Wort "lngC! markiere .....,

da kannst Du in der Hilfe auch nichts finden, denn das ist der Name einer Variablen. Ich verwende für meine Variablennamen meistens einen Präfix womit ich einen Variablentyp bezeichne. In diesem Fall lng für eine Long-Variable. Google mal nach der 'ungarischen Notation' Ich weiß also somit im Code immer um was für einen Variablentyp es sich bei der Variablen lngC ohne das ich die Dekleration sehe.

Zu deinem Problem: In der Tat schreibt dein Code in die falschen Spalten. Hier wird es richtig gemacht




Code:
TextBox1.Value = .Cells(lngC, 2).Value                           hier wird in Spalte 2 also "B" gespeichert 

und hier falsch    




Code:
Cells(ZeileAktuell, 1).Value = Me.TextBox1.Value                 hier wird in Spalte a also "A" gespeichert


welche Spalte ist es im ersten Fall und welche im zweiten?
Antworten Top
#16
Hallo Mike,

(02.05.2015, 18:33)Mike4711 schrieb: Nur der Nebeneffekt, das wenn die Daten ins Zielblatt gespeichert werden, meine eingestellte Formatierung dort überschrieben wird.
Das gleicher passiert auch, wenn ich einen neuen Artikel anlege, auch da wird das Zielformat überschrieben.
Wenn ich das jetzt noch hinbekommen würde?  :)

ich hatte bereits in diesem bzw einem anderen Thread erwähnt, dass eine Textbox nur Text zurückliefert, auch wenn Du in der Textbox nur Zahlen hast. Leider bemerkst Du dies in deiner Datei nicht, weil Du die Einträge mittig ausrichtest. Verwende einer der Typumwandlungsfunktionen.
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#17
Ich werde es noch einmal versuchen.....diese Umwandung!!

:)
Antworten Top


Gehe zu:


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