Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

per VBA Tabtaste aktivieren

Forumthread: per VBA Tabtaste aktivieren

per VBA Tabtaste aktivieren
16.12.2020 11:24:01
David
Guten Tag,
ich habe in der VBA ein Code geschrieben in dem zum Schluss das Tabellenblatt gesperrt wird.
Allerdings sobald die Sperre aktiviert wird, kann man mit der TAB-Taste nicht mehr arbeiten.
Kann ich per VBA erzwingen das per TAB Tastendruck wie gewohnt eine Zeile weiter springt?

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Sheets("Protokoll").Unprotect Password:="xxx"
Dim ErsteFreieZeile As Long
If Target.Count > 1 Then Exit Sub
If Sh.Name = "Protokoll" Then Exit Sub
If Intersect(Target, Sh.Range("A1:AS47")) Is Nothing Then Exit Sub
With Sheets("Protokoll")
ErsteFreieZeile = .Cells(Rows.Count, 1).End(xlUp).Row + 1
.Cells(ErsteFreieZeile, 1) = Sh.Name
.Cells(ErsteFreieZeile, 2) = Target.Address(0, 0)
.Cells(ErsteFreieZeile, 3) = Target.Value
.Cells(ErsteFreieZeile, 4) = Date
.Cells(ErsteFreieZeile, 5) = Time
.Cells(ErsteFreieZeile, 6) = Environ("username")
Sheets("Protokoll").Protect Password:="xxx"
End With
End Sub

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: per VBA Tabtaste aktivieren
16.12.2020 11:38:19
Edi
Moin David
Zunächst mal:
Deine Zeile mit der Du das Blatt schützt, sollte entwerder unter das End With, oder aber mit .Protect beginnen.
Wenn Du danach noch die Zeile
Sheets("Protokoll").EnableSelection = xlNoRestrictions
(oder innerhalb des with nur .EnableSelection = xlNoRestrictions)
einfügst, sollte ein springen mit Tab wieder möglich sein.
Gruß
Edi
Anzeige
AW: per VBA Tabtaste aktivieren
16.12.2020 11:46:21
Nepumuk
Hallo David,
so:
Option Explicit

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    If Sh.Name = "Protokoll" Then
        Call Application.OnKey("{TAB}", "Tabulator")
    Else
        Application.OnKey "{TAB}"
    End If
End Sub

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    
    Dim ErsteFreieZeile As Long
    
    If Target.Count = 1 Then
        
        If Not Intersect(Target, Sh.Range("A1:AS47")) Is Nothing Then
            
            Application.EnableEvents = False
            
            With Worksheets("Protokoll")
                
                ErsteFreieZeile = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
                
                .Unprotect Password:="xxx"
                .Cells(ErsteFreieZeile, 1) = Sh.Name
                .Cells(ErsteFreieZeile, 2) = Target.Address(0, 0)
                .Cells(ErsteFreieZeile, 3) = Target.Value
                .Cells(ErsteFreieZeile, 4) = Date
                .Cells(ErsteFreieZeile, 5) = Time
                .Cells(ErsteFreieZeile, 6) = Environ("username")
                .Protect Password:="xxx"
                
            End With
            
            Application.EnableEvents = True
            
        End If
    End If
End Sub

Zusätzlich in einem Standardmodul (Menüleiste - Einfügen - Modul):
Option Explicit

Public Sub Tabulator()
    With ActiveCell
        Cells(.Row, .Column + 1).Select
    End With
End Sub

Gruß
Nepumuk
Anzeige
AW: per VBA Tabtaste aktivieren
16.12.2020 12:38:53
David
Wow, das ging schnell und vielen Dank, noch ein kleiner Nachtrag.
Mit
If Sh.Name = "Protokoll"
Wird bloß die Funktion in der Tabelle "Protokoll" aktiv, was muss ich schreiben damit
das für die ganze Mappe gilt?
Vielen Dank.
AW: per VBA Tabtaste aktivieren
16.12.2020 12:42:31
Nepumuk
Hallo David,
dann an Stelle von:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    If Sh.Name = "Protokoll" Then
        Call Application.OnKey("{TAB}", "Tabulator")
    Else
        Application.OnKey "{TAB}"
    End If
End Sub

das:
Private Sub Workbook_Activate()
    Call Application.OnKey("{TAB}", "Tabulator")
End Sub

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

Gruß
Nepumuk
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige