Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1480to1484
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Zahl in Zelle Schreiben
05.03.2016 15:43:00
MaBlu
Hallo
ich möchte die Jahreszahl in einem Kalender eingeben damit sich dieser auf das Neue Jahr einstellt, die Seite ist geschützt, und es gibt noch mehr einstellbuttons.
Dazu habe ich ein Makro das mir über eine Inputbox die Möglichkeit gibt die Zahl einzutragen.
Nur kann ich jetzt alles eintragen was ich will, wie kann ich das verhindern ich möchte nur die Zahl vierstellig eingeben können?
Beispiel:
Sub Inputbox_öffnen()
ActiveSheet.Unprotect Password:=""
Range("K1").Select
Dim E As Variant
E = InputBox("Jahreszahl eintragen", "Eingabebox")
Range("K1").Value = E
ActiveSheet.Protect Password:=""
End Sub
oder macht man das mit einer Userform, aber da weiss ich nicht wie?
Danke für eure Hilfe
MaBlu

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zahl in Zelle Schreiben
05.03.2016 16:37:37
Werner
Hallo,
versuch mal
Sub Inputbox_öffnen()
ActiveSheet.Unprotect Password:=""
Dim E As Variant
E = InputBox("Jahreszahl eintragen", "Eingabebox", 1, Type:=1) 'Typ 1 = nur Zahlen
If StrPtr(E) = 0 Then Exit Sub 'Ausstieg wenn Abbrechen gedrückt
If E ="" Or E  9999 Then
MsgBox "Falsche Eingabe."
Else
Range("K1").Value = E
End If
ActiveSheet.Protect Password:=""
End Sub
Ungetestet.
Gruß Werner

AW: Zahl in Zelle Schreiben
05.03.2016 21:39:18
René
Hallo MaBlu,
Werner hat dir ja schon eine Antwort gegeben, aber auch ich möchte dir noch eine Möglichkeit nennen :).
Da ich selbst auf Arbeit mit Excel und VBA zu tun habe, weiß ich das man vieles gerne individuell eingestellt haben möchte.
Ich würde dir Vorschlagen, sofern du ein Arbeitsblatt für Formeln hast, dort diese 3 Varianten zu hinterlegen (Untereinander)
=Jahr(Heute())-1
=Jahr(Heute())
=Jahr(Heute())+1
Dann in dem Arbeitsblatt wo du das Jahr für den Kalender hast, über "Daten", "Datenüberprüfung" der zelle eine Liste mit Dropdownfunktion zu hinterlegen für die oberen 3 Zellen.
So kann du dann Individuell deinen kalender einstellen, auf das Jahr was du möchtest.
Kannst du selbst auch variieren, wenn du z.B. das vergangene Jahr nicht brauchst, kann der Code weg.
Falls du beim Start immer Automatisch, das jetzige Jahr drin haben willst.
Einfach die zelle per VBA einfügen lassen. Hier ein Beispiel:
VBA CODE, einzutragen in "DieseArbeitsmappe":
Private Sub Workbook_Open()
worksheets("Tabelle1").Range("A1").value = Worksheets"(Tabelle1").Range("A1").value
End Sub
Tabelle1 und Zelle A1, musst du ja individuell anpassen.
Dies wäre meine Lösung welche ich nutzen würde.
Vielleicht sagt auch diese dir zu, bzw. gibt dir Gedanken für was komplexeres :).
Mfg René

Anzeige
AW: Zahl in Zelle Schreiben
06.03.2016 08:56:04
MaBlu
Hallo Rene
ja das geht und gibt mir Ideen wie man das alles machen könnte. Ich möchte aber für dieses Projekt lieber das Makro nutzen vor allem weil die Seite geschützt ist und weil ich ein beliebiges Jahres Datum haben muss.
Besten Dank für die Hilfe.
MaBlu

AW: Zahl in Zelle Schreiben
06.03.2016 08:46:56
MaBlu
Hallo Werner
geht leider nicht bleibt bei Type:=1 stehen, bennantes Argument nicht gefunden?
hab dann probiert und jetzt geht es aber ich weiss nicht ob das dein Vorschlag war?
Denn jetzt kommt in der Inputbox immer 2016
Sub Inputbox_öffnen()
ActiveSheet.Unprotect Password:=""
Dim E As Variant
E = InputBox("Jahreszahl eintragen", "Eingabebox", 2016) 'Typ 1 = nur Zahlen
If StrPtr(E) = 0 Then Exit 

Sub 'Ausstieg wenn Abbrechen gedrückt
If E = "" Or E  9999 Then
MsgBox "Falsche Eingabe."
Else
Range("K1").Value = E
End If
ActiveSheet.Protect Password:=""
End Sub
Gruss MaBlu

Anzeige
AW: Zahl in Zelle Schreiben
06.03.2016 09:06:06
MaBlu
Hallo Werner
geht leider nicht bleibt bei Type:=1 stehen, benanntes Argument nicht gefunden?
hab dann probiert und jetzt geht es aber ich weiss nicht ob das dein Vorschlag war?
Denn jetzt kommt in der Inputbox immer 2016
Sub Inputbox_öffnen()
ActiveSheet.Unprotect Password:=""
Dim E As Variant
E = InputBox("Jahreszahl eintragen", "Eingabebox", 2016) 'Typ 1 = nur Zahlen
If StrPtr(E) = 0 Then Exit 

Sub 'Ausstieg wenn Abbrechen gedrückt
If E = "" Or E  9999 Then
MsgBox "Falsche Eingabe."
Else
Range("K1").Value = E
End If
ActiveSheet.Protect Password:=""
End Sub
Gruss MaBlu

Anzeige
AW: Zahl in Zelle Schreiben
06.03.2016 09:16:37
Werner
Hallo,
nicht so ganz, du hast den Code ja jetzt auf zwei Sub aufgeteilt. Nimm mal das:
Sub Inputbox_öffnen()
Dim E As Variant
wiederholen:
E = InputBox("Jahreszahl eintragen", "Eingabebox")
If StrPtr(E) = 0 Then Exit Sub 'Ausstieg wenn Abbrechen gedrückt
If E = "" Or E  9999 Then
MsgBox "Falsche Eingabe."
GoTo wiederholen
Else
ActiveSheet.Unprotect Password:=""
Range("K1").Value = E
End If
ActiveSheet.Protect Password:=""
End Sub
Wenn du möchtdest, dass bei Start der Inputbox bereits ein Wert voreingetragen ist dann ersetze im Code die Zeile
E = InputBox("Jahreszahl eintragen", "Eingabebox")
durch
E = InputBox("Jahreszahl eintragen", "Eingabebox"), 2016
Gruß Werner

Anzeige
AW: Zahl in Zelle Schreiben
06.03.2016 09:38:02
MaBlu
Hallo Werner
Ja genau das war das, was ich gesucht habe super das hat bestens geklappt vielen vielen Dank!
PS: das waren nicht 2 Sub ich hab's nicht hingekriegt dass das im Textfeld normal gekommen ist?
Es alleine die 2. Sub abgezogen vom then Exit Sub?
Wünsche dir einen schönen Sonntag
MaBlu

AW: Danke für die Rückmeldung owT
06.03.2016 10:04:17
Werner

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige