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.

Listbox fülle
#11
Revidiere: Hat funktioniert.

Jetzt generiert es einen Überlauf.

Ich dreh noch durch.
Antworten Top
#12
Moin,

Dann kommst Du hier
Zitat:z = ThisWorkbook.Sheets("ListBoxDaten").Range("Tabelle6").End(xlDown).Row + 1
wahrscheinlich zu weit runter, falls Deine Tabelle zu viele Zeilen hat ...

Nimm mal statt Integer Long und schaue Dir den Wert von z an

Oder verträgt die Listbox die Daten nicht?

Ich hatte ja bei letzten Fehler schon gefragt, wo er auftritt und welche Meldung genau kommt ...
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#13
Guten Morgen

Habe nun As Long verwendet. Der Überlauf kommt nun nicht mehr.
Meine Tabelle ist 3 Spalten breit und am Anfang leer.
Sie wird sozusagen als Zwischenspeicher verwendet.

Momentan bekomme ich folgende Fehler:
   
   

Wenn ich .End(xlDown) zu .End(xlUp) ändere funktioniert es, jedoch überschreibt es mir dann immer die eingetragene Zeile.
Sprich Es erstellt einen Zeile in der Tabelle, welche immer wieder überschrieben wird, anstatt dass es eine neue Zeile generiert.

Fehlt mir hier noch ein Teil, welcher der Tabelle sagt, dass Sie den Eintrag immer in die nächste freie Zeile eintragen soll?
Habe gedacht, dass Ich dies mit .Row + 1 mache?

Danke dir auf jeden Fall

Gruss
Demech
Antworten Top
#14
Hallöchen,

Zitat:Habe gedacht, dass Ich dies mit .Row + 1 mache?

ja, so kann man das machen. Allerdings geht man dazu ganz nach unten z.B. auf dem Blatt, also z.B. zu Cells(Rows.Count, 1)

Wie groß ist denn z bei Dir? Ich vermute, dass Du unten das Blattende überspringst mit Deinem End(xlDown).Row + 1 ...
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#15
Ou z wird mir mit =1048577 angegeben

Habe ich mit z = ThistWorkSheet .....
nicht z auf die Tabelle definiert?

und mit if z <1 then z = 1 sage ich doch: wenn keine Zeile vorhanden ist mach eine Zeile.

Hmm wenn ich das so schreibe, kommt mir gleich der Gedanke, dass ich dort wohl noch bestimmen muss, was er machen soll wenn z = 1 ist?

if z <1 then z = 1
If z =1 then z +1

?
Antworten Top
#16
Zur Info:

https://www.herber.de/forum/archiv/1788t...tm#1790427

https://www.clever-excel-forum.de/misc.php?action=help&hid=10
[-] Folgende(r) 1 Nutzer sagt Danke an steve1da für diesen Beitrag:
  • Demech
Antworten Top
#17
Schau mal:  https://www.snb-vba.eu/VBA_Fill_combobox...n.html#L_4
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
[-] Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:
  • Demech
Antworten Top
#18
Hallöchen,

...End(xlUp) oder ...End(xlDown) simuliert die Bewegung mit den Cursortasten. Du kannst das einfach ausprobieren, indem Du z.B. wie im Code den Cursor in A1 stellst - darunter lässt Du alles leer - und schaust, wo Du z.B. mit STRG+Down und Strg+Up hin gelangst. Dann trägst Du mal was in A2 und A3 ein und wiederholst den Test ...
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • Demech
Antworten Top
#19
Hallo Shauan

Habe noch gerade was über Crossposting gelernt. Dies war mir nicht bewusst.
War mit dem Problem auch noch im Forum: https://www.herber.de/forum/

Wollte einfach gross gefächerte Ideen sammeln um möglichst viel zu lernen.
War mir jedoch nicht bewusst dass dies nicht gern gesehen ist. Wurde im anderen Forum darauf hingewiesen.

Habe bei herber noch folgenden Ansatz erhalten:

Private Sub CommandButton1_Click()
    Dim z As Long
    With ThisWorkbook.Sheets("ListBoxDaten")
        z = .UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1
        If z < 1 Then z = 1
        .Cells(z, 1) = ComboBox1.Value
        .Cells(z, 2) = ComboBox2.Value
    End With


     ListBox1.List = Sheets("ListBoxDaten").Range("DatenListBox").Value
End Sub


Dieser funktioniert wirklich sehr gut. Habe daraus auch die Begriffe UsedRange und specialCells so wie xlCellTypeLastCell kennen gelehrnt.

Danke dir auf jeden Fall für deine Hinweise und Hilfestellungen.

Gruss
Demech


A ok. habe es gleich ausprobiert. Ist auch noch interessant zu wissen. 
Gutes Erklär Beispiel  :23:
Antworten Top
#20
Code:
Private Sub CommandButton1_Click()
  with Sheets("ListBoxDaten")
    .cells(rows.count,1).end(xlup).offset(1).resize(,2)=array(combobox1,combobox2)
   ListBox1.List = .cells(1).currentregion.Value
end with
End Sub

Kein Bedarf für ein 'named range'.
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
[-] Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:
  • Demech
Antworten Top


Gehe zu:


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