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

Abfrage bei SendKeys

Abfrage bei SendKeys
06.11.2006 13:54:20
Walter
Hallo,
habe folgende Zeile:~f~
Application.SendKeys "%Z" 'Zugriff auf Visual Basic
ich möchte nun erst Abfragen, wenn "Haken" drin ist, erledigt sonst die
Zeile ausführen.
So geht es leider nicht:
If Application.SendKeys "%S",True Then
MsgBox "Haken vorhanden"
End If
gruß walter

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Abfrage bei SendKeys
06.11.2006 19:00:25
ChrisL
Hallo Walter
SendKeys sendet, aber empfängt nicht. Fragt sich, ob man nicht mit anderen Methoden die Information (Haken) abfragen könnte, aber dazu ist die Frage m.E. zu allgemein formuliert.
Gruss
Chris
AW: Abfrage bei SendKeys
06.11.2006 19:08:08
Walter
Hallo Chris,
Du hast Recht.
Der Grund, wenn ich das Makro auslöse und der Haken wird gesetzt, beim erneutem
Makro ablaufen, wird der Haken rausgenommen, wieder beim erneuten wieder reingesetzt
u.s.w. .
Ich muß halt irgendwie prüfen ob der Haken vorhanden, ist der drin, soll nächste Zeile
weitergehen.
gruß Walter
AW: Abfrage bei SendKeys
06.11.2006 19:27:48
ChrisL
Hallo Walter
Was für ein Haken? Externe Applikation oder Userform etc.?
Vermutlich kannst du die Information am Ausgangspunkt speichern. Du startest das Makro doch aus Excel oder?
Beispielhaft:
If Range("A1") = True Then
Range("A1") = False
' Start Makro mit Wert WAHR
Else
Range("A1") = True
' Starte Makro mit Wert FALSCH
End If
Gruss
Chris
Anzeige
Sorrrrry
06.11.2006 19:53:23
Walter
Hallo Chris,
entschuldige BITTE, nein, ich muß unter Extras/Optionen/Sicherheit/Makrosicherheit
dann sollte die Sichheitsstufe Mittel eingestellt werden und dann unter
"Vertrauenswürdige Herausgeber" den Haken bei:
"Zugriff auf Visual Basic-Projekt vertrauen" .
Per Makro habe ich es bis hier geschaft:

Sub Test_VB() '061101
'Funktioniert so bei XP !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Sheets("Tabelle1").Select
Application.SendKeys "%x"        'Extras
Application.SendKeys "Down"      'Optionen
Application.SendKeys "s"         'erst auf Speichern dann...
Application.SendKeys "s"         'auf Sicherheit
Application.SendKeys "%s"        'Blatt Sicherheitsstufe
Application.SendKeys "%n"        'niedrig einstellen
Application.SendKeys "%v"        'Blatt Vertrauenswürdige Quellen
Application.SendKeys "%Z"        'Zugriff auf Visual Basic
Application.SendKeys "~"         'Enter
' If Application.SendKeys "%Z",True then
'   MsgBox "Haken vorhanden"
'   End If
Application.SendKeys "%Z"        'Zugriff auf Visual Basic
End Sub

mfg walter
Anzeige
Anderer Vorschlag !
07.11.2006 07:50:26
Heiko
Hallo Walter,
das geht über sendkeys nicht abzufragen da mußt du einen Testzugriff auf des VBA Projekt starten und schauen was passiert. Guckst du hier.

Sub Test()
Dim lngI As Long
On Error Resume Next
lngI = ActiveWorkbook.VBProject.VBComponents.Count
If Err.Number = 0 Then
MsgBox "Haken vorhanden", vbInformation
Else
MsgBox "Nu is er nicht vorhanden !", vbCritical
' Hier dann deine SEndkeys Anweisung für Zugriff auf Visual Basic Vetrauen.
End If
On Error GoTo 0
End Sub

Gruß Heiko
PS: Rückmeldung wäre nett !
Neuer Vorschlag !
07.11.2006 08:11:36
Heiko
Hallo Walter,
noch besser so.

Sub Test()
Dim lngI As Long
On Error Resume Next
lngI = ActiveWorkbook.VBProject.VBComponents.Count
If Err.Number = 1004 Then
MsgBox "Haken ist nicht vorhanden !", vbCritical
' Hier dann deine SEndkeys Anweisung für Zugriff auf Visual Basic Vertrauen.
ElseIf Err.Number = 50289 Then
MsgBox "VBA Projekt ist Passwort geschützt !", vbCritical
Else
MsgBox "Haken vorhanden", vbInformation
End If
On Error GoTo 0
End Sub

Gruß Heiko
PS: Rückmeldung wäre nett !
Anzeige
Super habe noch eine Frage
07.11.2006 09:02:32
Walter
Guten Morgen Heiko,
funktioniert, Danke.
Habe noch eine Frage:
Wie kann ich die "Options-Box offen" Schließen, wenn die Einstellung duchgeführt wurde ?
Hier mein Makro:

Private Sub Workbook_Open()
Dim sStr As String
Dim lngI As Long
On Error Resume Next
lngI = ActiveWorkbook.VBProject.VBComponents.Count
If Err.Number = 1004 Then
MsgBox "Sicherheitseinstellung für Excel wird jetzt durchgeführt !" _
& Chr(13) & "die Datei wird dann wieder geschlossen !" & Chr(13), vbCritical
' Hier dann deine SEndkeys Anweisung für Zugriff auf Visual Basic Vertrauen.
ElseIf Err.Number = 50289 Then
MsgBox "VBA Projekt ist Passwort geschützt !", vbCritical
Else
MsgBox "VB-Makros Sicherheitseinstellung ist schon durchgeführt !", vbInformation
Exit Sub
End If
On Error GoTo 0
Application.SendKeys "%x"        'Extras
Application.SendKeys "Down"      'Optionen
Application.SendKeys "s"         'erst auf Speichern dann...
Application.SendKeys "s"         'auf Sicherheit
Application.SendKeys "%s"        'Blatt Sicherheitsstufe
Application.SendKeys "%n"        'niedrig einstellen
Application.SendKeys "%v"        'Blatt Vertrauenswürdige Quellen
Application.SendKeys "%Z"        'Zugriff auf Visual Basic
Application.SendKeys "~"                'Enter
Application.SendKeys "%S"               'Zugriff auf Visual Basic
Application.SendKeys "%Z"        'Zugriff auf Visual Basic
End Sub

Was bedeutet den die Nr.: 50289 ?
mfg walter
Anzeige
AW: Super habe noch eine Frage
07.11.2006 09:18:08
Heiko
Hallo Walter,
erste Frage:
Wie kann ich die "Options-Box offen" Schließen, wenn die Einstellung duchgeführt wurde ?
habe ich nicht verstanden, welche "Options-Box offen" ?
50289 ist die VBA Fehlernummer wenn du versuchst auf ein Passwortgeschütztes Projekt zuzugreifen.
Gruß Heiko
PS: Rückmeldung wäre nett !
AW: Super habe noch eine Frage
07.11.2006 10:05:32
Walter
Hallo Heiko,
wenn ich in der Tabelle bin und dann unter
Extras-Optionen gehe, dieses Menü.
Darin ist ja auch die "Lasche" Sicherheit, Makrosicherheit etc.
gruß Walter
AW: Super habe noch eine Frage
07.11.2006 10:27:19
Heiko
Hallo Walter,
Sendkeys ist ja eh nur ne Krücke und nicht wirklich zuverlässig, aber wenn du alle Einstellungen gemacht hast dann mußt du halt mit Sendkeys TABS senden bis du auf dem OK Button bist und dann ein ENTER senden, dann sollte das Ding schließen.
Gruß Heiko
PS: Rückmeldung wäre nett !
Anzeige
Danke für die UNterstützung -)
07.11.2006 11:34:44
Walter
Hallo Heiko,
habe alles hinbekommen, funktioniert !
Danke,
mfg Walter
Noch Fehler, Bitte Heiko !
07.11.2006 12:18:08
Walter
Hallo Heiko,
wenn ich das Makro per Button ablaufen lasse ist alles i.o. wenn über
Auto_Open, dann wird die "Sicherheitsstufe" Mittel berücksichtigt bzw. nicht
verändert, ich brauch aber "Niedrig",
bitte mal schauen,
Danke im voaus, ich teste gerade aber krieg es nicht hin, wollte das Makro über "Schritt" ausführen, wechselt abêr immer in die VB Modul-Eigenschaften, bleibt
somit nicht in der Tabelle.
mfg Walter
Fehler behober aber festgestellt...
07.11.2006 12:50:17
Walter
Hallo Heiko,
soweit ist alles klar, habe die Zeilen überrprüft und geändert,
so läuft es:

Private Sub Workbook_Open()
Dim sStr As String
Dim lngI As Long
On Error Resume Next
lngI = ActiveWorkbook.VBProject.VBComponents.Count
If Err.Number = 1004 Then
MsgBox "Sicherheitseinstellung für Excel wird jetzt durchgeführt !" _
& Chr(13) & Chr(13) & "Die Datei wird dann wieder geschlossen !" & Chr(13), vbCritical
' Hier dann deine SEndkeys Anweisung für Zugriff auf Visual Basic Vertrauen.
Application.SendKeys "%x"        'Extras
Application.SendKeys "Down"      'Optionen
Application.SendKeys "s"         'erst auf Speichern dann...
Application.SendKeys "s"         'auf Sicherheit
Application.SendKeys "%s"        'Blatt Sicherheitsstufe
Application.SendKeys "%n"        'niedrig einstellen
Application.SendKeys "%v"        'Blatt Vertrauenswürdige Quellen
Application.SendKeys "%Z"        'Zugriff auf Visual Basic
Application.SendKeys "~"         'Enter
Application.SendKeys "{TAB}", True
Application.SendKeys "~"         'Enter
ElseIf Err.Number = 50289 Then
MsgBox "VBA Projekt ist Passwort geschützt !", vbCritical
Else
MsgBox "VB-Makros Sicherheitseinstellung ist schon durchgeführt !", vbInformation
Exit Sub
End If
On Error GoTo 0
End Sub

Es ist mir jedoch aufgefallen, wenn Excel die Makro-Einstellung auf "Hoch" eingestellt
hat, wird das Makro(Auto-Open) erst garnicht ausgeführt !
Wie kann man das hinkriegen ?
gruß Walter
Anzeige
AW: Fehler behober aber festgestellt...
07.11.2006 15:16:25
Heiko
Hallo Walter,
garnicht, das ist doch der Sinn der Makroabfrage.
Sonst wäre den MakroViren Tür und Tor geöffnet wenn ein Makro selbst den Makroschutz aufheben könnte.
Per Makro kann man beim öffnen die Makro Sicherheitsstufe NICHT von Hoch auf eine kleinere Stufe ändern!
Gruß Heiko
PS: Rückmeldung wäre nett !
So nun
07.11.2006 15:24:45
Walter
Hallo Heiko,
nun habe ich den ganzen Tag "rumgebastelt", soweit ja i.o., eins ist mir aufgefallen,
wenn ich vom aktiven Fenter der Sicherheitseinstelleung den Haken bei:
"Zugriff auf Visual Basic..." gesetzt habe und mit OK bestätige funktioniert auch nur
das nächste Fenster krieg ich nicht AKTIV. Ich möchte ja nur mit OK weiter bestätigen um
damit den Optiondialog zu schließen.
Vielleicht nocht einen Tip von Dir ?
Habe gerade mal rumgestöbert und bin auf das Thema "Digitale Signatur" gestoßßßßen.
Sollte man vielleicht die Datei so "betsücken", habe allerdings keine Ahnung!!!
mfg walter
Anzeige
AW: So nun
07.11.2006 15:58:22
Heiko
Hallo Walter,
Zitat von dir:
"Zugriff auf Visual Basic..." gesetzt habe und mit OK bestätige funktioniert auch nur
das nächste Fenster krieg ich nicht AKTIV. Ich möchte ja nur mit OK weiter bestätigen um
damit den Optiondialog zu schließen.
Da kann ich dir nur sagen, rumprobieren mit Sendkeys bis es klappt. Also mal manuell alles durchgehen aufschreiben welche Tasten gedrückt werden und das dann mit Sendkeys nachbilden.
Aber Achtung, Sendkeys verhält sich nicht auf jeden Rechner / jeder Version gleich also das was denn bei dir läuft muss nicht zwangsläufig überall funktionieren. Denn wie schon gesagt Sendkeys ist nur ne unsichere Hilfskrücke und kein echtes programmieren.
Wenn du Makros schreiben willst die auf anderen Rechner ohne Makroabfrage funktionieren dann geht nur der Weg über Signatur, da muß man dann nur einmal anklicken das man der Quelle vertrauen will, danach werden die Makros auch ohne Makroabfrage abgearbeitet.
Läuft gut, mußt du halt mal in der Recherche suchen wie man so eine Selbstsignatur erstellt und mitliefert. Da kann ich dir leider nicht helfen da wir hier im Hause eine übergeordente Stelle haben die sowas macht.
Gruß Heiko
PS: Rückmeldung wäre nett !
Anzeige
Danke -)
07.11.2006 18:24:31
Walter
Guten Abend Heiko,
Fanke nochmals für die Unterstützung,
da werde ich mal schauen...
Schönen Abend,
mfg Walter

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige