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
Top
#2
Hallo Mike,

(27.08.2020, 20: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
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
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
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
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
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
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
Top
#9
Hallo,

(28.08.2020, 10: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
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
Top


Gehe zu:


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