Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen

Wieso unter Windows7 Fehler ? | Herbers Excel-Forum


Betrifft: Wieso unter Windows7 Fehler ? von: walli
Geschrieben am: 26.12.2009 11:21:03

Guten Morgen Experten,
noch für den Rest des 2. Weihnachtstages, ein frohes Fest !

Ich habe ein Makro (natürlich unter Hilfe Forum) für das einsetzen
des Passwortes, wenn man z.b. mit "alt+f11" in die Makros möchte.
In der Firma und 2. PC zu Hause kein Problem, läuft einwandfrei, beide
mit XP .
Jetzt habe ich auf meinem Windows7 Rechner eine Fehlermeldung:

"Laufzeitfehler 70"
Zugriff verweigert

Bleibt bei dieser Zeile stehen, wenn ich vorher das Passwort händig
eingegeben habe.
SendKeys "%{F11}^r{Tab}", True

Hier das kompl.Makro:

Sub Passwort_Eingeben()
Dim akw As String
      akw = ActiveWorkbook.name
Dim Password As String
      Password = "kk"
Dim vbext_pp_none
Dim wb As Workbook, ok As Boolean, s As String
  Set wb = Application.Workbooks(akw)
  SendKeys "%{F11}^r{Tab}", True        
  Do While Application.VBE.ActiveVBProject.Filename <> wb.FullName
         ''Cursor im Projekt-Explorer-Fenster auf das nächste Projekt setzen _
            bis er auf dem aktuelle Projekt der zu entschützenden Arbeitsmappe steht
     SendKeys "{Tab}", True
   Loop
  If Application.VBE.ActiveVBProject.Filename = wb.FullName Then
         s = "%xi" & "Passwort" & "{ENTER}{ENTER} %{F11}"         ' so i.o.
        SendKeys s, True
  End If
      '    MsgBox s, 64          '64 für i als Information
 End Sub

Hoffentlich hat jemand einen Tip,
mfg walli

  

Betrifft: schau Dir mal diesen Beitrag an... von: Tino
Geschrieben am: 26.12.2009 11:47:14

Hallo,

https://www.herber.de/forum/archiv/1124to1128/t1125856.htm

PS:
wozu soll dies gut sein, lass doch einfach das Passwort ganz weg.
Ich finde dies alles Quatsch überhaupt ein VBA Passwort mit VBA zu setzten,
ich kann den Sinn darin einfach nicht erkennen.

Gruß Tino


  

Betrifft: Hallo Tino Passwort muß leider von: walli
Geschrieben am: 26.12.2009 12:23:30

Hallo Tino,
leider muß ich das Makro (die es sind reichlich) setzen,
damit die Personen keinen Unsinn damit machen, da die Datei Zentral abgelegt ist.
Bleibt leider auch hiermit stehen:
SendKeys "%{F11}%xi{TAB 9}" & "Password" & "{tab}{enter 2}%q"

Warum bei XP nicht ?
Ich habe Excel 2002 mit SP3,

mfg walli


  

Betrifft: AW: @ Tino von: hary
Geschrieben am: 26.12.2009 12:27:46

Hallo Tino

Frohe Restweihnachtstage.

sehe ich genauso(bezogen auf meinen Beitrag). Wenn das Passwort im Code ist bring es nichts.

Wie heisst es in einem Lied:

"Umso leichter, umso leichter wird's fuer mich"

Gruss hary


  

Betrifft: Und Wer einen Tip? von: walli
Geschrieben am: 26.12.2009 12:41:40

Hallo Tino,
natürlich auch Dir frohe Festtage (HEUTE),
und Wer hat einen Tip ?

mfg walli


  

Betrifft: AW: Und Wer einen Tip? von: Tino
Geschrieben am: 26.12.2009 12:54:29

Hallo,
erst mal natürlich auch Frohe Weihnachten.
ein Tipp lass es einfach und setze ein einfaches Kennwort das Du dir selbst gut merken kannst fertig.
Jeder der Google benutzen kann und Interesse daran hat, hat es sowieso gleich geknackt also wozu der Aufwand der dazu auch immer Probleme macht gerade dieses SendKeys.

Ist meine Persönliche Meinung dazu.

Gruß Tino


  

Betrifft: AW: Wieso unter Windows7 Fehler ? von: Josef Ehrensberger
Geschrieben am: 26.12.2009 12:53:05

Hallo Walli,

wie schon meine Vorredner, halte auch ich nichts vom setze/aufheben des VBA Kennwortes per Code.
Ich gebe meine VBA-Projekten immer das Passwort "x", aber nur, damit im VBE die Module nicht
ständig offen "rumliegen".

Zur Fehlermeldung: Schau unter Makros > Sicherheit, ob der Zugriff auf das VBA-Projekt erlaubt ist.


Gruß Sepp



  

Betrifft: Hallo Tino u. Sepp von: walli
Geschrieben am: 26.12.2009 14:42:28

Hallo Tino u. Sepp,
ich denke das Ihr Zwei recht habt aber es geht einfach darum, es klappte
bisher und klappt jetzt noch bei XP.
Jetzt auf einmal nicht !!! unter Windows 7 und Excel (wie bisher) 2002,

mfg walter

P.S. Wo gibt es den ein Programm das ich den VB Makro-Code
rausfinden kann, vielleicht kann ich das damit dann durchführen ?


  

Betrifft: Habe was festgestellt !!!!!!!!!!!!!!!! von: walli
Geschrieben am: 27.12.2009 11:23:02

Guten Morgen allerseits,
habe festgestellt, wenn ich " Application " davor setze,
kommt keine Fehlermeldung aber auch keine Reaktion,
bitte nochmals schauen.
Hinweis bei meinem 2.PC mit XP EINWANDFREI !!!
dank im Voraus,
mfg walli

Sub OrginalPasswort_Eingeben()
 Dim akw As String
             akw = ActiveWorkbook.Name
       Dim Password As String
             Password = "kk"
       Dim vbext_pp_none
       Dim wb As Workbook, ok As Boolean, s As String
         Set wb = Application.Workbooks(akw)
         Application.SendKeys "%{F11}^r{Tab}", True
         Do While Application.VBE.ActiveVBProject.Filename <> wb.FullName
                ''Cursor im Projekt-Explorer-Fenster auf das nächste Projekt setzen _
                   bis er auf dem aktuelle Projekt der zu entschützenden Arbeitsmappe steht
            Application.SendKeys "{Tab}", True
          Loop
         If Application.VBE.ActiveVBProject.Filename = wb.FullName Then
                s = "%xi" & "Passwort" & "{ENTER}{ENTER} %{F11}"         ' so i.o.
               Application.SendKeys s, True
         End If
             '    MsgBox s, 64          '64 für i als Information
End Sub



  

Betrifft: SendKeys-Befehl Windows 7 geht nicht von: walli
Geschrieben am: 27.12.2009 12:50:11

Hallo zusammen,
habe gerade diesen Artikel unter Google gefunden.
Unter WINDOWS 7 wird der SendKeys-Befehl nun nicht mehr ausgeführt. Daher suche ich eine alternative VBA-Anweisung, welche das Menü "Datei" öffnet. In der VBA-Literatur habe ich hierzu leider nichts gefunden.

Weiß jemand einen Ersatz ?

mfg walli


  

Betrifft: AW: SendKeys-Befehl Windows 7 geht nicht von: Tino
Geschrieben am: 27.12.2009 14:15:08

Hallo,
Google mal nach der Api keybd_event, damit kannst Du auch Tastenanschläge simulieren.
Ist nicht so einfach da was Brauchbares für Dein Vorhaben zu realisieren
weil dies nur für eine Taste gilt.
Ob dies unter Windows 7 funktioniert kann ich auch nicht sagen.

Hier mal ein Beispiel um "Tino Walli" zu schreiben.

Option Explicit
Private Declare Sub keybd_event _
  Lib "user32" (ByVal byteVirtualKeycode As Byte, _
  ByVal byteScan As Byte, ByVal lFlags As Long, ByVal lExtraInfo As Long)
  
Enum vk_Keys
     VK_A = &H41   'Taste A 
     VK_B = &H42   'Taste B 
     VK_C = &H43   'Taste C 
     VK_D = &H44   'Taste D 
     VK_E = &H45   'Taste E 
     VK_F = &H46   'Taste F 
     VK_G = &H47   'Taste G 
     VK_H = &H48   'Taste H 
     VK_I = &H49   'Taste I 
     VK_J = &H4A   'Taste J 
     VK_K = &H4B   'Taste K 
     VK_L = &H4C   'Taste L 
     VK_M = &H4D   'Taste M 
     VK_N = &H4E   'Taste N 
     VK_O = &H4F   'Taste O 
     VK_P = &H50   'Taste P 
     VK_Q = &H51   'Taste Q 
     VK_R = &H52   'Taste R 
     VK_S = &H53   'Taste S 
     VK_T = &H54   'Taste T 
     VK_U = &H55   'Taste U 
     VK_V = &H56   'Taste V 
     VK_W = &H57   'Taste W 
     VK_X = &H58   'Taste X 
     VK_Y = &H59   'Taste Y 
     VK_SPACE = &H20
     VK_RSHIFT = &HA1
End Enum

Private Const KEYEVENTF_KEYUP As Long = &H2  ' Taste lösen 
Function Taste(vk_Key As vk_Keys, Optional ZusatzKey As vk_Keys = 0)
If ZusatzKey > 0 Then
    keybd_event ZusatzKey, 0, 0, 0 'Taste drücken 
End If
    
    keybd_event vk_Key, 0, 0, 0 'Taste drücken 
    keybd_event vk_Key, 0, KEYEVENTF_KEYUP, 0 'Taste los lassen 

If ZusatzKey > 0 Then
    keybd_event ZusatzKey, 0, KEYEVENTF_KEYUP, 0 'Taste los lassen 
End If
End Function

Sub Beispiel()
    Taste VK_T, VK_RSHIFT
    Taste VK_I
    Taste VK_N
    Taste VK_O
    Taste VK_SPACE
    Taste VK_W, VK_RSHIFT
    Taste VK_A
    Taste VK_L
    Taste VK_L
    Taste VK_I
End Sub

Hier noch die Key Konstanten.
Const VK_LBUTTON = &H1  'Linker Mausbutton
Const VK_RBUTTON = &H2  'Rechter Mausbutton
Const VK_MBUTTON = &H4  'Mittlerer Masubutton
Const VK_BACK = &H8 'Backspace Taste
Const VK_TAB = &H9  'Tab Taste
Const VK_CLEAR = &HC    'Numpad 5 ohne Numlock
Const VK_RETURN = &HD   'Enter Taste
Const VK_SHIFT = &H10   'Shift Taste
Const VK_CONTROL = &H11 'STRG Taste
Const VK_MENU = &H12    'Alt Taste
Const VK_PAUSE = &H13   'Pause/Untbr
Const VK_CAPITAL = &H14 'Caps Lock/Feststelltaste
Const VK_ESCAPE = &H1B  'Escape
Const VK_SPACE = &H20   'Space/Leertaste
Const VK_PRIOR = &H21   'PageUp/Bild hoch
Const VK_NEXT = &H22    'PageDown/Bild runter
Const VK_END = &H23 'Ende
Const VK_HOME = &H24    'Home/Pos1
Const VK_LEFT = &H25    'Linke Pfeiltaste
Const VK_UP = &H26  'Obere Pfeilaste
Const VK_RIGHT = &H27   'Rechte Pfeiltaste
Const VK_DOWN = &H28    'Untee Pfeiltaste
Const VK_PRINT = &H2A   'Drucken (Nokia Tastaturen)
Const VK_SNAPSHOT = &H2C    'Drucken/S-Abf
Const VK_INSERT = &H2D  'Einfügen
Const VK_DELETE = &H2E  'Entfernen
Const VK_HELP = &H2F    'Hilfe
Const VK_0 = &H30   'Taste 0
Const VK_1 = &H31   'Taste 1
Const VK_2 = &H32   'Taste 2
Const VK_3 = &H33   'Taste 3
Const VK_4 = &H34   'Taste 4
Const VK_5 = &H35   'Taste 5
Const VK_6 = &H36   'Taste 6
Const VK_7 = &H37   'Taste 7
Const VK_8 = &H38   'Taste 8
Const VK_9 = &H39   'Taste 9
Const VK_A = &H41   'Taste A
Const VK_B = &H42   'Taste B
Const VK_C = &H43   'Taste C
Const VK_D = &H44   'Taste D
Const VK_E = &H45   'Taste E
Const VK_F = &H46   'Taste F
Const VK_G = &H47   'Taste G
Const VK_H = &H48   'Taste H
Const VK_I = &H49   'Taste I
Const VK_J = &H4A   'Taste J
Const VK_K = &H4B   'Taste K
Const VK_L = &H4C   'Taste L
Const VK_M = &H4D   'Taste M
Const VK_N = &H4E   'Taste N
Const VK_O = &H4F   'Taste O
Const VK_P = &H50   'Taste P
Const VK_Q = &H51   'Taste Q
Const VK_R = &H52   'Taste R
Const VK_S = &H53   'Taste S
Const VK_T = &H54   'Taste T
Const VK_U = &H55   'Taste U
Const VK_V = &H56   'Taste V
Const VK_W = &H57   'Taste W
Const VK_X = &H58   'Taste X
Const VK_Y = &H59   'Taste Y
Const VK_Z = &H5A   'Taste Z
Const VK_STARTKEY = &H5B    'Startmenütaste
Const VK_CONTEXTKEY = &H5D  'Kentextmenü
Const VK_NUMPAD0 = &H60 'Numpad Taste 0
Const VK_NUMPAD1 = &H61 'Numpad Taste 1
Const VK_NUMPAD2 = &H62 'Numpad Taste 2
Const VK_NUMPAD3 = &H63 'Numpad Taste 3
Const VK_NUMPAD4 = &H64 'Numpad Taste 4
Const VK_NUMPAD5 = &H65 'Numpad Taste 5
Const VK_NUMPAD6 = &H66 'Numpad Taste 6
Const VK_NUMPAD7 = &H67 'Numpad Taste 7
Const VK_NUMPAD8 = &H68 'Numpad Taste 8
Const VK_NUMPAD9 = &H69 'Numpad Taste 9
Const VK_MULTIPLY = &H6A    'Numpad Multiplikations Taste (*)
Const VK_ADD = &H6B 'Numpad Additions Taste (+)
Const VK_SUBTRACT = &H6D    'Numpad Subtrations Taste (-)
Const VK_DECIMAL = &H6E 'Numpad Komma Taste (,)
Const VK_DIVIDE = &H6F  'Numpad Devidierungs Taste (/)
Const VK_F1 = &H70  'F1 Taste
Const VK_F2 = &H71  'F2 Taste
Const VK_F3 = &H72  'F3 Taste
Const VK_F4 = &H73  'F4 Taste
Const VK_F5 = &H74  'F5 Taste
Const VK_F6 = &H75  'F6 Taste
Const VK_F7 = &H76  'F7 Taste
Const VK_F8 = &H77  'F8 Taste
Const VK_F9 = &H78  'F9 Taste
Const VK_F10 = &H79 'F10 Taste
Const VK_F11 = &H7A 'F11 Taste
Const VK_F12 = &H7B 'F12 Taste
Const VK_F13 = &H7C 'F13 Taste
Const VK_F14 = &H7D 'F14 Taste
Const VK_F15 = &H7E 'F15 Taste
Const VK_F16 = &H7F 'F16 Taste
Const VK_F17 = &H80 'F17 Taste
Const VK_F18 = &H81 'F18 Taste
Const VK_F19 = &H82 'F19 Taste
Const VK_F20 = &H83 'F20 Taste
Const VK_F21 = &H84 'F21 Taste
Const VK_F22 = &H85 'F22 Taste
Const VK_F23 = &H86 'F23 Taste
Const VK_F24 = &H87 'F24 Taste
Const VK_NUMLOCK = &H90 'Numlock Taste
Const VK_OEM_SCROLL = &H91  'Scroll Lock
Const VK_LSHIFT = &HA0  'Linke Shift-Taste
Const VK_RSHIFT = &HA1  'Rechte Shift-Taste
Const VK_LCONTROL = &HA2    'Linke STRG-Taste
Const VK_RCONTROL = &HA3    'Rechte STRG-Taste
Const VK_LMENU = &HA4   'Linke ALT-Taste
Const VK_RMENU = &HA5   'Rechte ALT-Taste
Const VK_OEM_1 = &HBA   '";"-Taste
Const VK_OEM_PLUS = &HBB    '"
Const VK_OEM_COMMA = &HBC   '","-Taste
Const VK_OEM_MINUS = &HBD   '"-"-Taste
Const VK_OEM_PERIOD = &HBE  '"."-taste
Const VK_OEM_2 = &HBF   '"/"-Taste
Const VK_OEM_3 = &HC0   '"`"-Taste
Const VK_OEM_4 = &HDB   '"["-Taste
Const VK_OEM_5 = &HDC   '"\"-Taste
Const VK_OEM_6 = &HDD   '"]"-Taste
Const VK_OEM_7 = &HDE   '"
Const VK_ICO_F17 = &HE0 'F17 einer Olivette Tastatur (Intern)
Const VK_ICO_F18 = &HE1 'F18 einer Olivette Tastatur (Intern)
Const VK_OEM102 = &HE2  '"<"-Taste oder "   "-Taste einer IBM-Kompatiblen 102 Tastatur (Nicht  _
US)
Const VK_ICO_HELP = &HE3    'Hilfetaste einer Olivetti Tastatur (Intern)
Const VK_ICO_00 = &HE4  '00-Taste einer Olivetti Tastatur (Intern)
Const VK_ICO_CLEAR = &HE6   'Löschen Taste einer Olivetti Tastatur (Intern)
Const VK_OEM_RESET = &HE9   'Reset Taste (Nokia)
Const VK_OEM_JUMP = &HEA    'Springen Taste (Nokia)
Const VK_OEM_PA1 = &HEB 'PA1 Taste (Nokia)
Const VK_OEM_PA2 = &HEC 'PA2 Taste (Nokia)
Const VK_OEM_PA3 = &HED 'PA3 Taste (Nokia)
Const VK_OEM_WSCTRL = &HEE  'WSCTRL Taste (Nokia)
Const VK_OEM_CUSEL = &HEF   'WSCTRL Taste (Nokia)
Const VK_OEM_ATTN = &HF0    'ATTN Taste (Nokia)
Const VK_OEM_FINNISH = &HF1 'Fertig Taste (Nokia)
Const VK_OEM_COPY = &HF2    'Kopieren Taste (Nokia)
Const VK_OEM_AUTO = &HF3    'Auto Taste (Nokia)
Const VK_OEM_ENLW = &HF4    'ENLW Taste (Nokia)
Const VK_OEM_BACKTAB = &HF5 'BackTab Taste (Nokia)
Const VK_ATTN = &HF6    'ATTN-Taste
Const VK_CRSEL = &HF7   'CRSEL-Taste
Const VK_EXSEL = &HF8   'EXSEL-Taste
Const VK_EREOF = &HF9   'EREOF-Taste
Const VK_PLAY = &HFA    'PLAY-Taste
Const VK_ZOOM = &HFB    'ZOOM-Taste
Const VK_NONAME = &HFC  'NONAME-Taste
Const VK_PA1 = &HFD 'PA1-Taste
Const VK_OEM_CLEAR = &HFE   'OEM_CLEAR-Taste
Gruß Tino


  

Betrifft: Beispiel aber von: walli
Geschrieben am: 27.12.2009 19:34:50

Guten Abend Tino,
danke erst mal.
Wollte dies erstellen:

Sub Beispiel2()
Taste VK_MENU
Taste VK_F11
End Sub
Wollte jetzt damit also "Alt+F11 ausführen,
vielleicht noch einen Tip, dann ist ruhe,
danke.

mfg walli


  

Betrifft: AW: Beispiel aber von: Tino
Geschrieben am: 27.12.2009 20:02:03

Hallo,
erweiter die Enum-Anweisung um die Tasten die Du benötigst und
rufe es wie unten im Beispiel gezeigt auf.

Funktioniert dies unter Windows 7?

Private Declare Sub keybd_event _
  Lib "user32" (ByVal byteVirtualKeycode As Byte, _
  ByVal byteScan As Byte, ByVal lFlags As Long, ByVal lExtraInfo As Long)
  
Enum vk_Keys
     VK_A = &H41   'Taste A 
     VK_B = &H42   'Taste B 
     VK_C = &H43   'Taste C 
     VK_D = &H44   'Taste D 
     VK_E = &H45   'Taste E 
     VK_F = &H46   'Taste F 
     VK_G = &H47   'Taste G 
     VK_H = &H48   'Taste H 
     VK_I = &H49   'Taste I 
     VK_J = &H4A   'Taste J 
     VK_K = &H4B   'Taste K 
     VK_L = &H4C   'Taste L 
     VK_M = &H4D   'Taste M 
     VK_N = &H4E   'Taste N 
     VK_O = &H4F   'Taste O 
     VK_P = &H50   'Taste P 
     VK_Q = &H51   'Taste Q 
     VK_R = &H52   'Taste R 
     VK_S = &H53   'Taste S 
     VK_T = &H54   'Taste T 
     VK_U = &H55   'Taste U 
     VK_V = &H56   'Taste V 
     VK_W = &H57   'Taste W 
     VK_X = &H58   'Taste X 
     VK_Y = &H59   'Taste Y 
 
    'Sondertasten ************************* 
     VK_SPACE = &H20 'Space/Leertaste 
     VK_RSHIFT = &HA1 'Rechte Shift-Taste 
     VK_LAlt = &HA4  'Linke ALT-Taste 
     VK_F11 = &H7A 'F11 Taste 
End Enum

Private Const KEYEVENTF_KEYUP As Long = &H2  ' Taste lösen 

Function Taste(vk_Key As vk_Keys, Optional ZusatzKey As vk_Keys = 0)
If ZusatzKey > 0 Then
    keybd_event ZusatzKey, 0, 0, 0 'Taste drücken 
End If
    
    keybd_event vk_Key, 0, 0, 0 'Taste drücken 
    keybd_event vk_Key, 0, KEYEVENTF_KEYUP, 0 'Taste los lassen 

If ZusatzKey > 0 Then
    keybd_event ZusatzKey, 0, KEYEVENTF_KEYUP, 0 'Taste los lassen 
End If
End Function

Sub Beispiel()
 Taste VK_F11, VK_LAlt
End Sub
Gruß Tino


  

Betrifft: Guten Morgen Tino von: walli
Geschrieben am: 28.12.2009 09:23:33

Habe gestern dein Makro auf Windows 7 getestet,
klappt.
Werde gleich mal mein Makro entsprechend deinem Beispiel umsetzen.
Das Problem sehe ich nur bei dem ansprechen meiner bzw. der Datei im
Visual "VBAProject-Explorer", damit dann die MSGBOX erscheint um das Passwort
reinzusetzen.
Genau so für das erstellen des Passwortes, werde mal auf XP testen und
heute Abend zu Hause auf Windows 7.
Ich werde Dich informieren,

