4.8k Aufrufe
Gefragt in Tabellenkalkulation von ponscho Mitglied (323 Punkte)
Guten Morgen an alle!

Ich habe mir mit Excel 2002 ein Personenblatt für meine Ahnen gebastelt in dem einige Daten eingegeben werde müssen.
Um mir die Sache zu erleichtern hätte ich gerne per VBA, daß Zellen in bestimmter Reihenfolge ausgefüllt werden. Dazu soll der Cursor nach Eingabe (manchmal kann auch nichts eingegeben werden) und betätigen der Return-Taste in die nächste Zelle, in der Daten eingegeben werden sollen, springen.

Reihenfolge: E4,E5,E6,M3,M4,O4,E8,H8,E9,E10,H10,E11,
H11,E12:K12,E15,H15,E16,H16,E22,H22,E23,E24,E25,H25,E28,E32
,E33,E36,E37 usw.

Es gilt grob überschlagen 90-100 Zellen zu befüllen. Am Ende soll der Hinweis kommen, daß alle wichtigen Daten erfasst sind und Der Cursor soll wieder zum Anfang.
Es sollte auch irgendwie die Möglichkeit geben, bei zu schnell gedrückter Return-Taste, eine Zelle mit Pfeiltasten zurück zu springen.

Ich bedanke mich schonmal für das lesen und das sich annehmen meines Problemes!

Internette Grüsse
Mick

PS: bei der SuFu war keine Lösung für mein Problem zu finden.

9 Antworten

0 Punkte
Beantwortet von kjg17 Profi (34.4k Punkte)
Hallo Mick,

eine Möglichkeit ohne VB-Script:

- in der Formatierung deiner 90-100 Zellen unter 'Schutz' den Haken bei 'Gesperrt' entfernen
- anschließen den Blattschutz aktivieren und dort nur die Option 'Nicht gesperrte Zellen auswählen' aktivieren.
- da in deiner etwas eigenwilligen Reihenfolge die Felder überwiegend zeilenweise abgearbeitet werden sollen, ist in den erweiterten Excel-Optionen 'Markierung nach Drücken der Eingabetaste verschieben' für diese Excel-Mappe auf 'Rechts' zu ändern

Nach Öffnen der Tabelle wäre die am weitesten oben links liegende, nicht gesperrte Zelle 'aktiv', in deinem Beispiel 'M3'. Bei Bestätigung mit Enter wird in das am weitesten links gelegene Feld in der nächsten Zeile mit nicht gesperrten Zellen gewechselt (E4), mit jedem weiteren Enter die nicht gesperrten Zellen der Zeile durchlaufen usw. Ein Navigieren zwischen den nicht gesperrten Zellen über die Pfeiltasten ist jederzeit möglich, nach Bestätigung der Eingabe in der letzten Zelle, bei dir 'E37' wird automatisch wieder in die erste Zelle 'M3' gesprungen, allerdings ohne die von dir gewünschte Meldung.

Sofern außerhalb dieser nicht gesperrten Zellen Eintragungen erfolgen sollen, wäre der Blattschutz zuvor wieder aufzuheben.

Teste mal ob das für dich eine akzeptable Alternative ist, ansonsten musst du noch etwas auf die VB-Experten warten. (Den Zusatz 'per VB' hättest du besser im Betreff mit angeben sollen.)

Gruß
Kalle
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi all ^^

ein beispiel

gruss nighty

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Application.EnableEvents = False
Dim rgBereich As Range
Dim zaehler As Range
Set rgBereich = ActiveSheet.Range("A2:A5")
For Each zaehler In rgBereich
If zaehler = "" Then
zaehler.Select
Exit For
End If
Next zaehler
Application.EnableEvents = True
End Sub
0 Punkte
Beantwortet von kjg17 Profi (34.4k Punkte)
Hallo nighty,

ich hab von VB-Script etwa genausoviel Ahnung, wie eine Tontaube vom Schießsport, aber gehört das wirklich in diesen Thread hier?

Gruß
Kalle
0 Punkte
Beantwortet von ponscho Mitglied (323 Punkte)
Hallo ihr beiden,

@Kalle, das mit dem Blattschutz wollte ich eigentlich vermeiden, da ich noch Zellen für diverse Notizen habe, die nicht unbedingt beim ersten mal ausgefüllt werden müssen. Und dann den Blattschutz wieder deaktivieren / aktivieren wenn ich an einer Formel etwas ändern muss. Da kommt meine Faulheit wieder ans Tageslicht ;o)
Ich Danke Dir recht herzlich für Deinen Vorschlag, sollte sich das nicht mit VBA lösen lassen, werde ich mich für Deine Alternative entscheiden.

@nighty, irgendwie funktioniert der Code bei mir nicht. Habe ihn im VBA Project unter Tabelle 1 eingefügt?
Auch in DieseArbeitsmappe habe ich es probiert.

Internette Grüsse
Mick
0 Punkte
Beantwortet von kjg17 Profi (34.4k Punkte)
Hallo Mick,

sofern man ihn nicht mit einem Kennwort versieht finde ich jeweils 2 Mausklicks zum Umschalten des Blattschutzes eigentlich nicht so besonders belastend. ;0)

Schau mer mal was nighty sagt.

Gruß
Kalle
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi :-)

ueber wieviel tabellenblaetter ?

ueber wieviel zellen ?

soll die erste zelle beim öffnen der datei angesprungen werden ?

mit fehlermelungen (allgemein oder seperat oder gar nicht) ?

gruss nighty
0 Punkte
Beantwortet von ponscho Mitglied (323 Punkte)
Hallo nighty,

es soll über ein Tabellenblatt laufen, was als Blanko-Vorlage dient und über ein Button auf der Startseite für jede Person neu eingefügt wird.

Über ca. 90-100 Zellen, wenn Du die genauen Zellenbezeichnungen brauchst, dann müsste ich sie Dir rausschreiben.

Wenn die erste Zelle E4 angesprungen würde beim öffnen, wäre das toll.

Definier mal Fehlermeldung?

Internette Grüsse
Mick
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi mick ^^

lass mir paar tage zeit ich muss mir ueber die stringlaenge der bereiche erst gedanken machen

gruss nighty
0 Punkte
Beantwortet von ponscho Mitglied (323 Punkte)
Hallo @ all,

habe es nun mit dem Blattschutz probiert, nur lässt sich der nicht mitkopieren.
Was könnte ich verkehrt machen?

Internette Grüsse
Mick
...