Mit vba in excel untereinander auflisten

hallo,

hab eine frage, die ich hoffentlich gut beschreiben kann:
ich habe in einer userform mehrere commandbuttons,die, wenn man sie anklickt, werte in ein excel-tabellenblatt einfügen sollen. diese werte sollen untereinander aufgelistet werden, wobei geprüft werden soll, ob die zelle darüber leer ist und der wert „aufrutschen“ kann oder nicht. somit will ich erreichen, dass die werte der buttons, die ich anklicke, ohne lücke untereinander geschrieben werden.
weiß jemand was ich meine und weiß jemand einen befehl dafür?

vielen dank schon mal :smile:)

gast 123

Also so richtig weiß ich nicht was du meinst. Abe sowas wie
do until Cells(i,3).Value „“
i=i+1
Loop

lg vom See
OVM

Hallo,
Ich weiß leider nicht genau was du meinst.
So wie ich das verstanden habe möchtes du Prüfen ob ein Feld leer ist.
Das kannst du mit einem Makro folgendermaßen:
if Range(„C8“) = „“ then

end if
ich hoffe dass hilft dir!
MfG

Hi namenloser Gast,
(gern kommuniziere ich nicht in dieser Weise anonym…)
IMHO hast du deine Frage nicht so wirklich gut beschrieben.
Wie heißt die Tabelle?
In welche Spalte soll eingefügt werden?
Stehen die Werte in Variablen oder woanders?

Gefragt hast du:
„weiß jemand was ich meine und weiß jemand einen befehl dafür?“
Meine Antworten:
a) Ich glaube, so ungefähr weiß ich das.
b) Ich weiß (mindestens) einen Befehl dafür.

Ok, jetzt vernünftig:
Probier mal (hier mit Spalte

With Sheets("abc")
 .Cells(.Rows.Count, 5).End(xlUp).Offset(1) = 4711
End With

Schönes Restwochenende!

vielen dank schonmal für eure antworten :smile: ich denke, dass die richtige schon dabei ist, aber ich weiß nicht was ich da einsetzen muss, bin leider vba neuling…

also:
ich möchte , dass wenn ich auf einen commandbutton 1 klicke, der text „produkt 1“ beim tabellenblatt „abc“ in die zelle A1 geschrieben wird.
wenn ich auf commandbutton 2 klicke, soll er den text „produkt 2“ in A2 schreiben, aber nur wenn in A1 schon etwas steht, ich also den commandbutton 1 angeklickt hab, sonst soll er in A1 reinschreiben.
es sind 5 produkte, also habe ich ja zb einen bereich von A1-A5.

ich danke euch für eure geduld :wink:

ganz ehrlich gesagt weiss ich nicht so genau was du willst.

einen befehl dazu kenne ich nicht. vielleicht einen zaehler im programm fuehren, wo zuletzt gespeichert wurde, und den immer um eins erhoehen…

hallo!
jetzt hab ichs! vielen dank für eure hilfe!

))

Also, wenn ich das richtig verstanden habe willst Du eine Spalte in Excel lückenlos von oben nach unten fort schreiben? Das geht einfach. Man kann in Excel jede Zelle mit Cells(row,col) adressieren und somit einfach in einer Schleife in der entsprechenden Spalte von oben nach unten die erste freie Zelle suchen, z.B.
row = 1
col = …
Do while Cells(row, col) vbNullstring
row = row +1
Loop
’ row zeigt auf die erste leere Zelle der Spalte col
Cells(row, col) = wert

Hallo,

das würde ich durch eine Abfrage machen:

if cells(x,y)="" then cells(x,y) = wert
else cells(x+1,y)=wert
endif

usw.

Gruß

kivelobs

hey, danke für deine antwort. ich hab
es mit der if funktion und der funktion von erich hinbekommen. danke :smile:

hey, danke für deine antwort. ich hab
es mit der if funktion und der funktion von erich hinbekommen. danke :smile:

Hi.
Sorry, war länger nicht verfügbar.
Komme mit Userforms gar nicht klar - tut mir leid.
Bin aber sicher, zwischenzeitlich hast Du kompetente Hilfe erhalten.
Freundlich grüßt
Ernie