mfg Walli

P.S. falls Du einen Tip hast für das ansprechen der Datei, bitte
laß es mich Wissen,
danke im Voraus.


  

Betrifft: Geil, bitte schau mal Tino von: walli
Geschrieben am: 28.12.2009 10:26:17

Hallo Tino,
habe dies erstellt u. läuft einwandfrei auf XP.

Sub Beispiel2()
        Application.DisplayAlerts = False
        Application.ScreenUpdating = False
Taste VK_F11, VK_LAlt
Taste VK_X, VK_LAlt         'als erstes die ansprechtaste was gemeint ist
                                        ' dann die F11 Taste
Taste VK_DOWN
Taste VK_DOWN
Taste VK_DOWN
Taste VK_DOWN
Taste VK_RETURN
Taste VK_W
Taste VK_W
Taste VK_P
Taste VK_A
Taste VK_W
Taste VK_B
Taste VK_RETURN
'Taste VK_TAB               'Tab Taste
Taste VK_RETURN
Taste VK_F11, VK_LAlt       'zurück zur Tabellenoberfläche
        Application.DisplayAlerts = True
        Application.ScreenUpdating = True
End Sub
Das einzige was stört ist das flackern geht nicht ganz weg oder ?
Werde HEUTE ABEND 17:00Uhr auf Windows 7 Rechner testen und gebe
bescheid.

mfg walli


  

Betrifft: AW: Geil, bitte schau mal Tino von: Tino
Geschrieben am: 28.12.2009 11:14:46

Hallo,
ScreenUpdating hat nur Auswirkung auf die Exceltabelle, nicht im VBA oder sonst wo.
Versuche es mal mit dieser Api,
wird etwas besser werden aber 100% wirst Du dieses Flackern nicht weckbekommen.

Private Declare Function LockWindowUpdate Lib "user32" _
        (ByVal hwndLock As Long) As Long
        
Private Declare Function GetDesktopWindow Lib "user32" _
        () As Long

Sub Beispiel2()
LockWindowUpdate (GetDesktopWindow) 'Bildschirm einfrieren
Application.DisplayAlerts = False

    Taste VK_F11, VK_LAlt
    Taste VK_X, VK_LAlt         'als erstes die ansprechtaste was gemeint ist
                                            ' dann die F11 Taste
    Taste VK_DOWN
    Taste VK_DOWN
    Taste VK_DOWN
    Taste VK_DOWN
    Taste VK_RETURN
    Taste VK_W
    Taste VK_W
    Taste VK_P
    Taste VK_A
    Taste VK_W
    Taste VK_B
    Taste VK_RETURN
    'Taste VK_TAB               'Tab Taste
    Taste VK_RETURN
    Taste VK_F11, VK_LAlt       'zurück zur Tabellenoberfläche

Application.DisplayAlerts = True
LockWindowUpdate (0&) 'Bildschirm auftauen
End Sub
Gruß Tino


  

Betrifft: Passwort schreiben mit Zwischenablage von: Tino
Geschrieben am: 28.12.2009 12:46:53

Hallo,
um einen längeren Text an eine Position einzufügen,
würde ich den Weg über die Zwischenablage gehen.

z. Bsp. so

Private Declare Sub keybd_event _
  Lib "user32" (ByVal byteVirtualKeycode As Byte, _
  ByVal byteScan As Byte, ByVal lFlags As Long, ByVal lExtraInfo As Long)
  
Enum vk_Keys
     VK_A = &H41   'Taste A
     VK_B = &H42   'Taste B
     VK_C = &H43   'Taste C
     VK_D = &H44   'Taste D
     VK_E = &H45   'Taste E
     VK_F = &H46   'Taste F
     VK_G = &H47   'Taste G
     VK_H = &H48   'Taste H
     VK_I = &H49   'Taste I
     VK_J = &H4A   'Taste J
     VK_K = &H4B   'Taste K
     VK_L = &H4C   'Taste L
     VK_M = &H4D   'Taste M
     VK_N = &H4E   'Taste N
     VK_O = &H4F   'Taste O
     VK_P = &H50   'Taste P
     VK_Q = &H51   'Taste Q
     VK_R = &H52   'Taste R
     VK_S = &H53   'Taste S
     VK_T = &H54   'Taste T
     VK_U = &H55   'Taste U
     VK_V = &H56   'Taste V
     VK_W = &H57   'Taste W
     VK_X = &H58   'Taste X
     VK_Y = &H59   'Taste Y
 
    'Sondertasten *************************
     VK_SPACE = &H20 'Space/Leertaste
     VK_RSHIFT = &HA1 'Rechte Shift-Taste
     VK_LAlt = &HA4  'Linke ALT-Taste
     VK_F11 = &H7A 'F11 Taste
     VK_CONTROL = &H11 'STRG Taste
End Enum

Private Const KEYEVENTF_KEYUP As Long = &H2  ' Taste lösen

Function Taste(vk_Key As vk_Keys, Optional ZusatzKey As vk_Keys = 0)
If ZusatzKey > 0 Then
    keybd_event ZusatzKey, 0, 0, 0 'Taste drücken
End If
    
    keybd_event vk_Key, 0, 0, 0 'Taste drücken
    keybd_event vk_Key, 0, KEYEVENTF_KEYUP, 0 'Taste los lassen

If ZusatzKey > 0 Then
    keybd_event ZusatzKey, 0, KEYEVENTF_KEYUP, 0 'Taste los lassen
End If
End Function

Sub Beispiel()
'erordert Verweis: Microsoft Forms 2.0 Object Library
'diesen von Hand setzten oder eine Userform Zeichnen und diese wieder löschen.
Dim MyData As New DataObject

MyData.SetText "Das ist mein Passwort"
MyData.PutInClipboard

Taste VK_V, VK_CONTROL 'Tastenkompi Strg+v

MyData.Clear
End Sub
Gruß Tino


  

Betrifft: Leider nicht von: walli
Geschrieben am: 28.12.2009 15:11:32

Hallo Tino,
"Excel kann die Daten nicht einfügen"
habe es komplett reinkopiert.

mfg walli


  

Betrifft: AW: Leider nicht von: Tino
Geschrieben am: 28.12.2009 15:37:32

Hallo,
mach mal noch ein DoEvents vor MyData.Clear.

Gruß Tino


  

Betrifft: Leider immer noch nicht, Bitte schau mal von: walter mb
Geschrieben am: 28.12.2009 20:32:24

Guten Abend Tino,
ich finde es toll das Du dir soviel Arbeit machst.
Leider wird das Passwort so nicht reingeschrieben also es wird auch
keine Passwortbox geöffnet.
Mein Butto Beispiel 2 sollte es sein.
Als es steht fest das man mit API dies auf Windows 7 durchführen kann.
Leider gibt es nur ein Problem das der Courser nicht in Project-Eigenschaften
auf der Tabelle select ist.
Vielleicht hast Du eine Idee ??
Passwort "wwtt"

Anbei Muster:https://www.herber.de/bbs/user/66854.xls


mfg walli


  

