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

Send Keys

Send Keys
02.01.2005 12:50:35
Cordula
Hallo Excel-Freunde,
ein frohes neues Jahr wünsche ich Euch.
in meiner Excel-Vorlage .xlt habe ich folgenden Code eingebunden:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
SendKeys "%{F11} %xi" & "passwort" & "{ENTER} {ENTER} %q"
Dim vbc As Object
With ActiveWorkbook.VBProject
For Each vbc In .VBComponents
Select Case vbc.Type
Case 1, 2, 3: .VBComponents.Remove .VBComponents(vbc.Name)
Case 100
With vbc.CodeModule
.DeleteLines 1, .CountOfLines
End With
End Select
Next
End With
End Sub

Klar was passiert, mein Code wird in der Vorlage gelöscht. Was muss ich machen, dass er nur in der .XLS löscht?
Wäre super toll, wenn ihr eine Idee hättet, denn in der Recherche habe ich nichts darüber gefunden (übrigens habe ich mir aus der Recherche den Code zusammen gebastelt)
Vielen Dank im voraus
LG
Cordula

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Send Keys
Ramses
Hallo
Ungetestet aber probiers mal aus

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If right(thisworkbook.name,3)<> "xls" then exit sub
SendKeys "%{F11} %xi" & "passwort" & "{ENTER} {ENTER} %q"
Dim vbc As Object
With ActiveWorkbook.VBProject
For Each vbc In .VBComponents
Select Case vbc.Type
Case 1, 2, 3: .VBComponents.Remove .VBComponents(vbc.Name)
Case 100
With vbc.CodeModule
.DeleteLines 1, .CountOfLines
End With
End Select
Next
End With
End Sub

Gruss Rainer
AW: Send Keys
Cordula
Hey Rainer *freu freu*,
funktioniert leider nicht. Hmmmm und jetzt?
LG
Cordula
Anzeige
AW: Send Keys
Ramses
Hallo
warum sollte das nicht funktionieren ?
Das nachfolgende Makro wird nicht ausgeführt, wenn die Dateiendung nicht "xls" ist.
Gruss Rainer
AW: Send Keys
Cordula
Hey,
sorry, aber es funktioniert ein bißchen durcheinander. Also, speicher ich als xls ab, bleibt der Code. So, und nun kommt das Durcheinander: Gehe ich in diese xls, sagt er mir beim Verlassen, "Projekt ist geschützt". Soweit ist das auch klar, gehe ich aber dann in die Entwicklungsumgebung, also mit Alt F11, dann einfach wieder raus, löscht Excel mir den kompletten Code beim Schließen der Datei. Verrückt oder?
Kannst du mir trotzdem noch helfen?
LG
Cordula
Anzeige
AW: Send Keys
Ramses
Hallo
Tut mir leid.
Wenn dein VB-Projekt geschützt ist, musst du den Schutz vorher aufheben.
WArum es den Code dann trotzdem löscht, kann ich mir nicht erklären.
Ich stell die Frage wieder als offen.
Gruss Rainer
Noch offen... o.T:
Ramses
...
AW: Noch offen... o.T:
Cordula
Hey Rainer,
dass ist wirklich suspekt. Trotzdem, vielen Dank!
LG
Cordula
@ Ramses
Cordula
Hey Reiner,
mit folgendem Code funktioniert das Löschen in der xls. Probleme gab es nur mit dem SendKey. Nun muss ich diesen aber mit einbauen, damit ich das Projekt auch schützen kann. Weißt du hier einen Rat?
If ThisWorkbook.Name = "Test.xlt" Then
Exit Sub
Else
Dim vbc As Object
With ActiveWorkbook.VBProject
For Each vbc In .VBComponents
Select Case vbc.Type
Case 1, 2, 3: .VBComponents.Remove .VBComponents(vbc.Name)
Case 100
With vbc.CodeModule
.DeleteLines 1, .CountOfLines
End With
End Select
Next
End With
End If
End Sub
Anzeige
AW: @ Ramses
Ramses
Hallo
Kannst du mir folgendes noch erklären:
Wofür willst du ein VBA-Projekt schützen, wenn du vorher alle Module löscht ?
Ausserdem muss dazu auf dem Zielrechner die Option "Zugriff auf Visual Basic Project vertrauen" aktiviert sein, sonst funktioniert das ganze sowieso nicht.
Gruss Rainer
AW: @ Ramses
Cordula
Hey Rainer,
ich habe eine Rechnungs-Vorlage, in der habe ich einen komplexen Code, den der Anwender nicht sehen soll. Entsprechend habe ich in dieser Vorlage ein Kennwort vergeben.
Wird diese Vorlage dann als xls geöffnet, muss sich dieser Code beim Schließen, also nach dem Ausfüllen, automatisch löschen. Das macht er nun auch, dank deiner Hilfe, aber eben nur, wenn kein Kennwort vergeben ist.
Bei meiner Recherche habe ich gelesen, dass es mit der Funktion SENDKEY immer mal wieder Probleme gibt. Also suche ich jetzt nach einer Möglichkeit, das Projekt anderweitig zu schützen. Hast du da vielleicht eine Idee?
Die Option "...Projekt vertrauen..." ist aktiviert!
Ich hoffe bis gleich :-)
LG
Cordula
Anzeige
AW: @ Ramses
Ramses
Hallo
eine andere Möglichkeit das Projekt zu schützen ist mir leider nicht bekannt.
Da bleibt dir nichts anderes übrig, als Schritt für Schritt die Tastatureingaben per Send-Keys-Anweisung zu übergeben:
SendKeys "%{F11}%XI{TAB 9}" & "Dein Kennwort" & "{TAB}{ENTER}{ENTER}%Q"
Die Anweisung ist übrigens auch von Nepumuk wie dein Code.
Mach dir doch mal Gedanken darüber, deinen ganzen Code in ein AddIn auszulagern und den Code für deine XLT von dort aus aufzurufen.
Dann sparst du dir das umständliche Löschen des Codes und der Anwender muss bloss ein AddIn installieren.
Gruss Rainer
Anzeige
AW: @ Ramses
Cordula
Hey Reiner,
die Idee mit dem AddIn ist nicht schlecht, vor laaaanger Zeit habe ich das mal gemacht. Werde mich mal da hinterklemmen. Bin aber trotzdem schon ein Stück weiter gekommen.
Vielen vielen Dank und bis bald.
LG
Cordula

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige