ist es möglich aus einem Makro nach Ablauf in "diese Arbeitsmappe" geziehlt eine Zeile(Begriff) zu löschen damit beim nächsten Aufruf dieser Begriff nicht mehr angewählt wird.
Private Sub Workbook_Open()
'ActiveSheet.Unprotect
'Application.DisplayFormulaBar = False
'Application.OnKey "%{F11}", ""
'Call Abfrage ' Diese Call soll nach Abarbeitung verschwinden
'Call RibbonOff
'Call Makro1
'Call Blattschutz
'Sheets("Meldeliste").Select
'If Range("U75").Value = "Lizenzgültigkeit 10 Jahre" Then
'Range("C3").Select
'End If
'ActiveSheet.Protect UserInterfaceOnly:=True
'End Sub
Private Sub Workbook_Open()
If Range("A1") "Abfrage ok" Then Call Abfrage ' Diese Call soll nach Abarbeitung _
verschwinden
'End Sub
Sub Abfrage()
'Macht irgendwas
Range("A1") = "Abfrage ok"
End Sub
Private Sub Workbook_Open()
Call Installieren
Call Abfrage
End Sub
Sub Installieren()
Dim strSQL As String
Dim strWMI As String
Dim oWMI As Object
Dim objItem As Object
Dim stringFP As String
Dim stringPC As String
Dim stringEndNumber As String
Dim myFileSystemObject As Object
strSQL = "Select * from Win32_Processor"
strWMI = "winmgmts:\\.\root\cimv2"
Set oWMI = GetObject(strWMI).ExecQuery(strSQL)
For Each objItem In oWMI
stringPC = objItem.ProcessorId
Next
Set myFileSystemObject = CreateObject("Scripting.FileSystemObject")
stringFP = myFileSystemObject.GetDrive("C:").SerialNumber
stringEndNumber = stringPC & stringFP
Application.ScreenUpdating = False
Range("AD200").Value = stringFP
Range("AE200").Value = stringPC
Application.ScreenUpdating = True
' Call MakroFiltern
End Sub
Sub InstalLoeschen()
Dim Namen(1 To 3)
Namen(1) = "Modul1"
Namen(2) = "Modul7"
Namen(3) = "Modul2"
For x = 1 To UBound(Namen)
Set VBP = Application.VBE.ActiveVBProject
VBP.VBComponents.Remove VBP.VBComponents(Namen(x))
Next x
End Sub
Sub Abfrage()
Dim strSQL As String
Dim strWMI As String
Dim oWMI As Object
Dim objItem As Object
Dim stringFP As String
Dim stringPC As String
Dim stringEndNumber As String
Dim myFileSystemObject As Object
strSQL = "Select * from Win32_Processor"
strWMI = "winmgmts:\\.\root\cimv2"
Set oWMI = GetObject(strWMI).ExecQuery(strSQL)
For Each objItem In oWMI
stringPC = objItem.ProcessorId
Next
Set myFileSystemObject = CreateObject("Scripting.FileSystemObject")
stringFP = myFileSystemObject.GetDrive("C:").SerialNumber
stringEndNumber = stringPC & stringFP
Application.ScreenUpdating = False
Range("AD201").Value = stringFP
Range("AE201").Value = stringPC
Application.ScreenUpdating = True
' Call vergleichen
End Sub
Sub vergleichen()
Application.Wait (Now + TimeValue("00:00:05"))
If Range("AD200") = Range("AD201") Then
MsgBox "FP erfolgreich!"
End If
If Range("AE200") = Range("AE201") Then
MsgBox "PC erfolgreich!"
End If
If Range("AD200") Range("AD201") Then
MsgBox "FP Fehler!"
'Call ausschalten
Else
If Range("AE200") Range("AE201") Then
MsgBox "PC Fehler!"
'Call ausschalten
End If
End If
End Sub
Sub ausschalten()
Set objWMI = GetObject("WinMgmts:{impersonationLevel=impersonate, (Shutdown)}!/root/cimv2")
Set objItems = objWMI.ExecQuery("SELECT * FROM Win32_OperatingSystem")
For Each objItem In objItems
objItem.Shutdown
Next objItem
End Sub
Sub MakroFiltern()
With ThisWorkbook.VBProject.VBComponents("DieseArbeitsmappe").CodeModule
.DeleteLines 2, 1
End With
'Call InstalLoeschen
End Sub
Private Sub Workbook_Open()
If Sheets("GEHEIM").Range("A1") "Abfrage ok" Then Call Abfrage ' Diese Call soll nach _
Abarbeitung _
verschwinden
'End Sub
Sub Abfrage()
'Macht irgendwas
Sheets("GEHEIM").Range("A1") = "Abfrage ok"
Sheets("GEHEIM").Visible = xlVeryHidden
End Sub