Supportnet / Forum / Tabellenkalkulation
Eingabeverpflichtung
Frage
Hallo Zusammen,
gibt es in Excel die Möglichkeit das ich zur Eingabe in eine Zelle verpflichte um in den Rest der Tabelle etwas eintragen zu können.
Zur Verdeutlichung:
Ich arbeite in einem Labor. Für die Auswertung unserer Prüfungen Nutzen wir eine Excel-Datei. In jeder Tabelle dieser Datei ist im Kopf der Prüfer und einige Parameter der Prüfung vermerkt. Nun würde ich die Tabelle gerne so Formatieren das Ergebnisse nur dann eingetragen werden können wen der Kopf ausgefüllt ist. Geht das und wen ja wie.
Vielen Dank jetzt schon
Gruß
Trudi
Antwort 1 von want2cu
hallo trudi,
das wird bestimmt gehen und wohl was für die Makro- und VBA-Spezialisten sein.
Vom Ansatz müßte es eigentlich so gehen, dass per Makro geprüft wird, ob in der/den entsprechenden Zellen EIntragungen sind und dann der vorher aktivierte Blattschutz aufgehoben wird.
Da hättest du dann aber das Problem, dass fehlerhafte Eintragungen nicht abgefangen werden sondern die Tabelle auch mit unsinnigen Eintröägen bearbeitet werden kann.
Wenn es im Prinzip immer dieselben Eintragungen sind, könntest du das über eine Auswahlliste erreichen (Daten-Gültigkeit-ZUlassen-Liste).
Jetzt hoffe ich, dass dir einer der VBA-Spezialisten mit einem Makro weiterhelfen kann.
Ansonsten müßtest du halt "zu Fuß" mit dem Makro-Recorder versuchen, die o.g. Ausführungen umzusetzen.
CU
KLaus
das wird bestimmt gehen und wohl was für die Makro- und VBA-Spezialisten sein.
Vom Ansatz müßte es eigentlich so gehen, dass per Makro geprüft wird, ob in der/den entsprechenden Zellen EIntragungen sind und dann der vorher aktivierte Blattschutz aufgehoben wird.
Da hättest du dann aber das Problem, dass fehlerhafte Eintragungen nicht abgefangen werden sondern die Tabelle auch mit unsinnigen Eintröägen bearbeitet werden kann.
Wenn es im Prinzip immer dieselben Eintragungen sind, könntest du das über eine Auswahlliste erreichen (Daten-Gültigkeit-ZUlassen-Liste).
Jetzt hoffe ich, dass dir einer der VBA-Spezialisten mit einem Makro weiterhelfen kann.
Ansonsten müßtest du halt "zu Fuß" mit dem Makro-Recorder versuchen, die o.g. Ausführungen umzusetzen.
CU
KLaus
Antwort 2 von Guenter
Hallo trudi,
ich kann da Klaus nur zustimmen, das geht ganz sicher mit einem Makro zu machen.
Im einfachsten Fall, wenn etwas in Zelle A1 stehen soll, könnte es heißen:
If [a1].value = "" then MsgBox ("Bitte erst Name in A1 eintragen!")
Das Ganze kann dann mit einem Ereignis für die Tabelle verknüpft werden, zum Beispiel beim speichern oder jedem ändern der Eingabe, usw.
Natürlich kann man auch für die Eingabe gewisse Vorgaben machen, um fehlerhafte Einträge zu vermeiden.
Mit dem Makro-Rekorder kommt man möglicherweise hier nicht so weit.
Gruß
Günter
ich kann da Klaus nur zustimmen, das geht ganz sicher mit einem Makro zu machen.
Im einfachsten Fall, wenn etwas in Zelle A1 stehen soll, könnte es heißen:
If [a1].value = "" then MsgBox ("Bitte erst Name in A1 eintragen!")
Das Ganze kann dann mit einem Ereignis für die Tabelle verknüpft werden, zum Beispiel beim speichern oder jedem ändern der Eingabe, usw.
Natürlich kann man auch für die Eingabe gewisse Vorgaben machen, um fehlerhafte Einträge zu vermeiden.
Mit dem Makro-Rekorder kommt man möglicherweise hier nicht so weit.
Gruß
Günter
Antwort 3 von nighty
hi hiltrud
kein prob fuer mich bitte um beispieltabelle mit eventueller beschreibung(per email) oder praezise beschreibung welche zellen konntrolliert werden sollen.
gruss nighty
kein prob fuer mich bitte um beispieltabelle mit eventueller beschreibung(per email) oder praezise beschreibung welche zellen konntrolliert werden sollen.
gruss nighty
Antwort 4 von Hiltrud Nilson
Vielen Dank Zusammen,
nighty: email ist unterwegs.
Gruß
Trudi
nighty: email ist unterwegs.
Gruß
Trudi
Antwort 5 von Aliba
Hi Trudi,
eine Möglichkeit ohne VBA, wäre auch die Datengültigkeit
Zum Beispiel wären die Pflichtzellen A1,B1 und C1.
Die Erfassungszellen, also wo die Ergebnisse erfasst werden, markieren, dann
DATEN - Gültigkeit - benuterdefiniert - Formel: =UND($A$1<>"";$B$1<>"";$C$1<>"")
Den Haken bei leeren Zellen ignorieren mußt Du rausnehmen. Dann kannst Du bei Register Fehlermeldung noch einen Text eingeben, wie z.B. ACHTUNG! Der Formularkopf muß ausgefüllt werden.
Wenn nun versucht wird in den Erfassungszellen etwas einzugeben, ohne daß A1,B1 und C1 gefüllt sind, kommt die entsprechende Fehlermeldung
CU Aliba
eine Möglichkeit ohne VBA, wäre auch die Datengültigkeit
Zum Beispiel wären die Pflichtzellen A1,B1 und C1.
Die Erfassungszellen, also wo die Ergebnisse erfasst werden, markieren, dann
DATEN - Gültigkeit - benuterdefiniert - Formel: =UND($A$1<>"";$B$1<>"";$C$1<>"")
Den Haken bei leeren Zellen ignorieren mußt Du rausnehmen. Dann kannst Du bei Register Fehlermeldung noch einen Text eingeben, wie z.B. ACHTUNG! Der Formularkopf muß ausgefüllt werden.
Wenn nun versucht wird in den Erfassungszellen etwas einzugeben, ohne daß A1,B1 und C1 gefüllt sind, kommt die entsprechende Fehlermeldung
CU Aliba
Antwort 6 von want2cu
@Aliba:
wieder mal ein Super-Praxistipp!
Habe ich gleich ausprobiert und kann es selbst prima brauchen.
Kleine ergänzende Anmerkung: bei "STIL" muss unbedingt die Option STOP gewählt werden. Sonst kann man die Meldung nämlich einfach "wegklicken" und die Eingabe ist dennoch möglich.
CU
KLaus
wieder mal ein Super-Praxistipp!
Habe ich gleich ausprobiert und kann es selbst prima brauchen.
Kleine ergänzende Anmerkung: bei "STIL" muss unbedingt die Option STOP gewählt werden. Sonst kann man die Meldung nämlich einfach "wegklicken" und die Eingabe ist dennoch möglich.
CU
KLaus
Antwort 7 von nighty
hi aliba und want2cu
wir koennten ja zusammenarbeiten meine idee, erst mal die einfachste,war die, ein automakro was eine inputbox ausgibt laesst sich leicht abfragen und in die betreffenen zellen uebertragen(die eingabe) betroffene zellen sind b3 und b4 wobei beachtet werden sollte das ab b6 zeilen nachtraeglich eingefuegt werden daher kommt ein blattschutz nicht in frage.es darf also bis b3 und b4 nicht ausgefuellt sind keine moeglichkeit mehr bestehen eventuelle andere zellen anzuspringen.
@aliba
beispieltabelle des fragestellers(da ohne daten)hab ich dir zugeschickt,ich denke das ich bis zum ende des wochenendes erfolge vorzuweisen habe und es waere nett wenn wir unsere ergebnisse tauschen wuerden(koennten), waere klasse bin gespannt auf deine ideen.
gruss nighty
wir koennten ja zusammenarbeiten meine idee, erst mal die einfachste,war die, ein automakro was eine inputbox ausgibt laesst sich leicht abfragen und in die betreffenen zellen uebertragen(die eingabe) betroffene zellen sind b3 und b4 wobei beachtet werden sollte das ab b6 zeilen nachtraeglich eingefuegt werden daher kommt ein blattschutz nicht in frage.es darf also bis b3 und b4 nicht ausgefuellt sind keine moeglichkeit mehr bestehen eventuelle andere zellen anzuspringen.
@aliba
beispieltabelle des fragestellers(da ohne daten)hab ich dir zugeschickt,ich denke das ich bis zum ende des wochenendes erfolge vorzuweisen habe und es waere nett wenn wir unsere ergebnisse tauschen wuerden(koennten), waere klasse bin gespannt auf deine ideen.
gruss nighty
Antwort 8 von nighty
hi aliba
deine emailadresse stimmte bei mir nicht kam zurueck die email ,daher hier die erste bzw. einfachste loesung fuer mich.wie gesagt die erste idee schoener waere doch das die eingabe in den betroffenen zellen erfolgen koennte.
ich arbeite daran.
gruss nighty
Private Sub Workbook_Open()
Dim wert01 As String
Dim wert02 As String
Range("b3").Select
Do
If wert01 = "" Then
wert01 = InputBox("Prüfer :", "bitte um Eingabe !")
End If
If wert01 <> "" Then Exit Do
Loop
Do
If wert02 = "" Then
wert02 = InputBox("Gradient :", "bitte um Eingabe !")
End If
If wert02 <> "" Then Exit Do
Loop
Range("b3") = wert01
Range("b4") = wert02
End Sub
deine emailadresse stimmte bei mir nicht kam zurueck die email ,daher hier die erste bzw. einfachste loesung fuer mich.wie gesagt die erste idee schoener waere doch das die eingabe in den betroffenen zellen erfolgen koennte.
ich arbeite daran.
gruss nighty
Private Sub Workbook_Open()
Dim wert01 As String
Dim wert02 As String
Range("b3").Select
Do
If wert01 = "" Then
wert01 = InputBox("Prüfer :", "bitte um Eingabe !")
End If
If wert01 <> "" Then Exit Do
Loop
Do
If wert02 = "" Then
wert02 = InputBox("Gradient :", "bitte um Eingabe !")
End If
If wert02 <> "" Then Exit Do
Loop
Range("b3") = wert01
Range("b4") = wert02
End Sub
Antwort 9 von Aliba
Hi nighty,
also was Makros und Codes angeht, bin ich ne absolute Niete. Bin mehr der Formelmensch. Makros kann ich zwar noch so über den Rekorder aufnehmen, aber dann ists schon aus.
CU Aliba
Meine Mailaddy sollte aber funzen.
also was Makros und Codes angeht, bin ich ne absolute Niete. Bin mehr der Formelmensch. Makros kann ich zwar noch so über den Rekorder aufnehmen, aber dann ists schon aus.
CU Aliba
Meine Mailaddy sollte aber funzen.
Antwort 10 von want2cu
@Aliba:
das beruhigt mich ja wieder ein wenig, dass ich nicht der einzige bin , der sich mit VBA und Makros nicht so auskennt.
Ich habe es auch eher mit Formeln&CO; für Makros und VBA muss ich stattdessen auf Bücher zurückgreifen, wo es fertige LÖsungen gibt. Dank der beiliegenden Buch-CD´s muss man auch nix abtippen, allenfalls ein wenig an die eigenen Bedürfnisse anpassen. Ich kann eben besser lesen, als VBA :-(
Auch wenn es um Buchtipps zu anderen Themenbereichen geht, bin ich gerne behilflich.
CU
Klaus
das beruhigt mich ja wieder ein wenig, dass ich nicht der einzige bin , der sich mit VBA und Makros nicht so auskennt.
Ich habe es auch eher mit Formeln&CO; für Makros und VBA muss ich stattdessen auf Bücher zurückgreifen, wo es fertige LÖsungen gibt. Dank der beiliegenden Buch-CD´s muss man auch nix abtippen, allenfalls ein wenig an die eigenen Bedürfnisse anpassen. Ich kann eben besser lesen, als VBA :-(
Auch wenn es um Buchtipps zu anderen Themenbereichen geht, bin ich gerne behilflich.
CU
Klaus
Antwort 11 von nighty
hi alle
hier noch eine loesung ohne inputbox tataa !
Private Sub Workbook_Open()
Call Makro02
End Sub
Sub Makro02()
Range("b3") = ""
Range("b4") = ""
Range("b3").Select
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Call Makro01
End Sub
Sub Makro01()
Do
If Range("b3") = "" Then
Range("b3").Select
Exit Do
Else
Exit Do
End If
Loop
Do
If Range("b4") = "" And Range("b3") <> "" Then
Range("b4").Select
Exit Do
Else
Exit Do
End If
Loop
End Sub
1 modul=makro01=vbaprojekt/diesearbeitsmappe/allgemein-makro01
2 modul=makro02=vbaprojekt/diesearbeitsma ppe/allgemein-makro02
3
modul=Private Sub Workbook_Open()
vbaprojekt/diesearbeitsmappe/workbook- open
4
modul=PrivateSubworksheet_selectionChange=vbaprojekt/tabelle1/worksheet-selektionChange
die abfrage bezieht sich zur zeit auf b3 und b4 !
gruss nighty
p.s.
an alle sn-FANS noch ein schoenes wochenende nicht vergessen meine schreibfehler sind bitte nicht zu beachten.
hier noch eine loesung ohne inputbox tataa !
Private Sub Workbook_Open()
Call Makro02
End Sub
Sub Makro02()
Range("b3") = ""
Range("b4") = ""
Range("b3").Select
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Call Makro01
End Sub
Sub Makro01()
Do
If Range("b3") = "" Then
Range("b3").Select
Exit Do
Else
Exit Do
End If
Loop
Do
If Range("b4") = "" And Range("b3") <> "" Then
Range("b4").Select
Exit Do
Else
Exit Do
End If
Loop
End Sub
1 modul=makro01=vbaprojekt/diesearbeitsmappe/allgemein-makro01
2 modul=makro02=vbaprojekt/diesearbeitsma ppe/allgemein-makro02
3
modul=Private Sub Workbook_Open()
vbaprojekt/diesearbeitsmappe/workbook- open
4
modul=PrivateSubworksheet_selectionChange=vbaprojekt/tabelle1/worksheet-selektionChange
die abfrage bezieht sich zur zeit auf b3 und b4 !
gruss nighty
p.s.
an alle sn-FANS noch ein schoenes wochenende nicht vergessen meine schreibfehler sind bitte nicht zu beachten.
Antwort 12 von want2cu
@nighty:
<mächtiglautindiehändeklatsch>
Bin wieder mal begeistert und staune ;-)
CU
Klaus
<mächtiglautindiehändeklatsch>
Bin wieder mal begeistert und staune ;-)
CU
Klaus
Antwort 13 von nighty
hi alle
trudi und aliba haben email erhalten bzw. die fertige tabelle.
gruss nighty
p.s.
alba`s email ging diesmal zu verschicken
trudi und aliba haben email erhalten bzw. die fertige tabelle.
gruss nighty
p.s.
alba`s email ging diesmal zu verschicken
Antwort 14 von Aliba
Hi Nighty,
mail habe ich erhalten. TOlle, sehr elegante Lösung.
CU Aliba
mail habe ich erhalten. TOlle, sehr elegante Lösung.
CU Aliba

