Supportnet / Forum / Tabellenkalkulation
Userform
Frage
Habe in meiner Tabelle A1Januar:L1Dezember stehen,nun möchte ich mit einer userform Beträge eingebe zb. februar 100DM oder Dezember 50DM
müsste aber auch wieder Beträge löschen können mit der Userform fals sie falsche eingegeben wurden.
vielleicht kann mir einer ein Beispiel senden.
wie eine Userform geht usw das weiß ich schon Arbeite damit .
Ein Dankeschön im Vorraus
mfg Rolf
Antwort 1 von rolandaa
weis einer wirklich
was er will ?!?
was er will ?!?
Antwort 2 von Event
Hallo
Versuchs doch mal mit "> Daten > Maske..."
Gurten Rutsch
Versuchs doch mal mit "> Daten > Maske..."
Gurten Rutsch
Antwort 3 von Bischoff2000
ist doch ganz einfach habe oben jeden monat stehen von links nach rechts jauar bis dezember und möchte darunter immer einen betrag eingeben und das nicht mit einer Maske sondern mit einer userform
mfg Rolf
mfg Rolf
Antwort 4 von coros
Moin an alle,
Rolf scheint ein wenig schreibfaul zu sein. Er schreibt weder, ob er für dieses Vorhaben bereits eine UserForm erstellt hat, noch wenn ja, welche Felder darin enthalten sind. Da ich beim Hellseherkurs mal wieder nicht aufgepasst habe, muss ich das anhand eines Beispiels erklären.
Ausgangslage: Eine UserForm in der sich ein Kombinationsfeld (ComboBox), ein Textfeld (TextBox) und eine Befehlsschaltfläche (CommandButton) befinden. Kopiere nachfolgenden Code in das VBA Projekt dieser UserForm.
Mit diesem VBA Code wird das Kombinationsfeld beim Initialisieren der UserForm mit den Werten aus Zeile 1 Spalte A bis L, also den Monatsnamen gefüllt. Wenn man nun in das Textfeld einen Betrag eingibt und danach den CommandButton betätigt, wird der Betrag in die entsprechende Monatsspalte in Zeile 2 übertragen. Soll ein Wert aus der Zeile entfernt werden, muss ebenfalls aus dem Kombinationsfeld der Monatsname, dessen Betrag gelöscht werden soll, ausgewählt werden. Dann muss, sofern vorhanden, der Betrag aus dem Textfeld gelöscht werden, so dass dieses leer ist und dann wieder den Button betätigen. Alternativ kann man für das Löschen auch einen 2. Button in der UserForm platzieren. Dann muss aber in dem UserForm_Initialize-Ereignis die Zeile
und die Zeilen
gelöscht und der Code
muss in das VBA Projekt der UserForm hinzugefügt werden. Auch mit diesem Code muss in der ComboBox der Monatsname ausgewählt werden und dann kann der 2. Button betätigt werden, der den Betrag unter dem Monatsnamen dann löscht.
Kannst Dir ja eine Variante aussuchen. ich hoffe, Du kommst klar. Bei Fragen melde Dich bitte. Dann aber bitte in paar mehr Infos geben. Denn Du stellst ja nicht zum ersten Mal hier eine Frage und solltest bereits wissen, dass man, um sich ein Bild machen zu können, soviel Infos wie möglich benötigt.
Einen guten Rutsch.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Rolf scheint ein wenig schreibfaul zu sein. Er schreibt weder, ob er für dieses Vorhaben bereits eine UserForm erstellt hat, noch wenn ja, welche Felder darin enthalten sind. Da ich beim Hellseherkurs mal wieder nicht aufgepasst habe, muss ich das anhand eines Beispiels erklären.
Ausgangslage: Eine UserForm in der sich ein Kombinationsfeld (ComboBox), ein Textfeld (TextBox) und eine Befehlsschaltfläche (CommandButton) befinden. Kopiere nachfolgenden Code in das VBA Projekt dieser UserForm.
Option Explicit
Public Wiederhoungen As Integer
Private Sub UserForm_Initialize()
For Wiederhoungen = 1 To 12
ComboBox1.AddItem Sheets("Tabelle1").Cells(1, Wiederhoungen)
Next
End Sub
Private Sub CommandButton1_Click()
For Wiederhoungen = 1 To 12
If Sheets("Tabelle1").Cells(1, Wiederhoungen) = ComboBox1.Text And Not IsEmpty(TextBox1) Then
On Error GoTo Errorhandler
Sheets("Tabelle1").Cells(2, Wiederhoungen) = CDbl(TextBox1.Text)
End If
Next
Exit Sub
Errorhandler:
Sheets("Tabelle1").Cells(2, Wiederhoungen).ClearContents
End Sub
Mit diesem VBA Code wird das Kombinationsfeld beim Initialisieren der UserForm mit den Werten aus Zeile 1 Spalte A bis L, also den Monatsnamen gefüllt. Wenn man nun in das Textfeld einen Betrag eingibt und danach den CommandButton betätigt, wird der Betrag in die entsprechende Monatsspalte in Zeile 2 übertragen. Soll ein Wert aus der Zeile entfernt werden, muss ebenfalls aus dem Kombinationsfeld der Monatsname, dessen Betrag gelöscht werden soll, ausgewählt werden. Dann muss, sofern vorhanden, der Betrag aus dem Textfeld gelöscht werden, so dass dieses leer ist und dann wieder den Button betätigen. Alternativ kann man für das Löschen auch einen 2. Button in der UserForm platzieren. Dann muss aber in dem UserForm_Initialize-Ereignis die Zeile
On Error GoTo Errorhandler
und die Zeilen
Exit Sub
Errorhandler:
Sheets("Tabelle1").Cells(2, Wiederhoungen).ClearContents
gelöscht und der Code
Private Sub CommandButton2_Click()
For Wiederhoungen = 1 To 12
If Sheets("Tabelle1").Cells(1, Wiederhoungen) = ComboBox1.Text Then
Sheets("Tabelle1").Cells(2, Wiederhoungen).ClearContents
End If
Next
End Sub
muss in das VBA Projekt der UserForm hinzugefügt werden. Auch mit diesem Code muss in der ComboBox der Monatsname ausgewählt werden und dann kann der 2. Button betätigt werden, der den Betrag unter dem Monatsnamen dann löscht.
Kannst Dir ja eine Variante aussuchen. ich hoffe, Du kommst klar. Bei Fragen melde Dich bitte. Dann aber bitte in paar mehr Infos geben. Denn Du stellst ja nicht zum ersten Mal hier eine Frage und solltest bereits wissen, dass man, um sich ein Bild machen zu können, soviel Infos wie möglich benötigt.
Einen guten Rutsch.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 5 von Bischoff2000
oh danke für deine hilfe ,es ist so wenn mann halt zu viele infos schreibt blicken die leute nicht mehr durch mir ist es lieber es wird noch mal nachgefragt.
nochmals danke.
so es geht super mit der userform ,aber ich möchte nicht das es mir der betrag immer in die gleiche zeile einträgt es soll der betrag immer in der spalte danach wo die nächste zelle noch frei ist eingetragen werden und so weiter so das die anderen werte immmer bleiben
mfg Rolf
nochmals danke.
so es geht super mit der userform ,aber ich möchte nicht das es mir der betrag immer in die gleiche zeile einträgt es soll der betrag immer in der spalte danach wo die nächste zelle noch frei ist eingetragen werden und so weiter so das die anderen werte immmer bleiben
mfg Rolf
Antwort 6 von Bischoff2000
halt noch etwas ich weis jetzt nicht wie mann das mit den löschen regeln kann vielleicht das mann immer wenn man auf den löschen button drückt der letzte betrag vom ausgewählten monat gelöscht wird .geht so was
nochmals danke
mfg Rolf
nochmals danke
mfg Rolf
Antwort 7 von coros
Hallo Rolf,
verzeih mir den nachfolgenden Text, aber was Du bezüglich der Infos schreibst ist großer "BullShit". Warum sollen Leute nicht mehr durchblicken, wenn Sie ein paar mehr Infos mehr haben. Eher anders herum wird ein Schuh draus. Also wenn man zu wenig Infos hat, blickt keiner durch und es kommen laufend Nachfragen und der Beitrag wird nur unnötig in die Länge gezogen.
Tausche den nachfolgenden Code gegen den gesamten VBA COde in der UserForm aus.
Dieser Code solte genau das machen, was Du Dir vorgestellt hast. Hoffe ich zumindest. Wenn nicht, dann melde Dich bitte noch mal.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
verzeih mir den nachfolgenden Text, aber was Du bezüglich der Infos schreibst ist großer "BullShit". Warum sollen Leute nicht mehr durchblicken, wenn Sie ein paar mehr Infos mehr haben. Eher anders herum wird ein Schuh draus. Also wenn man zu wenig Infos hat, blickt keiner durch und es kommen laufend Nachfragen und der Beitrag wird nur unnötig in die Länge gezogen.
Tausche den nachfolgenden Code gegen den gesamten VBA COde in der UserForm aus.
Option Explicit
Public Wiederhoungen As Integer, Spalte As String
Private Sub UserForm_Initialize()
For Wiederhoungen = 1 To 12
ComboBox1.AddItem Sheets("Tabelle1").Cells(1, Wiederhoungen)
Next
End Sub
Private Sub CommandButton1_Click()
For Wiederhoungen = 1 To 12
If Sheets("Tabelle1").Cells(1, Wiederhoungen) = ComboBox1.Text And Not IsEmpty(TextBox1) Then
Spalte = Mid(Sheets("Tabelle1").Cells(1, Wiederhoungen).Address, 2, 1)
Sheets("Tabelle1").Cells(Sheets("Tabelle1").Range(Spalte & "65536").End(xlUp).Offset(1, 0).Row, Wiederhoungen) = CDbl(TextBox1.Text)
End If
Next
TextBox1.Text = ""
End Sub
Private Sub CommandButton2_Click()
For Wiederhoungen = 1 To 12
If Sheets("Tabelle1").Cells(1, Wiederhoungen) = ComboBox1.Text Then
Spalte = Mid(Sheets("Tabelle1").Cells(1, Wiederhoungen).Address, 2, 1)
If Range(Spalte & "65536").End(xlUp).Row >= 2 Then
Sheets("Tabelle1").Cells(Sheets("Tabelle1").Range(Spalte & "65536").End(xlUp).Row, Wiederhoungen).ClearContents
End If
End If
Next
End Sub
Dieser Code solte genau das machen, was Du Dir vorgestellt hast. Hoffe ich zumindest. Wenn nicht, dann melde Dich bitte noch mal.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 8 von Event
@Oliver alias Coros
Alles erdenklich Gute im nächsten Jahr für Dich und Deine Lieben.
Deine Geduld ist bewundernswert.
Guten Rutsch
..and a happy new year
Alles erdenklich Gute im nächsten Jahr für Dich und Deine Lieben.
Deine Geduld ist bewundernswert.
Guten Rutsch
..and a happy new year
Antwort 9 von coros
Hallo @Event,
danke Dir für Deine Worte. Ich wünsche auch Dir und Deiner Familie alles gute und ein erfolgreiches Jahr 2006.
Wir lesen dann nächstes Jahr sicherlich wieder von einander, ich gehe jetzt feiern.
MfG,
Oliver
Jeder macht was er will, keiner macht was er soll, aber alle machen mit.
danke Dir für Deine Worte. Ich wünsche auch Dir und Deiner Familie alles gute und ein erfolgreiches Jahr 2006.
Wir lesen dann nächstes Jahr sicherlich wieder von einander, ich gehe jetzt feiern.
MfG,
Oliver
Jeder macht was er will, keiner macht was er soll, aber alle machen mit.
Antwort 10 von Bischoff2000
Hi coros danke dir nochmals ,das was du mir geschrieben hast ist genau das was ich wollte , es kommt nur noch ein fehler den du noch für mich beareiten musst wenn ich in der userform das monat auswähle und ich dann keinen betrag eingebe kommt eine laufzeitfehler.
danke rolf
danke rolf
Antwort 11 von coros
Morgen Rolf,
ein gesundes neues Jahr wünsche ich Dir und allen anderen.
Tausche den Code für den CommandButton1 gegen den nachfolgenden aus.
Damit sollte es funktionieren.
Wenn doch noch Probleme auftreten sollten, so melde Dich bitte wieder. Verfasse dann aber bitte Deine Frage etwas anders. Denn auf das Wort "muss" reagiere ich etwas allergisch. Wenn Du nicht wissen solltest, was ich meine, dann lese Dir Deinen letzten Beitrag noch mal durch. Ganz besonders die Passage
Denn müssen muss hier keiner, das ist alles feiwillig.
Also bis demnächst dann.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
ein gesundes neues Jahr wünsche ich Dir und allen anderen.
Tausche den Code für den CommandButton1 gegen den nachfolgenden aus.
Private Sub CommandButton1_Click()
For Wiederhoungen = 1 To 12
If Sheets("Tabelle1").Cells(1, Wiederhoungen) = ComboBox1.Text And TextBox1.Text <> "" Then
Spalte = Mid(Sheets("Tabelle1").Cells(1, Wiederhoungen).Address, 2, 1)
Sheets("Tabelle1").Cells(Sheets("Tabelle1").Range(Spalte & "65536").End(xlUp).Offset(1, 0).Row, Wiederhoungen) = CDbl(TextBox1.Text)
End If
Next
TextBox1.Text = ""
End Sub
Damit sollte es funktionieren.
Wenn doch noch Probleme auftreten sollten, so melde Dich bitte wieder. Verfasse dann aber bitte Deine Frage etwas anders. Denn auf das Wort "muss" reagiere ich etwas allergisch. Wenn Du nicht wissen solltest, was ich meine, dann lese Dir Deinen letzten Beitrag noch mal durch. Ganz besonders die Passage
Zitat:
es kommt nur noch ein fehler den du noch für mich beareiten musst
es kommt nur noch ein fehler den du noch für mich beareiten musst
Denn müssen muss hier keiner, das ist alles feiwillig.
Also bis demnächst dann.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 12 von Bischoff2000
na so war das ja nicht mit dem musst gemeind mann soll halt nicht gleich jedes word auf die goldwage legen
auf jeden fall läuft die datei super ( danke)
Ich bedanke mich bei dir und bei allen anderen und wünsche jeden ein frohes neues jahr 2006
rolf
auf jeden fall läuft die datei super ( danke)
Ich bedanke mich bei dir und bei allen anderen und wünsche jeden ein frohes neues jahr 2006
rolf
Antwort 13 von Bischoff2000
Hi wünsche allen ein gutes neues jahr.
brächte nochmals eure hilfe bei den obigen code ,
Mir ist erst jetzt aufgefallen das wenn ich in der Box einen text statt eine zahl eingebe das da auch wieder ein laufzeitfehler kommt .
vielleicht kann mir da nochmals jemand helfen.
danke im vorraus.
rolf
brächte nochmals eure hilfe bei den obigen code ,
Mir ist erst jetzt aufgefallen das wenn ich in der Box einen text statt eine zahl eingebe das da auch wieder ein laufzeitfehler kommt .
vielleicht kann mir da nochmals jemand helfen.
danke im vorraus.
rolf
Antwort 14 von coros
Moin Rolf,
tausche den Code für den CommandButton1 gegen den nachfolgenden aus.
Somit sind nur noch Zahlen erlaubt. Das sollte es gewesen sein.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
tausche den Code für den CommandButton1 gegen den nachfolgenden aus.
Private Sub CommandButton1_Click()
For Wiederhoungen = 1 To 12
If Sheets("Tabelle1").Cells(1, Wiederhoungen) = ComboBox1.Text And TextBox1.Text <> "" And IsNumeric(TextBox1) Then
Spalte = Mid(Sheets("Tabelle1").Cells(1, Wiederhoungen).Address, 2, 1)
Sheets("Tabelle1").Cells(Sheets("Tabelle1").Range(Spalte & "65536").End(xlUp).Offset(1, 0).Row, Wiederhoungen) = CDbl(TextBox1.Text)
End If
Next
TextBox1.Text = ""
End Sub
Somit sind nur noch Zahlen erlaubt. Das sollte es gewesen sein.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 15 von Bischoff2000
jo klappt super
Danke an allen
Rolf
Danke an allen
Rolf