Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1772to1776
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA fügt Daten in falsche Zeile

VBA fügt Daten in falsche Zeile
17.07.2020 12:30:37
Herbert
Guten Tag,
ich melde mich auf ein neues und diesmal verwirrt der Fehler mich..., sobald ich diesen Code ausführe:
ElseIf Bestätigen.Caption = "Bearbeiten" Then
Dim finden As Range
Set finden = Worksheets("Zugmaschinen").[SZM].Find(what:=TextBox_Kennzeichen)
TextBox_Zellen_Adresse = finden.Address
Dim CBoxTxt As String, findRow As Long
CBoxTxt = TextBox_Kennzeichen.Text
findRow = Range(TextBox_Zellen_Adresse).Row
If Not finden Is Nothing Then  'If Cells(findRow, 1) = CBoxTxt Then
Eingabewert_1 = MsgBox("Soll der Auflieger  " & CBoxTxt & "  wirklich bearbeitet werden? _
", vbYesNo, "Sicherheitsfrage")
If Eingabewert_1 = vbNo Then
Unload Me
Exit Sub
ElseIf Eingabewert_1 = vbYes Then
With Worksheets("Zugmaschinen").[SZM]
.Cells(findRow, 2) = CInt(TextBox_Achsen.Value)
.Cells(findRow, 3) = Format(TextBox_A1.Value, "##,##0.00")
.Cells(findRow, 4) = Format(TextBox_A1_A2.Value, "##,##0.00")
If TextBox_Achsen.Value = "4" Or TextBox_Achsen.Value = "3" Then
.Cells(findRow, 5) = Format(TextBox_A2_A3.Value, "##,##0.00")
End If
If TextBox_Achsen.Value = "4" Then
.Cells(findRow, 6) = Format(TextBox_A3_A4, "##,##0.00")
End If
.Cells(findRow, 7) = Format(TextBox_A4.Value, "##,##0.00")
.Cells(findRow, 8) = Format(TextBox_AL1.Value, "##,##0.00")
.Cells(findRow, 9) = Format(TextBox_AL2.Value, "##,##0.00")
If TextBox_Achsen.Value = "4" Or TextBox_Achsen.Value = "3" Then
.Cells(findRow, 10) = Format(TextBox_AL3.Value, "##,##0.00")
End If
If TextBox_Achsen.Value = "4" Then
.Cells(findRow, 11) = Format(TextBox_AL4.Value, "##,##0.00")
End If
.Cells(findRow, 12) = CInt(TextBox_Räder_A1.Value)
.Cells(findRow, 13) = CInt(TextBox_Räder_A2.Value)
If TextBox_Achsen.Value = "4" Or TextBox_Achsen.Value = "3" Then
.Cells(findRow, 14) = CInt(TextBox_Räder_A3.Value)
End If
If TextBox_Achsen.Value = "4" Then
.Cells(findRow, 15) = CInt(TextBox_Räder_A4.Value)
End If
.Cells(findRow, 16) = Format(TextBox_A_Maß_1.Value, "##,##0.00")
.Cells(findRow, 17) = Format(TextBox_A_Maß_2.Value, "##,##0.00")
.Cells(findRow, 18) = Format(TextBox_A_Maß_3.Value, "##,##0.00")
.Cells(findRow, 19) = Format(TextBox_A_Maß_4.Value, "##,##0.00")
.Cells(findRow, 20) = Format(TextBox_A_Maß_5.Value, "##,##0.00")
.Cells(findRow, 21) = Format(TextBox_A_Maß_6.Value, "##,##0.00")
.Cells(findRow, 22) = Format(TextBox_A_Maß_7.Value, "##,##0.00")
.Cells(findRow, 23) = Format(TextBox_A_Maß_8.Value, "##,##0.00")
.Cells(findRow, 24) = Format(TextBox_A_Maß_9.Value, "##,##0.00")
.Cells(findRow, 25) = Format(TextBox_A_Maß_Standard.Value, "##,##0.00")
.Cells(findRow, 26) = Format(TextBox_KPV_Rad.Value, "##,##0.00")
.Cells(findRow, 27) = Format(TextBox_KPH_Rad.Value, "##,##0.00")
If TextBox_KP.Value = "" Then
GoTo Nächster
Else
.Cells(findRow, 28) = CInt(TextBox_KP.Value)
End If
Nächster:
.Cells(findRow, 31) = Format(TextBox_13SL.Value, "##,##0.00")
.Cells(findRow, 32) = Format(TextBox_G.Value, "##,##0.00")
.Cells(findRow, 33) = Format(TextBox_F2.Value, "##,##0.00")
.Cells(findRow, 37) = CInt(TextBox_Antriebsachsen.Value)
.Cells(findRow, 38) = TextBox_FIN.Value
.Cells(findRow, 39) = CInt(TextBox_BABH.Value)
.Cells(findRow, 40) = CInt(TextBox_Max_Z_Ge_G.Value)
.Cells(findRow, 42) = TextBox_Hersteller.Value
.Cells(findRow, 43) = TextBox_Radstand.Value
End With
Unload Me
SZM_hinzufuegen_2.Show
End If
Soll er mir die Datensätze eigentlich in der selben Zeile wo auch das Kennzeichen ist einfügen, aber VBA findet es witziger die Datensätze einfach 33 Zeilen weiter unten einzufügen... .
Die Userform worüber dieser Code ausgeführt wird befindet sich auf dem Tabellenblatt("Ausleser") und das wo die Daten eingefügt werden sollen auf dem Tabellenblatt("Zugmaschinen").
Falls Bsp.-Datei benötigt, bitte ebend schreiben!
Danke schon einmal im Voraus!
MfG Herbert!

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ja, Beispielmappe ist dringend nötig! (owT)
17.07.2020 12:36:06
EtoPHG

AW: VBA fügt Daten in falsche Zeile
17.07.2020 12:38:31
onur
Mit dem Codeschnipsel allein kann man nix anfangen - poste die Datei.
AW: VBA fügt Daten in falsche Zeile
17.07.2020 12:55:18
Herbert
Hallo,
hier die Bsp.-Datei, mir ist gerade beim Anonymisieren etwas aufgefallen...
und zwar fügt er die Datensätze zusätzlich auch noch ins falsche Tabellenblatt...,
heißt er fügt die Datensätze in ("Zugmaschinen") & ("Baugleiche").
Hier die Bsp.-Datei:
https://www.herber.de/bbs/user/139129.xlsm
Danke für die Antworten!
MfG Herbert!
AW: VBA fügt Daten in falsche Zeile
17.07.2020 16:01:10
Herbert
Hallo,
so halb wegs verstehe ich langsam den Fehler, aber wenn ich den da bemerkten weg mache, haut er mir mit FIND().OFFSET() die Datensätze 2 Zeilen darunter, beim ersten Fehler hat er von einer FIN die letzten Zahl als gleichen Wert genommen, obwohl der gesamt Datensatz viel mehr Zeichen beinhaltet als das Originelle Such Ziel... . Nun habe ich anstatt den Wert zu suchen, die Zelle gesucht und danach einfügen lassen, er zeigt bei dem Datensatz aus der Zeile die richtige Zelle an und springt dann aber 2 zeilen runter...
Hier der jetzige Code:
ElseIf Bestätigen.Caption = "Bearbeiten" Then
Dim finden As Range
Set finden = Worksheets("Zugmaschinen").[A3:A500].Find(what:=TextBox_Kennzeichen.Value)
TextBox_Zellen_Adresse = finden.Address
Dim CBoxTxt As String, findRow As Long
CBoxTxt = CInt(TextBox_Kennzeichen.Value)
findRow = Range(TextBox_Zellen_Adresse).Row
If Not finden Is Nothing Then
Eingabewert_1 = MsgBox("Soll der Auflieger  " & CBoxTxt & "  wirklich bearbeitet werden? _
", vbYesNo, "Sicherheitsfrage")
If Eingabewert_1 = vbNo Then
Unload Me
Exit Sub
ElseIf Eingabewert_1 = vbYes Then
Sheets("Zugmaschinen").[SZM].Range(TextBox_Zellen_Adresse).Offset(, 1).Value = CInt(TextBox_Achsen.Value)
Das ist der Code um den es jetzt geht, alle anderen passe ich dann an. Nach unten hin wiederholen sich die meisten Codes eh nur (außer die 1 bei Offset).
CBoxTxT = "320"
ZellAdresse = "$A$3"
Zeile / Zelle wo er den auf 320 folgenden Wert einfügt "$A$5"..., dabei ist dort der erste Wert von Spalte A = "390".
MfG Herbert!
Anzeige
AW: VBA fügt Daten in falsche Zeile
18.07.2020 11:15:13
fcs
Hallo Herbert,
hab dir mal ein paar Kommentare in deinen Makro-Schnippsel eingebaut.
ElseIf Bestätigen.Caption = "Bearbeiten" Then
Dim finden As Range
'Bei der Suche in VBA immer die Parameter Lookin und LookAt mit angeben, Excel nimmt sonst  _
_
ggf. die falschen Werte aus einer vorherigen Suche.
Set finden = Worksheets("Zugmaschinen").[A3:A500].Find(what:=TextBox_Kennzeichen.Value, _
LookIn:=xlValues, lookat:=xlWhole)
TextBox_Zellen_Adresse = finden.Address
Dim CBoxTxt As String, findRow As Long
'es macht keinen Sinn einer Stringvariablen einen per CInt in eine Zahl konvertiertn _
Wert zuzuweisen. Besser Variableals Integer oder Long deklarieren.
CBoxTxt = CInt(TextBox_Kennzeichen.Value)
findRow = Range(TextBox_Zellen_Adresse).Row
If Not finden Is Nothing Then
Eingabewert_1 = MsgBox("Soll der Auflieger  " & CBoxTxt & _
"  wirklich bearbeitet werden?", vbYesNo, "Sicherheitsfrage")
If Eingabewert_1 = vbNo Then
Unload Me
Exit Sub
ElseIf Eingabewert_1 = vbYes Then
'wenn der Bereich "SZM" in der folgenden Zeile nicht in Zeile 1 beginnt sondern _
in Zeile 3, dann ist dies die Ursache für den Versatz um 2 Zeilen
Sheets("Zugmaschinen").[SZM].Range(TextBox_Zellen_Adresse).Offset(, 1).Value = _    _
CInt(TextBox_Achsen.Value)
'Lösung:"[SZM]." weglassen,
'oder
'im Offeset eine Korrektur um 2 Zeilen einbauen: .Offset(-2, 1)
'entweder so
Sheets("Zugmaschinen").Range(TextBox_Zellen_Adresse).Offset(, 1).Value = _
CInt(TextBox_Achsen.Value)
'oder so
Sheets("Zugmaschinen").[SZM].Range(TextBox_Zellen_Adresse).Offset(-2, 1).Value = _
CInt(TextBox_Achsen.Value)
End If
End If

LG
Franz
Anzeige
AW: VBA fügt Daten in falsche Zeile
24.07.2020 09:37:27
Herbert
Hallo,
entschuldie, das ich mich erst eine Woche später melde...!
Ich bin noch "Jung" und hab vorgestern meine B-Lizenz des Führerscheins bekommen, also meinen Führerschein, davor war ich nicht mehr im Unternehmen oder zuhause am Computer sondern nur noch am Fahrstunden durch hauen.
Danke für die Antwort ich teste es gleich einmal direkt!
MfG Herbert!

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige