Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
400to404
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
400to404
400to404
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Tab-Reihenfolge in nicht gesperrten Zellen

Tab-Reihenfolge in nicht gesperrten Zellen
Ingo
Hallo
Ich habe mir mit Excel ein Rechnungsformular erstellt.
Dabei habe ich alle Zellen gesperrt,
in die nichts eingetragen werden sollen.
Der Blattschutz ist an.
Wenn ich nun mit der Tab-Taste von Zelle zu Zelle springe,
werden ja nur die Zellen angesprungen,
dich ich vorher nicht gesperrt habe.
Meine Frage ist nun, ob man die Reihenfolge beeinflussen kann,
in der die Zellen per Tab-Taste angesprungen werden.
Weiss das jemand von Euch ?
Und wenn ja, wie geht denn das ?
Über Hilfe freut sich immer
Ingo aus Münster
AW: Tab-Reihenfolge in nicht gesperrten Zellen
DieterB
Hallo Ingo aus Münster :-))
unter Extras, Optionen, Bearbeiten kannst du die Markierung
in die 4 "Himmelsrichtungen" verschieben.
Ich weiß nicht, ob es das ist was Du willst.
gruß
DieterB
(aus Hamburg)
Nein, das war es nicht, was ich meinte.
Ingo
Lieber Dieter B aus Hamburg :)
Nein, das war es nicht, was ich meinte.
Ich meinte die Reihenfolge der Zellen,
beim Verwenden der Tabulator-Taste.
Gruß
Ingo
Das habe ich befürchtet.
DieterB
Hallo Ingo,
die Tab-tasten springen immer nach rechts.
Leider habe ich in der Hilfe auch nix dazu gefunden.
gruß
Dieter
AW: Tab-Reihenfolge in nicht gesperrten Zellen
Ingo
Lieber Jörg
Ich habe mir das Ding vom Sepp mal angesehen.
Da ich aber leider keine gute Ahnung vom VBA habe,
kapier ich das nicht so ganz :)
Kann man nicht einen VBA-Code schreiben,
wo einfach alle Zellen hintereinander angegeben sind,
in genau der Reihenfolge,
in der sie auch per TAB und ENTER angesprungen werden sollen ?
Wenn mir da noch jemand helfen könnte,
würde ich mich wirklich riesig freuen :)
Gruß
Ingo
ich kann es nicht o.T.
Jörg
AW: Tab-Reihenfolge in nicht gesperrten Zellen
K.Rola
Hallo,
gib mal ein reales Szenario, sprich, eine Zellreihenfolge vor,
sonst bekommst du mit deinen VBA- Kenntnissen Probleme beim
Anpassen des Codes.
Gruß K.Rola
Anzeige
AW: Tab-Reihenfolge in nicht gesperrten Zellen
Ingo
Lieber K.Rola
F9
B11
F11
F12
F13
F15
B18
C D E 52 53 54 (Ich habe diese 9 Zellen zsammengefügt)
F58
Gruß
Ingo
AW: Tab-Reihenfolge in nicht gesperrten Zellen
K.Rola
Hallo,
"C D E 52 53 54 (Ich habe diese 9 Zellen zsammengefügt)"
ist nicht eindeutig, bitte mal etwas genauer.
Gruß K.Rola
AW: Tab-Reihenfolge in nicht gesperrten Zellen
Ingo
Hallo
Diesen "Zellenblock":
C52 D52 E52
C53 D53 E53
C54 D54 E54
habe ich mit "Zusammenführen und Zentrieren"
sozusagen zu einer Zelle gemacht.
Gruß
Ingo
Sorry, aber es klappt noch nicht.
Ingo
Hallo nochmal
Leider klappt noch nicht.
Ich habe nun alles folgendermassen eingefügt ...
Diese Arbeitsmappe:
-------------------

Private Sub Workbook_Open()
Sheets("Tabelle1").Activate
End Sub

Tabelle1 (Tabelle1):
--------------------

Private Sub Worksheet_Activate()
[f9].Select
Application.OnKey "{TAB}", "Makro1"
End Sub


Private Sub Worksheet_Deactivate()
Application.OnKey "{TAB}"
End Sub

Modul1:
-------
Option Explicit
Option Base 1
Dim intIndex As Integer
Sub Makro1()
Dim arr
intIndex = intIndex + 1
arr = Array("f9", "b11", "f11", "f12", "f13", "f15", "b18", "C52", "D52", "E52", "C53", "D53", "E53", "C54", "D54", "E54", "f58")
Range(arr(intIndex)).Select
If intIndex = 17 Then intIndex = 0
End Sub
Aber es sill noch nicht funktionieren.
Da ich selber von VBA leider keine große Ahnung habe,
würde ich mich riesig freuen, wenn Du mir sagen kön ntest,
was ich da noch falsch mache :)
Gruß aus Münster
Ingo
Anzeige
AW: Sorry, aber es klappt noch nicht.
Jörg
Hallo Ingo,
in Tabelle 1
[f9].Select 'hier für f9 die erste Zelle eingeben die markiert sein soll, wenn das Blatt aktiviert wird.
In Modul1
arr = Array("b11", "b18", "f9", "f11", "f12", "f13", "f15", "C52", "f58") 'dies in die richtige Reihenfolge bringen, die angesprungen werden soll, für den Block verbundener Zellen nur "C52" (linke obere Ecke des Verbunds)
Range(arr(intIndex)).Select
'-------------------------------------------------
'Nur als Demo, kann weg!
'ActiveCell = ActiveCell.Address(0, 0)
'-------------------------------------------------
If intIndex = 17 Then intIndex = 0 ' hier von 17 auf 9 ändern, da C52:E54 verbunden sind.
End Sub
Gruss Jörg
Anzeige
AW: Sorry, aber es klappt noch nicht.
Ingo
Hallo nochmals
Es funktioniert leider immer noch nicht.
Zur Veranschaulichung habe ich Dir mal eine kleine
Excel-Tabelle hochgeladen:
https://www.herber.de/bbs/user/4533.xls
Da habe ich Deinen Code mal mit nur 4 Zellen ausprobiert.
Die Zellen sollen in dieser Reihenfolge angesprungen werden:
B20
B20
B21
A21
Genauso habe ich die Reihenfolge auch in den VBA-Code geschrieben.
Aber sie werden in der ganz normalen Standard-Reihenfolge angesprungen:
B20
B20
A21
B21
Leider weiss ich immer noch nicht genau, was ich da falsch mache :)
Gruß
Ingo
Anzeige
AW: Sorry, aber es klappt noch nicht.
Jörg
Hallo Ingo,
das Makro

Private Sub Workbook_Open()
Sheets("Tabelle1").Activate
End Sub

funktioniert erst, wenn die Mappe mindestens zwei Tabellenblätter enthält, bei nur einem Tabellenblatt wird es nicht ausgeführt, ich kann es nicht erklären, wahrscheinlich, weil eine einzelne Tabelle sowieso schon aktiv ist und darum nicht aktiviert werden kann.
Mit Menü Einfügen, Tabellenblatt, ein weiteres Tabellenblatt einfügen, dann funktioniert es.
Gruss Jörg
Zusatz
Jörg
Hallo Ingo,
einmal Tabellenblatt2 dann wieder Tabellenblatt1 klicken, hab ich vergessen zu schreiben.
Oder Mappe mit zwei Tab3ellenblättern speichern, schliessen und neu öffnen.
Gruss Jörg
Anzeige
AW: Zusatz
Ingo
Lieber Jörg
Soweit funtioniert es nun erstmal ... vielen Dank für Deine Mühe !
Aber dass man noch ein zweites Tabellenblatt anlegen muss,
und dass man vorher einmal auf Tabellanblatt 2 klicken muss,
finde ich leider recht lästig :)
Gibt es nicht ne Lösung für mein grundsätzliches Anliegen
(Tabulator-Reihenfolge ändern), ohne dass ich erst noch in
irgendwelche Dummy-Tabellenblätter klicken muss ?
Falls Du, lieber Jörg, oder Ihr anderen da noch einen anderen Lösungsansatz wisst,
würde ich mich riesig über Eure Hilfe freuen :)
Gruß aus Münster
Ingo
Anzeige
AW: Zusatz
Ulf
Was genau ist dein Problem, die Lösung als solche funktioniert doch, oder?
Ulf
AW: Zusatz
Ingo
Lieber Ulf
Ich hatte doch im vorherigen Posting geschrieben,
wo mein "Problem" ist :)
Es ist mir zu umständlich, erst in ein anderes leeres Tabellenblatt
und dann wieder in meine Rechnung klicken zu müssen.
Ich möchte die Rechnung.xls einfach aufrufen und sofort meine
Daten eintragen können, ohne erst noch "woanders" herumklicken zu müssen.
Hast Du denn vielleicht ne Idee, wie man das lösen kann ?
Auch über Deine Hilfe würde ich mich sehr freuen :)
Hruß
Ingo
Nur getrickst
Jörg
Hallo Ingo,
ich habe das Hin- und Herklicken automatisiert.
Die Änderung ist im Workbook_Open Modul, das jetzt so aussieht:

