Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA Blatt anwählen und direkt los schreiben bei geöffneter UserForm
#1
Huhu
ich habe mich nun doch für ein Inhaltsverzeichnis mit einer Userform per button klick entschieden.
Die Userform schließt sich nicht von allein, soll dieses auch nicht.

Problem:
wenn ich nun über einen button ein Tabellenblatt anwähle, ist die UserForm weiterhin das aktive Fenster und ich muss erst in das Tabellenblatt klicken um da etwas rein zu schreiben.

Ziel:
wenn ich über einen Button ein Tabellenblatt anwähle möchte ich direkt losschreiben können, ohne vorher noch ins Tabellenblatt zu klicken


Verwendeter Code:

Code:
Private Sub 1_Click()
Sheets("1").Select
If IsEmpty([A3]) Then
       [A3].Select
   Else
       [A3].End(xlDown).Offset(1).Activate
   End If
End Sub


Ich hoffe ihr könnt mir helfen :)

schon mal Danke im Vorraus.
Antworten Top
#2
Das habe ich in einem anderen forum gefunden (beitrag von 2015) weiß aber nicht wie ich das umsetze.


Zitat:mit einem API-Aufruf kann der Focus wieder auf das Tabellenblatt gesetzt werden.
Code für Tabelle1:
-------------------------
Private Sub Worksheet_Activate()
UserForm1.Show
SetForegroundWindow (Application.hwnd)
End Sub
Code für Modul1:
------------------------
Public Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long
Antworten Top
#3
Hallöchen,

wie es da steht. der eine code muss in das codemodul der betroffenen Tabellenblätter, und der andere in ein normales Modul.

Du könntest aber bestimmt auch statt hinter jedes Tabellenblatt auchin DieseArbeitsmppe das Makro
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
verwenden
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#4
Vielen Dank, funktioniert.
Ich wusste bis zum 13.01 nichtmal was ein Modul ist xD.
Habe am 13.01 einen Grundlagen Kurs besucht und jetzt verstehe ich mehr, was ich da nutze ;D
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste