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

Reihenfolge für zelleneingabe

Reihenfolge für zelleneingabe
05.12.2005 15:01:38
lisa
hi ihr profis, hoffe ihr könnt mir helfen:
hier mein problem:
möchte die benutzefreundlichkeit in meiner Tabelle erhöhen. haben bestimmte zellen die nicht in geordneter reihenfolge angeordnet sind und auch sehr unterschiedlich groß sind und möchte diese ordnen. mir reicht das in die 4 himmelsrichtungen nicht.
mit tab funktioniert es, mit enter allerdings nicht. und er schreibt mir auch immer den namen der zelle in die zelle, warum und wie kann ich das ändern? danke im vorraus!!!
hier mein VBA:
in "Diese Arbeitsmappe":

Private Sub Workbook_Open()
Worksheets("Tabelle2").Activate
Worksheets("Tabelle1").Activate
Sheets("Tabelle1").EnableSelection = xlUnlockedCells
End Sub

in Tabelle 1:
Option Explicit

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


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

in modul:
Option Explicit
Option Base 1
Dim intIndex As Integer
Sub Makro1()
Dim arr
intIndex = intIndex + 1
arr = Array("P8", "AF8", "AZ8", "B13", "Q13", "Y13", "AF13", "AM13", "AT13", "BA13", "BH13", "B18", "I18", "T18", "B20", "B27", "AJ37", "AU37", "BH37", "AJ39", "AU39", "BH39", "AJ41", "AU41", "BH41", "AJ43", "AU43", "BH43", "AJ46", "AU46", "BH46", "AJ50", "AU50", "BH50", "AJ52", "AU52", "BH52", "AJ54", "AU54", "BH54", "AJ56", "AU56", "BH56", "AJ58", "AU58", "BH58", "AJ61", "AU61", "BH61")
Range(arr(intIndex)).Select
ActiveCell = ActiveCell.Address([P8])
If intIndex = 49 Then intIndex = 0
End Sub
ich hoffe ihr könnt was damit anfangen...
grüße lisa

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Reihenfolge für zelleneingabe
06.12.2005 00:34:03
Luc:-?
Hallo Lisa,
versuch's mal mit "{ENTER}" in Application.OnKey "{RETURN}", "Makro1" und statt...

Range(arr(intIndex)).Select
ActiveCell = ActiveCell.Address([P8])
verwende besser...

ActiveCell.Value = Range(arr(intIndex)).Value

Außerdem halte ich es für besser, intIndex als Static (statt Dim) im Makro selbst zu deklarieren, wenn du diese Variable in diesem Modul sonst nicht weiter benötigst. Static sichert, dass der Wert der Variablen zwischen 2 Makro-Aufrufen erhalten bleibt, die Zellen in deinem Array also weiter gezählt wdn.
Nebenbei halte ich das ganze Verfahren für ziemlich umständlich und zeitraubend, wenn du mit {TAB} bzw {ENTER} in die nächste Zelle direkt fortsetzt. Man kann auch alles auf einmal in einen vorgewählten Bereich transportieren.
Gruß Luc :-?
PS: Falls du dich nicht wieder meldest, weiß ich, dass du die Lisa bist, die sich schon neulich nicht mehr gemeldet hat. Anderenfalls bist du wohl die andere.
Neugierig: Verstehst du einigermaßen, was die Makros machen?

Anzeige
AW: Reihenfolge für zelleneingabe
06.12.2005 07:43:36
lisa.s
so, hab jetzt mal meinen namen geändert. damit es nicht zu verwechslungen kommt...
vielen dank!!! es hat funktioniert!!!! endlich! dachte schon ich bin total bescheuert. hab das nämlich hier irgendwo gefunden und bei dem fragesteller hat es geklappt...
nur static wollte er nicht annehmen... ich hatte es auch mit enter versucht und da hat es trotzdem nicht funktioniert... jetzt schon, kannst du dir das erklären?
hättest du für die zukunft ein verfahren, das einfacher ist? war schon ein wenig umständlich jede einzelne zelle einzutragen...
also ich versteh es nicht 100%ig, wenn du das meinst (makro)... aber ich kann es nachvollziehen.
vielen dank nochmal!! hast mir echt weitergeholfen!
Anzeige
AW: Reihenfolge für zelleneingabe
06.12.2005 07:58:12
lisa.s
da man hier seine einträge nicht editieren kann...
stell dir vor meinem anderen einfach
hallo luc:-? vor
(hab doch vor lauter freude die anrede evrgessen... sorry!)
AW: Nicht so schlimm! Static fkt nicht...
06.12.2005 13:05:12
Luc:-?
...außerhalb einer Prozedur, Lisa.
Muss nach der Prozedurnamenszeile in der Prozedur selbst stehen (vor oder nach Dim-Zeile).
Einfacher läuft es, wenn du den ganzen "Umbettungsbereich" selektierst (nur zusammenhängend, mindestens 2 Zellen wegen der Richtung bei linearer Fortsetzung) und das Programm dann in einer For Each-Schleife jeder Zelle in der markierten Richtung einen Wert anhand des Adressen-Arrays zuordnet (dauert weniger als 5 Sekunden!).
Gruß Luc :-?
Anzeige
AW: Reihenfolge für zelleneingabe
06.12.2005 08:25:32
lisa.s
hi luc,
noch eine frage:
wenn ich in eine zelle etwas eingebe und dann enter drücke, kann ich nicht mehr mit enter meinen "weg" gehen, es geht dann nur mit tab... woran könnte das liegen?
würde mich über jede antwort freuen, jetzt schon mal vielen dank!!!
gruß lisa
AW: Reihenfolge für zelleneingabe
06.12.2005 00:48:34
Reinhard
Hi Lisa,
irgendwie kann ich keinen Wert zuweisen,
ActiveWorkbook.CustomDocumentProperties("Posi").Value ist entweder wahr oder falsch.
Vielleicht muss man den Typ in String ändern und dann über chr und asc die Position verändern. oder als Typ String und gleich arr(x) zuweisen.
(Posi war mal Position wurd aber bei jedem Versuch kleiner *g)
Viel Glück.
Option Explicit
Option Base 1
Sub Makro1()
Dim arr
MsgBox ActiveWorkbook.CustomDocumentProperties("Position").Value
arr = Array("P8", "AF8", "AZ8", "B13", "Q13", "Y13", "AF13", "AM13", "AT13", "BA13", "BH13", "B18", "I18", "T18", "B20", "B27", "AJ37", "AU37", "BH37", "AJ39", "AU39", "BH39", "AJ41", "AU41", "BH41", "AJ43", "AU43", "BH43", "AJ46", "AU46", "BH46", "AJ50", "AU50", "BH50", "AJ52", "AU52", "BH52", "AJ54", "AU54", "BH54", "AJ56", "AU56", "BH56", "AJ58", "AU58", "BH58", "AJ61", "AU61", "BH61")
If ActiveWorkbook.CustomDocumentProperties("Position").Value = 49 Then ActiveWorkbook.CustomDocumentProperties("Position").Value = 0
ActiveWorkbook.CustomDocumentProperties("Position").Value = ActiveWorkbook.CustomDocumentProperties("Position").Value + 1
Range(arr(ActiveWorkbook.CustomDocumentProperties("Posi").Value)).Select
ActiveCell = ActiveCell.Address([P8])
End Sub
Sub Einmalig()
ActiveWorkbook.CustomDocumentProperties.Add Name:="Posi", LinkToContent:=False, Type:=msoPropertyTypeNumber, Value:=0
End Sub
Sub tt()
Dim n As Integer
For n = 1 To 10
MsgBox ActiveWorkbook.CustomDocumentProperties(n).Value
MsgBox ActiveWorkbook.CustomDocumentProperties(n).Name
Next n
End Sub

Gruß
Reinhard
ps:Das Forum lebt auch von Rückmeldungen
Anzeige
AW: Reihenfolge für zelleneingabe
06.12.2005 07:55:41
lisa.s
erstmal danke für deine hilfe reinhard.
allerdings erscheint bei dir
"laufzeitfehler '-2147467259 (80004005)':
die methode 'Item' für das objekt 'document properties ist fehlgeschlagen.
wenn ich auf debuggen gehe markiert er mir:
MsgBox ActiveWorkbook.CustomDocumentProperties(n).Value
es funktioniert also nicht... aber trotzdem vielen dank für die hilfe und dafür, dass du dir die mühe gemacht hast!!!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige