Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst VBS - MsgBox Abfrage

Mitglied: unkwownuser

unkwownuser (Level 1) - Jetzt verbinden

30.10.2009 um 11:06 Uhr, 7528 Aufrufe, 7 Kommentare

Hallo liebes administrator.de Forum,

hier eine kleine Struktur meines Vorhabens.
Wenn Excel geöffnet dann --> MsgBox (Ja/Nein) --> wenn Antwort "Ja" dann --> schreibe in aktive Arbeitsmappe und setze Offsets (ActiveCell) --> sonst --> erstelle eine neue Arbeitsmappe.
Desweiteren soll der StyleName überprüft werden. Falls der StyleName schon vorhanden ist, soll eine Sub (z.B. Style definieren) ignoriert werden.
Gibts da vllt. eine Find.Style Funktion?

Der Code sieht zur Zeit so aus.
01.
	Set xExcel = GetObject(, "Excel.Application") 
02.
	Answer = MsgBox("Wollen Sie in die aktive Arbeitsmappe schreiben?", 4) 
03.
		If Answer = vbYes Then 
04.
			xExcel.ActiveCell.Offset(1, 1).Activate 
05.
		Else 
06.
			xExcel.Workbooks.Add 
07.
		End If 
08.
	Set ActiveWorkbook = xExcel.ActiveSheet
Das mit dem Offset muss noch bisschen überarbeitet werden.


Gruß,
unkwownuser
Mitglied: 76109
30.10.2009 um 12:29 Uhr
Hallo unknownuser!

Die Styleabfrage in etwa so:
01.
Set xExcel = GetObject(, "Excel.Application") 
02.
 
03.
If TestStyle(xExcel.ActiveWorkbook, "Normal") = True Then MsgBox "True" Else MsgBox "False" 
04.
 
05.
Function TestStyle (ByRef Wkb, ByRef StyleName) 
06.
    Dim Style 
07.
    TestStyle = False 
08.
    For Each Style In Wkb.Styles 
09.
        If Style.Name = StyleName Then TestStyle = True:  Exit For 
10.
    Next 
11.
End Function
Gruß Dieter
Bitte warten ..
Mitglied: unkwownuser
30.10.2009 um 13:08 Uhr
Hallo Dieter,

erstmal vielen Dank für Hilfe.
Aber ich blicke nicht so wirklich durch, was du da gemacht hast. Könntest du das vllt. kurz erklären?


Gruß,
unkwownuser
Bitte warten ..
Mitglied: 76109
30.10.2009 um 13:42 Uhr
Hallo unkwownuser!

Du willst ja wissen, ob ein bestimmter Style-Name schon existiert. Folglich muss ja die Style-Liste der aktiven Arbeitsmappe nach einem Style-Namen durchsucht werden.Die Liste enthält ja schon definierte Styles z.B. "Normal", "Percent", "Comma" usw. Und so eine Liste läßt sich mit einer For Each-Funktion auslesen, wobei Style immer ein Item von x-Items darstellt, also nachaneinander einen bestimmten Eintrag in einem Array suchen und wenn gefunden, dann Funktionsrückgabewert = True setzen und die Schleife verlassen. Der Funktionsrückgabewert muss natürlich vorher mit False initialisiert werden, sonst wäre der Rückgabewert = "", wenn der Style-Name nicht gefunden wurde. Beantwortet das Deine Frage?

Gruß Dieter
Bitte warten ..
Mitglied: unkwownuser
30.10.2009 um 14:39 Uhr
Hallo Dieter,

so grob habe ich es verstanden.
Jedoch besteht immer noch das gleiche Problem wie vorher.


Hier mal der aktuelle Code. Einfach zweimal öffnen (beim zweiten mal in die aktive Arbeitsmappe).

01.
Set Shell = WScript.CreateObject("WScript.Shell") 
02.
Result = Shell.AppActivate("Microsoft Excel") 
03.
 
04.
If Result = True Then 
05.
	Set xExcel = GetObject(, "Excel.Application") 
06.
	Answer = MsgBox("In aktive Arbeitsmappe schreiben?", 4) 
07.
		If Answer = vbYes Then 
08.
			If TestStyle(xExcel.ActiveWorkbook, "Style1") = True Then MsgBox "True" Else MsgBox "False" 
09.
			Function TestStyle (ByRef Wkb, ByRef StyleName) 
10.
				TestStyle = False 
11.
				For Each Style In Wkb.Styles 
12.
					If Style.Name = StyleName Then TestStyle = True:  Exit For 
13.
				Next 
14.
			End Function 
15.
		Else 
16.
			xExcel.Workbooks.Add 
17.
		End If 
18.
	Set ActiveWorkbook = xExcel.ActiveSheet 
19.
Else 
20.
	Set xExcel = CreateObject("Excel.Application") 
21.
	xExcel.Workbooks.Add 
22.
	xExcel.Visible = True 
23.
	Set ActiveWorkbook = xExcel.ActiveSheet 
24.
End If 
25.
 
26.
Sub defineStyle(ByRef StyleName, ByRef FontName) 
27.
	With xExcel.ActiveWorkbook.Styles.Add(StyleName) 
28.
		.Font.Name = FontName 
29.
	End With 
30.
End Sub 
31.
 
32.
Call defineStyle("Style1", "Tahoma")

Gruß,
unkwownuser
Bitte warten ..
Mitglied: 76109
30.10.2009 um 15:27 Uhr
Hallo unknownuser!

ungetestet eher so:
01.
'Main Begin 
02.
 
03.
Set Shell = WScript.CreateObject("WScript.Shell") 
04.
Result = Shell.AppActivate("Microsoft Excel") 
05.
 
06.
If Result = True Then 
07.
	Set xExcel = GetObject(, "Excel.Application") 
08.
	Answer = MsgBox("In aktive Arbeitsmappe schreiben?", 4) 
09.
		If Answer = vbYes Then 
10.
			If TestStyle(xExcel.ActiveWorkbook, "Style1") = False Then Call defineStyle("Style1", "Tahoma") 
11.
		Else 
12.
			xExcel.Workbooks.Add 
13.
	  		Call defineStyle("Style1", "Tahoma") 
14.
		End If 
15.
	Set ActiveWorkbook = xExcel.ActiveSheet 
16.
Else 
17.
	Set xExcel = CreateObject("Excel.Application") 
18.
	xExcel.Workbooks.Add 
19.
	xExcel.Visible = True 
20.
	Set ActiveWorkbook = xExcel.ActiveSheet 
21.
	Call defineStyle("Style1", "Tahoma") 
22.
End If 
23.
 
24.
'......... 
25.
 
26.
'Main Ende 
27.
 
28.
Sub defineStyle(ByRef StyleName, ByRef FontName) 
29.
	With xExcel.ActiveWorkbook.Styles.Add(StyleName) 
30.
		.Font.Name = FontName 
31.
	End With 
32.
End Sub 
33.
 
34.
Function TestStyle (ByRef Wkb, ByRef StyleName) 
35.
	TestStyle = False 
36.
	For Each Style In Wkb.Styles 
37.
	    If Style.Name = StyleName Then TestStyle = True:  Exit For 
38.
	Next 
39.
End Function
Grundsätzliches:
Sub's und Funktionen immer als solche seperat nach dem Main-Code plazieren. Wenn das Script gestartet wird, dann wird NUR der Code im Main-Teil ausgeführt.
Die Sub's und Funktionen werden nur ausgeführt, wenn sie aus dem Main-Teil oder aus einer anderen Sub/Funktion heraus aufgerufen werden.
Der Unterschied zwischen einer Sub und Funktion ist der, das bei Funtionen ein Wert zurückgegeben wird (Funktions-Name = Wert)

