Registriert seit: 11.04.2014
Version(en): Office 2007
Hallo Mike, (30.04.2015, 21: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
Registriert seit: 13.11.2014
Version(en): 2010
02.05.2015, 12:45
(Dieser Beitrag wurde zuletzt bearbeitet: 02.05.2015, 12:46 von Mike4711.)
Hallo Stefan,
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=trueund 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
Registriert seit: 11.04.2014
Version(en): Office 2007
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
Registriert seit: 13.11.2014
Version(en): 2010
02.05.2015, 19:33
(Dieser Beitrag wurde zuletzt bearbeitet: 02.05.2015, 19:33 von Mike4711.)
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.ValueAnstatt diese Zeile:TextBox1.Value = .Cells(lngC, 2).ValueMein 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
Registriert seit: 13.11.2014
Version(en): 2010
02.05.2015, 19:43
(Dieser Beitrag wurde zuletzt bearbeitet: 02.05.2015, 19:44 von Mike4711.)
(02.05.2015, 16: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?
Registriert seit: 11.04.2014
Version(en): Office 2007
Hallo Mike, (02.05.2015, 19: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
Registriert seit: 13.11.2014
Version(en): 2010
Ich werde es noch einmal versuchen.....diese Umwandung!!
:)
|