Betrifft: Sorry hatte mir ein Beispiel geladen, bitte von: walli
Geschrieben am: 28.12.2009 20:34:25

Guten Abend Tino,
ich finde es toll das Du dir soviel Arbeit machst.
Leider wird das Passwort so nicht reingeschrieben also es wird auch
keine Passwortbox geöffnet.
Mein Butto Beispiel 2 sollte es sein.
Als es steht fest das man mit API dies auf Windows 7 durchführen kann.
Leider gibt es nur ein Problem das der Courser nicht in Project-Eigenschaften
auf der Tabelle select ist.
Vielleicht hast Du eine Idee ??
Passwort "wwtt"

Anbei Muster:https://www.herber.de/bbs/user/66854.xls


mfg walli


  

Betrifft: versuch mal. von: Tino
Geschrieben am: 28.12.2009 21:33:05

Hallo,

https://www.herber.de/bbs/user/66858.xls

Gruß Tino


  

Betrifft: bei xp einwandfrei, kannst Du mir von: walli
Geschrieben am: 29.12.2009 14:30:16

Hallo Tino,
bei xp einwandfrei, kannst Du mir mal dahinter schreiben
was es bewirkt ?

Sub Beispiel2_Walter()
Dim MyData As New DataObject
Dim i As Integer
' SendKeys "%{F11}%xi{TAB 9}" & "Dein Kennwort" & "{tab}{enter 2}%q"
Taste VK_F11, VK_LAlt
Sleep 500           <<<<<<<<<<<<<
Taste VK_I, VK_LAlt, VK_X
Sleep 500           <<<<<<<<<<<<<
MyData.SetText "wwtt"           <<<<<<<<
MyData.PutInClipboard            <<<<<<<<
Taste VK_V, VK_CONTROL      'Tastenkompi Strg+v
Taste VK_RETURN
Taste VK_RETURN
DoEvents               <<<<<<<<<<<
MyData.Clear          <<<<<<<<<<<
End Sub

mfg walli


  

Betrifft: AW: bei xp einwandfrei, kannst Du mir von: Tino
Geschrieben am: 29.12.2009 15:08:42

Hallo,

Dim MyData As New DataObject
Dim i As Integer
Taste VK_F11, VK_LAlt
'Pause zum testen, kann gelöscht werden
Sleep 500
Taste VK_I, VK_LAlt, VK_X
'Pause zum testen, kann gelöscht werden
Sleep 500
'Kopiert eine Zeichenfolge unter Verwendung eines bestimmten Formats in ein DataObject-Objekt
MyData.SetText "wwtt"
'Verschiebt Daten aus einem DataObject-Objekt in die Zwischenablage.
MyData.PutInClipboard
Taste VK_V, VK_CONTROL  'Tastenkompi Strg+v
Taste VK_RETURN
Taste VK_RETURN
'Übergibt die Steuerung an das Betriebssystem, damit es andere Ereignisse verarbeiten kann.
DoEvents
'Zwischenablage wieder leer machen
MyData.Clear
Kann man auch in der Hilfe nachlesen, außer die Sleep Funktion.

Gruß Tino


  

Betrifft: Melde mich nachher wegen Windows 7 von: walli
Geschrieben am: 29.12.2009 16:52:24

Guten Abend Tino,
danke soweit.
Blöde Frage, wie bewirkt das Makro das die RICHTIGE Tabelle
in Eigenschaften angesprochen wird, da ich sehr viele Dateien offen habe.

mfg Walli


  

Betrifft: So ja das ist i.o von: walli
Geschrieben am: 29.12.2009 18:30:55

Hallo Tino,
es läuft auch unter Windows 7, kapiere
nur nicht wie es mit dem ansprechen der richtigen Datei funktioniert. ???

Sonst alles i.o.,
tausend DANK und für das GEDULDIGE mit mir !

mfg Walli


  

Betrifft: AW: So ja das ist i.o von: Tino
Geschrieben am: 30.12.2009 09:05:17

Hallo,
es sollte die Datei sein wo der Code läuft,
sonst müsstest Du dies erweitern mit Deinem anfang Code.

Gruß Tino


  

Betrifft: Danke -) von: walli
Geschrieben am: 30.12.2009 12:52:22

Hallo Tino,
DANKE.

Einen guten Rutsch und viel Gesundheit füs neue Jahr !!!

mfg Walli


Beiträge aus den Excel-Beispielen zum Thema "Wieso unter Windows7 Fehler ?"