Gruß Dieter
Bitte warten ..
Mitglied: unkwownuser
04.11.2009 um 08:40 Uhr
Hallo Dieter,

funktioniert eiwandfrei.
Ich danke dir vielmals.


Gruß,
unkwownuser
Bitte warten ..
Mitglied: 76109
04.11.2009 um 10:53 Uhr
Hallo unkwownuser!

Freut mich, wenn's funktioniert

Gruß Dieter
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

VBS msgbox meldung nach jeden durchsuchten Ordner und nicht am Schluß

gelöst Frage von KnuefiBatch & Shell18 Kommentare

Hallo da mir immer hier geholfen wurde, wende ich mich mal wieder an Euch. Ich habe ein Script zur ...

VB for Applications

Abfrage über function bei vbs

gelöst Frage von RobertKaVB for Applications4 Kommentare

Hallo zusammen, habe ein vb Script, welches je nach Aufruf verschiedene Mails verschickt. Es funktioniert also schon. Und das ...

Windows Server

WMI VBS Registry Abfrage

gelöst Frage von LuciusCastusWindows Server3 Kommentare

Ich habe folgendes Problem: Für die GPO Verteilung benötige ich eine WMI Filterung von der Installation .Net v4. Ab ...

Batch & Shell

Start MsgBox in User Session

gelöst Frage von UragusBatch & Shell5 Kommentare

Hallo, Ich habe eine BAT Datei die mit Hilfe von VBS eine MsgBox aufruft. Die BAT wird in Session ...

Neue Wissensbeiträge
Windows 10
Zero-Day-Lücke in Microsoft Edge
Information von kgborn vor 12 StundenWindows 10

In Microsofts Edge-Browser klafft wohl eine nicht geschlossene (0-Day) Sicherheitslücke im Just In Time Compiler (JIT Compiler) für Javascript. ...

Sicherheit
Microsoft und Skype: Sicherheit
Information von kgborn vor 12 StundenSicherheit

Die Tage gab es ja einige Berichte zur Sicherheit des Skype-Updaters. Der Updater von Skype läuft unter dem Konto ...

Datenschutz

Behörden ignorieren Sicherheitsbedenken gegenüber Windows 10

Information von Penny.Cilin vor 1 TagDatenschutz8 Kommentare

Hallo, passend zum Thema Ablösung LIMUX in München ein Beitrag bei Heise (siehe Link folgend). Behörden ignorieren Sicherheitsbedenken gegenüber ...

Sicherheit
Information Security Hub Munich airport
Information von brammer vor 1 TagSicherheit

Hallo, Neues Center für Cyber Kriminalität am Münchener Flughafen brammer

Heiß diskutierte Inhalte
Exchange Server
Exchange Postfach Einbindung Betriebs-rat -Arzt, Bewerbung .
gelöst Frage von YellowcakeExchange Server23 Kommentare

Hey ich habe da mal eine Denksport Aufgabe bekommen Genutzt wird ein Exchange Server 2010. hier gibt es den ...

Windows Server
Downgrade von Windows Server 2016 auf 2012 - Wie vorgehen?
Frage von EstefaniaWindows Server13 Kommentare

Guten Ich habe eine Frage an Erfahrene unter euch. Durch einen InPlace Upgrade wurde Windows Server 2012 auf die ...

Datenschutz
Telematikinfrastruktur Erfahrungsaustausch
Frage von MOS6581Datenschutz12 Kommentare

Moin, unter meinen Kunden befinden sich auch einige Ärzte, welche sich künftig mit der Telematikinfrastruktur-Geschichte der Gematik herumärgern dürfen. ...

Windows Server
Delgegierte OU via RDP verwalten - Objektverwaltung zuweisen
gelöst Frage von TOAOICEWindows Server12 Kommentare

Hallo, ich habe folgendes Problem. Ich möchte in meiner Domäne (Server2016), einer Gruppe (OUAdmin) Berechtigungen auf die OU Test ...