Registriert seit: 11.04.2014
Version(en): Office 2007
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
Registriert seit: 13.11.2014
Version(en): 2010
02.05.2015, 11:45
(Dieser Beitrag wurde zuletzt bearbeitet: 02.05.2015, 11: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=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
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, 18:33
(Dieser Beitrag wurde zuletzt bearbeitet: 02.05.2015, 18: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.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
Registriert seit: 13.11.2014
Version(en): 2010
02.05.2015, 18:43
(Dieser Beitrag wurde zuletzt bearbeitet: 02.05.2015, 18:44 von Mike4711.)
(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?
Registriert seit: 11.04.2014
Version(en): Office 2007
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
Registriert seit: 13.11.2014
Version(en): 2010
Ich werde es noch einmal versuchen.....diese Umwandung!!
:)
|