AW: Blattschutz
06.06.2005 18:30:41
Jörg
Hallo Kurt,
bin selbst noch nicht so sattelfest in VBA, aber hier mal mit meinen eigenen Worten
Du hast verschiedene Programmteile unter "Diese Arbeitsmappe", "Tabelle1" und "Modul1"
Private Sub Workbook_Open()
Application.ScreenUpdating = False ' Bildschirm nicht aktualisieren
Sheets("Tabelle2").Activate ' Tabelle 2 aktivieren
Sheets("Tabelle1").Activate ' Tabelle 1 aktivieren
Application.ScreenUpdating = True ' Bildschirm aktualisieren hier mußt Du es auf TRUE ändern, mein Fehler.
End Sub
' Beim Öffnen der Arbeitsmappe soll Tabelle1 aktiviert werden,
'das Activate Ereignis wird aber nicht ausgelöst, da Tabelle1 schon aktiviert ist, darum springe ich einmal hin und her.
' um das dabei auftretene Bildschirmflackern zu unterdrücken
' wird die Bildschirmaktualisierung kurzzeitig abgeschaltet.
Private Sub Worksheet_Activate()
' dieses Makro wird ausgeführt, sobald Tabelle1 aktiviert wird
[G7].Select ' wähle Zelle G7 an
Application.OnKey "{TAB}", "Makro1" ' bei Taste TAB Makro1 ausführen
End Sub
Private Sub Worksheet_Deactivate()
' dieses Makro wird ausgeführt, sobald Tabelle1 deaktiviert (verlassen) wird
Application.OnKey "{TAB}"
'TAB Taste zurücksetzen auf Standard (Verbindung zu Makro1 trennen)
End Sub
Option Base 1 'Standard-Untergrenze für Datenfeldindizes auf 1 festlegen.
Dim intIndex As Integer ' Variable dimensionieren
Sub Makro1()
Dim arr 'Datenfeld dimensionieren
intIndex = intIndex + 1 'Indexvariable um 1 erhöhen
arr = Array("I7", "G7") 'Datenfeld mit Werten (Zelladressen) füllen
Range(arr(intIndex)).Select ' Datensatz (Zelladresse) anwählen
If intIndex = 2 Then intIndex = 0 'letzter Datensatz erreicht?, dann von vorne
'(Rücksetzen des Indizes)
End Sub
Gruß Jörg