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.

Was ist falsch in meinem Code?
#1
Hallo liebe Forummitglieder!

Zum Ablegen von Werten aus einer Userform in einer Tabelle in bestimmten Spalten, habe ich folgenden Code:

Code:
Private Sub CommandButton2_Click()

         'Daten in Tabelle schreiben
         
         Sheets("Hauptseite").Activate
         Zeile = Cells(Rows.Count, 1).End(xlUp).Row + 1
         Zeile = ZeileMax + 1
         With UserForm1
            Cells(3, 7).Value = TextBox1.Value
            Cells(3, 8).Value = TextBox2.Value
            Cells(3, 9).Value = TextBox3.Value
            Cells(3, 10).Value = TextBox4.Value
            Cells(3, 11).Value = TextBox5.Value
            Cells(3, 12).Value = TextBox6.Value

         End With
         
      End Sub
Soweit werden die Werte in den Spalten abgelegt....nur wenn ich die nächsten Daten aus der Userform in die Zeile darunter ablegen möchte,
klappt das nicht?

Was mache ich da falsch?

Gruß
Mike
Antworten Top
#2
Hallo Mike,

(27.08.2020, 19:40)MdeJong schrieb: Was mache ich da falsch?

Du beziehst Dich bei der Ermittlung der letzten Zeile auf die Spalte A, die Du aber gar nicht benutzt bei den Textboxüberträgen. Wink

Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • MdeJong
Antworten Top
#3
Hallo Kuwer

ganz dumme Frage....in welcher Zeile im Code gebe ich die Spalte A an?

 Zeile = Cells(Rows.Count, 1).End(xlUp).Row + 1

Bei Rows.Count, 7     (Für die Spalte G?

Ich bekomme es nicht hin....habe nun ein paar Dinge ausprobiert....ich weiß
nicht was dort falsch ist, was geändert werde müsste  Blush
Antworten Top
#4
Hallo Mike,

bei den Cells(3, ... gehört natürlich die Variable Zeile auch eingebaut. Wink

Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • MdeJong
Antworten Top
#5
Die Frage 'was mach ich richtig' wäre einfacher zu beantworten:

Code:
Private Sub CommandButton2_Click()
  Sheets("Hauptseite").Cells(Rows.Count,1).End(xlUp).offset(1).resize(,6)=array(TextBox1,TextBox2,TextBox3,TextBox4,TextBox5,TextBox6)
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
[-] Folgende(r) 2 Nutzer sagen Danke an snb für diesen Beitrag:
  • Der Steuerfuzzi, MdeJong
Antworten Top
#6
Hallo snb,

also deine Codezeile habe ich eingebaut und alles wird in den richtigen Spalten abgelegt.
Nur wenn ich die nächsten Werte in den betreffenden Spalten ablegen möchte, wird das in der darunter 
liegenden Zeile gemacht, aber die erste vorher abgelegten Werte werden dann auch verändert?

Code:
Private Sub CommandButton2_Click()

         'Daten in Tabelle schreiben
         
         'Sheets("Hauptseite").Activate
        Sheets("Hauptseite").Cells(Rows.Count, 7).End(xlUp).Offset(1).Resize(, 6) = Array(TextBox1, TextBox2, TextBox3, TextBox4, TextBox5, TextBox6)
         'Zeile = Cells(Rows.Count, 7).End(xlUp).Row + 1
         'Zeile = ZeileMax + 1
         With UserForm1
            Cells(3, 7).Value = TextBox1.Value
            Cells(3, 8).Value = TextBox2.Value
            Cells(3, 9).Value = TextBox3.Value
            Cells(3, 10).Value = TextBox4.Value
            Cells(3, 11).Value = TextBox5.Value
            Cells(3, 12).Value = TextBox6.Value

         End With
         
      End Sub
Es ist eine Testmappe, weil ich kleine Codes üben möchte.
So wie ich den Code angelegt habe, so habe ich das bisher verstanden.
das ablegen hat ja schon mal geklappt zu Anfang nur nicht an der Stelle, wo ich es gern hätte und immer in der darunter neuen freien Zeile :)

Gruß
Mike
Antworten Top
#7
Hallo Mike,

das was Uwe angedeutet hat, ist schon mal wichtig, weil sonst immer Zeile 3.
Aber schau dir das mal an

Zeile = Cells(Rows.Count, 1).End(xlUp).Row + 1
Zeile = ZeileMax + 1

fällt dir da was auf?

Könnte umgekehrt ein Schuh draus werden?

Gruß Rudi
[-] Folgende(r) 1 Nutzer sagt Danke an Rudi'S für diesen Beitrag:
  • MdeJong
Antworten Top
#8
Hallo Rudis

diese Zeile?

Zeile = Cells(Rows.Count, 1)

ich habe die anstatt 1 die 7 genommen, weil es die Spalte 7 ist.
Dann werden auch ab dieser Spalte die Werte dort eingetragen.
Doch wenn ich dann wieder Werte ablegen will, werden wie gesagt 
die Werte auch darunter abgelegt, aber die darüber, wo schon Werte sind
werden mit verändert.

Was Uwe meinte...diese Zeile:
Cells(3, 7).Value = TextBox1.Value

ist das nicht Korrekt?

Gruß
Mike
Antworten Top
#9
Hallo,

(28.08.2020, 09:37)MdeJong schrieb: Was Uwe meinte...diese Zeile:[/font][/size][/color]
Cells(3, 7).Value = TextBox1.Value

ist das nicht Korrekt?

mit dieser Codezeile trägst Du den Inhalt deiner Textbox1 immer in die Zelle G3 ein und das ist sicherlich nicht das was Du willst.
Gruß Stefan
Win 10 / Office 2016
[-] Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:
  • MdeJong
Antworten Top
#10
Hallo Steffl,

ich habe das bisher so verstanden, das ich mit dieser Zeile angebe, ab welcher Zeile und Spalte die Werte eingetragen werden sollen.
Wie muss es nun korrekt lauten in der Zeile?

Cells(3, 7).Value = TextBox1.Value

Gruß
Mike
Antworten Top


Gehe zu:


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