Private Sub Workbook_Open()
Worksheets("Tabelle2").Activate
Worksheets("Tabelle1").Activate
End Sub

Damit ist sichergestellt, dass das Worksheets("Tabelle1").Activate auch wirklich ausgelöst wird.
Um das Dummyblatt kommst Du aber nicht herum, zumindest weiss ich nicht wie.
Es lässt sich aber ausblenden im Eigenschaftenfenster im VBA Editor
Visible xlSheetVeryHidden
Hier die Datei, die Eingabereihenolge stimmt wahrscheinlich nicht für dich (im Array in Modul1 zu ändern):
https://www.herber.de/bbs/user/4549.xls
Gruss Jörg
Anzeige
DANKE ... genau so klappts ! ... (o.T.)
Ingo
und schon wieder eine Frage dazu :-)
Ingo
Lieber Jörg
Das von Dir beschriebene hat ja gut funktioniert.
Nun habe ich meine Rechnung in eine Arbeitsmappe mit mehrenen anderen Tabellen eingefgt.
Auch die Dummy-Tabelle habe ich da mit "rüber" genommen.
die Rechnung ist nun also Tabelle16
und die Dummy-Tabelle ist Tabelle17
Somit steht nun unter "Diese Arbeitsmappe" folgendes:

Private Sub Workbook_Open()
Worksheets("Tabelle17").Activate
Worksheets("Tabelle16").Activate
End Sub

Wenn ich aber nun die ganze Arbeitsmappe starte, kommt folgende Fehlermeldung:
"Laufzeitfehler '9': Index außerhalb des gültigen Bereichs"
Was hat denn das nun zu bedeuten ?
Was habe ich falsch gemacht ?
Kannst Du mir da doch nochmal helfen bitte :)
Gruß
Ingo
AW: und schon wieder eine Frage dazu :-)
Jörg
Hallo Ingo,
entweder
Worksheets("Tabellenblattname").Activate
oder
Worksheets(1).Activate
Wobei 1 hier eine Indexnummer ist, abhängig von der Reihenfolge, wie die Tabellen in der Mappe liegen. Von links nach rechts.
Schau mal im VBA-Editor
Da könnte z.B. im Projekt Explorer stehen Tabelle3("Rechnung") dass heisst:
Zeitlich dritte eingefügte Tabelle
Tabellenblattname Rechnung
Diese Tabelle hat trotzdem Index Nummer 1, wenn sie im Register ganz links liegt.
Eine Dummytabelle brauchst Du bei 16 Blättern nicht mehr, spring einfach ein vorhandenes Tabellenblatt an und wieder zurück.
Gruss Jörg
HURRAAAAAA !!
22.03.2004 17:36:10
Ingo
Lieber Jörg
Ick könnt Dir küssen :))
Nun gehts wunderbar.
Nun hab ich das auch einigermassen begriffen :)
Vielen lieben Dank nochmal für Deine Geduld mit mir !
Gruß aus Münster
Ingo Siemon
AW: Sorry, aber es klappt noch nicht.
K.Rola
Hallo,
das mit den verbundenen Zellen hab ich gar nicht gecheckt.
Lies mal den Hinweis von Jörg.
Nur die erste Zelle der verbundenen Zellen darf im Array stehen.
Gruß K.Rola
verständniss frage
DieterB
Warum willst Du die Reihenfolge ändern?
gruß
Dieter
AW: verständniss frage
Ingo
Lieber Dieter
Weil ich gewohnheitsmässig die Daten gerne
in einer ganz bestimmten Reihenfolge eingebe.
Und diese ist eben eine andere als es die entsprechenden
Felder meiner Rechnung sind.
Gruß
Ingo
Wenn man jetzt wüsste.......
DieterB
.... wie die Tabelle aufgebaut ist?
gruß
Dieter
AW: Hier mal eine Muster-Datei ...
Ingo
Lieber Bernd
Hier habe ich die entsprechenden Tabelle mal hochgeladen:
https://www.herber.de/bbs/user/4541.xls
Ich habe die Zellen gelb markiert,
die per Tabulator-Taste angesprungen werden sollen.
In die entsprechenden Zellen habe ich auch Zahlen
in roter Schrift geschrieben,
damit Du die Reihenfolge siehst,
in der die Zellen per Tabulator-Taste angesprungen werden sollen.
Meinst Du, das ist lösbar ?
Über Deine Hilfe würde ich mich natürlich riesig freuen :)
Gruß
Ingo

15 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige