Supportnet / Forum / Tabellenkalkulation
VBA: IF / ELSE
Frage
Hallo zusammen,
ich habe einen Spalte von B4 bis B253. Da möchte ich Einträge per Textbox reinsetzen. Wenn nun die Zelle B4 schon gefüllt ist. Soll der Eintrag in Zelle B5 usw.
Ich versuch das schon die ganze Zeit mit nem If else Begehl, aber das gelingt mir nicht wirlich...
Danke Marsi
Antwort 1 von Guenter
Hallo,
schreib doch mal, was Du schon hast (oder den betreffenden Teil), dann läst sich leichter etwas verbessern.
Gruß
Günter
schreib doch mal, was Du schon hast (oder den betreffenden Teil), dann läst sich leichter etwas verbessern.
Gruß
Günter
Antwort 2 von Marsi
Hi, was ich habe ist glaube ich nicht so viel wert, weil ich mich mit dem If Else auch nicht so gut auskenne und daher habe ich nur was probiert bisher was aber immer Fehlermeldungen brachte.... und gar nicht erst startete.
ich will ja auch nicht unbedingt ne komplette Lösung, vielleicht kannst Du mir mal den aufbau IF Else mit nem textfeld erklären mit nem Optionsfeld habe ich so eine Funktion schon hin bekommen...
ich will ja auch nicht unbedingt ne komplette Lösung, vielleicht kannst Du mir mal den aufbau IF Else mit nem textfeld erklären mit nem Optionsfeld habe ich so eine Funktion schon hin bekommen...
Antwort 3 von Marsi
also hier mal meine schwachen Versuche:
If B4 = 0 Then
Range("B4") = TextBox1.Text
Else
Range("B5") = TextBox1.Text
End If
Antwort 4 von Guenter
Hallo Marsi,
mit Textfeld und IF/ELSE würde ich das im augenblick auch nicht hinbekommen.
Du willst den Eintrag im Textfeld immer in die letzte freie Zelle der Spalte B eintragen? Ist das so gemeint?
die letzte gefüllte Zelle findest Du z.B. hier:
Das geht dann ohne IF/ELSE.
(nicht getestet von mir)
Gruß
Günter
mit Textfeld und IF/ELSE würde ich das im augenblick auch nicht hinbekommen.
Du willst den Eintrag im Textfeld immer in die letzte freie Zelle der Spalte B eintragen? Ist das so gemeint?
die letzte gefüllte Zelle findest Du z.B. hier:
i = Cells(Rows.Count, 2).End(xlUp).Row
cells(i + 1,2).value = textbox1.text
Das geht dann ohne IF/ELSE.
(nicht getestet von mir)
Gruß
Günter
Antwort 5 von Marsi
Hi ja das klappt, ich habe auch ein andere zugesandt bekommen:
x = Cells(Rows.Count, 2).End(xlUp).Row + 1
Range("B" & x).Value = TextBox1.Text
allerdings fehlt bei beiden die Begrenzung von Zeile 4 bis Zeile 253.....
Marsi
Antwort 6 von Guenter
Hallo, Marsi,
dann noch eine if-Abfrage einbauen:
probiere es mal aus.
Wenn es nicht geht, nochmals melden.
Gruß
Günter
dann noch eine if-Abfrage einbauen:
x = Cells(Rows.Count, 2).End(xlUp).Row + 1
if x < 4 or x > 253 then exit
Range("B" & x).Value = TextBox1.Text
probiere es mal aus.
Wenn es nicht geht, nochmals melden.
Gruß
Günter
Antwort 7 von Marsi
geht nicht er mekert schon bei der erstellung rum
und sagt:
Syntaxfegler
und sagt:
Syntaxfegler
Antwort 8 von Guenter
Hallo,
ich hatte das Sub vergessen.
So geht's.
Satt das Makro zu beenden mit Exit Sub kann natürlich auch etwas anderes stehen.
Gruß
GÜnter
ich hatte das Sub vergessen.
So geht's.
Sub test()
x = Cells(Rows.Count, 2).End(xlUp).Row + 1
If x < 4 Or x > 253 Then Exit Sub
Range("B" & x).Value = TextBox1.Text
End Sub
Satt das Makro zu beenden mit Exit Sub kann natürlich auch etwas anderes stehen.
Gruß
GÜnter
Antwort 9 von Marsi
das sub hatte ich schon hingeschrieben, er macht mir die Zeile mit dem if rot und sagt da syntaxfehler....
Antwort 10 von Marsi
....mir ist noch was eingefallen, könnte es dran liegen, dass ich den code einem command button zugeordnet habe?
also bei mir steht sub command_button1_click ()
?????
Marsi
also bei mir steht sub command_button1_click ()
?????
Marsi
Antwort 11 von Marsi
so ich habe es noch mal ausprobiert:
mein Code lautet jetzt:
das Problem dabei ist jetzt nur, dass nun nix mehr vom UserForm ins Tabellenblatt übertragen wird....
mein Code lautet jetzt:
Private Sub CommandButton1_Click()
x = Cells(Rows.Count, 2).End(xlUp).Row + 1
If x < 4 Or x > 253 Then Exit Sub
Range("B" & x).Value = TextBox1.Text
End Sub
das Problem dabei ist jetzt nur, dass nun nix mehr vom UserForm ins Tabellenblatt übertragen wird....
Antwort 12 von Guenter
Hallo,
also bei mir läuft das Makro problemlos.
Hast Du die Userform1 angezeigt mit
Userform1.Show
Gruß
Günter
also bei mir läuft das Makro problemlos.
Hast Du die Userform1 angezeigt mit
Userform1.Show
Gruß
Günter
Antwort 13 von Marsi
ich habe das UserForm ber schaltfläche gestartet, mit dem userform1.show befehl...
sollte es daran liegen?
sollte es daran liegen?
Antwort 14 von Marsi
soll ich dir meine mappe mal schicken?
Antwort 15 von Guenter
Hallo,
nee,
wenn ich mit Ansicht Symbolleisten, Steuerelemente-Toolbox eine Schaltfläche erzeuge und dort
eingebe, funktioniert das auch.
Stimmt der Name der TextBox?
Versuchs doch mal mit einer kleinen Testtabelle.
Gruß
Günter
nee,
wenn ich mit Ansicht Symbolleisten, Steuerelemente-Toolbox eine Schaltfläche erzeuge und dort
Private Sub CommandButton1_Click()
UserForm1.Show
End Sub
eingebe, funktioniert das auch.
Stimmt der Name der TextBox?
Versuchs doch mal mit einer kleinen Testtabelle.
Gruß
Günter
Antwort 16 von Guenter
Hallo,
ich denke, erstmal nicht nötig, wenn Du mal mit einer Testtabelle arbeitest.
Also, in Excel ein paar Zaheln eingeben (in spalte B), Dann Userform mit Textbox und Befehlsschaltfläche machen, den Code eingeben bei der Schaltfläche. Dann wie oben beschrieben neue Schaltfläche im Excel-Blatt machen und dort bei der Schaltfläche den Code eingeben.
Wenn das bei Dir nicht geht, kann ich Dir eine Testtabelle schicken.
Gruß
Günter
ich denke, erstmal nicht nötig, wenn Du mal mit einer Testtabelle arbeitest.
Also, in Excel ein paar Zaheln eingeben (in spalte B), Dann Userform mit Textbox und Befehlsschaltfläche machen, den Code eingeben bei der Schaltfläche. Dann wie oben beschrieben neue Schaltfläche im Excel-Blatt machen und dort bei der Schaltfläche den Code eingeben.
Wenn das bei Dir nicht geht, kann ich Dir eine Testtabelle schicken.
Gruß
Günter
Antwort 17 von Marsi
jetzt hab ich's in Zelle B4 muss am Anfang schon was drin stehen......ach so. Da hab ich die Logik des Codes wohl nicht ganz kapiert.
Danke Günter, jetzt funtst alles und ich bin glücklich ;o)
Viele Grüße
Markus
Danke Günter, jetzt funtst alles und ich bin glücklich ;o)
Viele Grüße
Markus
Antwort 18 von Guenter
Hallo Markus,
keine Ursache.
Es muss in Zelle B3 etwas stehen, damit x +1 nicht kleiner 4 wird.Das kannst Du noch anpassen nach Bedarf.
Gruß
Günter
keine Ursache.
Es muss in Zelle B3 etwas stehen, damit x +1 nicht kleiner 4 wird.Das kannst Du noch anpassen nach Bedarf.
Gruß
Günter

