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

Frage Entwicklung VB for Applications

Mitglied: unkwownuser

unkwownuser (Level 1) - Jetzt verbinden

30.10.2009 um 11:06 Uhr, 7519 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
Viren und Trojaner

Deaktivierter Keylogger in HP Notebooks entdeckt

Information von bitcoin vor 8 StundenViren und Trojaner1 Kommentar

Ein Grund mehr warum man Vorinstallationen der Hersteller immer blank bügeln sollte Der deaktivierte Keylogger findet sich im vorinstallierten ...

Router & Routing

Lets Encrypt kommt auf die FritzBox

Information von bitcoin vor 11 StundenRouter & Routing

In der neuesten Labor-Version der FB7490 integriert AVM unter anderem einen Let's Encrypt Client für Zugriffe auf das Webinterface ...

Internet

Was nützt HTTPS, wenn es auch von Phishing Web-Seiten genutzt wird

Information von Penny.Cilin vor 3 TagenInternet17 Kommentare

HTTPS richtig einschätzen Ob man eine Webseite via HTTPS aufruft, zeigt ein Schloss neben der Adresse im Webbrowser an. ...

Webbrowser

Bugfix für Firefox Quantum released - Installation erfolgt teilweise nicht automatisch!

Erfahrungsbericht von Volchy vor 4 TagenWebbrowser8 Kommentare

Hallo zusammen, gem. dem Artike von heise online wurde mit VersionFirefox 57.0.1 sicherheitsrelevante Bugs behoben. Entgegen der aktuellen Veröffentlichung ...

Heiß diskutierte Inhalte
Batch & Shell
Trusted Sites für alle User auf dem PC einpflegen
Frage von xXTaKuZaXxBatch & Shell12 Kommentare

Aufgabestellung: Es sollen auf 1 PC (bzw. mehreren PCs) vertrauenswürdige Sites per Powershell eingetragen werden, die für alle User ...

Voice over IP
Telefonstörung - Ortsrufnummern kein Verbindungsaufbau
Frage von Windows10GegnerVoice over IP10 Kommentare

Hallo, sowohl bei uns als auch beim Opa ist es über VoIP nicht möglich Ortsrufnummern anzurufen. Es kommt nach ...

Vmware
DOS 6.22 in VMWare mit CD-ROM
gelöst Frage von hesperVmware8 Kommentare

Hallo zusammen! Ich hab ein saublödes Problem. Es ist eine VMWare mit DOS 6.22 zu erstellen auf dem ein ...

Cloud-Dienste
PIM als SaaS Nutzungsgebühr
Frage von vanTastCloud-Dienste8 Kommentare

Moin, wir haben uns ein PIM (Product Information Management) nach unseren Ansprüchen für viel Geld als SaaS-Lösung bauen lassen. ...