Microsoft Excel

Herbers Excel/VBA-Archiv

VBS in Excel | Herbers Excel-Forum


Betrifft: VBS in Excel von: Falco
Geschrieben am: 04.02.2010 15:59:22

Liebes Forum,

ich habe ein scheinbar sehr spezielles Problem.

Zur Bearbeitung eines Excel-Sheets, schreibe ich in einem anderen Statistikprogramm einen VBS Code.
Der VBS Code sieht dann bspw. so aus:

For x = 2 To 5 Step 1
XL.Range("B"&x).Select XL.Selection.FormatConditions.Add xlExpression, , "=WENN(IsEmpty(B"&x&");1;0)" XL.Selection.FormatConditions(1).Interior.Color = RGB(255, 190, 0)
Next

Dieses funktioniert auch nach langem basteln.

Allerdings scheitere ich dann bspw. an folgendem Befehl:
XL.Sheets("SUM_VERGL").move After:=Sheets(1)

Oder an einer If Bedingung in obiger Schleife!

Meine Frage ist also, was kann ich tuen, damit Befehle die direkt im Excel Visual Basic Editor funktionieren, auch über VBS in Excel ohne Fehlermeldung ausgeführt werden können.

Grüße und besten Dank im vorraus
Falco

  

Betrifft: AW: VBS in Excel von: Josef Ehrensberger
Geschrieben am: 04.02.2010 16:32:25

Hallo Falco,


da musst du natürlich immer genau referenzieren.

Also in etwa so.

XL.Sheets("SUM_VERGL").move After:=XL.Sheets(1)



Gruß Sepp



  

Betrifft: OT VBS von: Reinhard
Geschrieben am: 04.02.2010 16:40:24

Hallo Sepp,

kennst du gute Seiten zu VBS?

Es ist recht mühsam für mich VBS durch learning by doing zu erforschen indem ich VBA-Code probiere und dann rätsle warum der nicht klappt:-(

Eine Entwicklungsumgebung für VBS wäre natürlich ideal wo ich in die Hilfe schauen könnte.

Gruß
Reinhard




  

Betrifft: OT: VBScript Editor von: NoNet
Geschrieben am: 04.02.2010 16:50:46

Hallo Reinhard,

ich verwende für solche Zwecke den "kostenlosen" (Evaluierungsversion) VBSEdit, der eine ganze Menge vorgefertigter "Code-Snippets" zu den unterschiedlichsten Themen enthält, aus denen man alleine durch Anschauen viel lernen kann :


http://www.v b sedit.com (bitte Leerzeichen zwischen v b s entfernen - die Herber-Software lässt mich den Link nicht posten !)

Gruß, NoNet


  

Betrifft: AW: OT: VBScript Editor von: Reinhard
Geschrieben am: 05.02.2010 16:47:36

Hallo NoNet,

danke, ich habe es installiert, muß mal die beispiele durchackern.

Gruß
Reinhard


  

Betrifft: AW: VBS in Excel von: Falco
Geschrieben am: 04.02.2010 16:46:56

Danke Sepp für die Idee,

aber leider funktioniert das bei mir zumindestens nicht. Denn das XL.... am Anfang sagt VBS ja nur, dass es die Zeile in Excel ausführen soll und somit wäre es meiner Meinung nach nicht sinnig zu versuchen VBS dieses noch einmal zu sagen, oder?

Aber trotzdem besten Dank für Deine Reaktion!


  

Betrifft: XL.Sheets gibt an, dass es sich um ein XL-Objekt von: NoNet
Geschrieben am: 04.02.2010 17:03:17

...handelt !

Hallo Falco,

Deine Vermutung ist FALSCH : Das XL."sagt" VBS nicht, dass die Zeile in Excel ausführen soll, sondern damit referenziert man aus einer "Fremden" Anwendung die XL-Objekte !
Sheets() kennt VBS nicht, daher teilt man VBS mit, dass es sich um ein XL-Objekt handelt : XL.Sheets()

Der Fehler in Josefs Codezeile liegt darin, dass VBS die benannten Parameter (hier: after:=) nicht kennt. Stattdessen muss man die Parameter in der Excel VBA-Standard-Reihenfolge ohne den Parameternamen angeben, dann funktioniert das :

Vor dem Parameter "After:=" gibt es in VBA noch den Parameter "Before:=", den lässt man weg und kennzeichnet mit dem Komma, dass es sich bei XL.Sheets(1) bereits um den nächsten (2.) Parameter der MOVE-Methode handelt :

XL.Sheets("SUM_VERGL").move ,XL.Sheets(1)

Gruß, NoNet


  

Betrifft: AW: VBS in Excel von: Luschi
Geschrieben am: 04.02.2010 16:56:29

Hallo Falco,

das Verschieben von Tabellen funktioniert in diesem Fall so:

XL.Sheets("SUM_VERGL").Move ,XL.Sheets(1)

wobei das Komma wichtig ist. In VBS kann man keine benannten Parameter angeben, sondern muß die Parameter durch entsprechende Anzahl von Komatas ersetzen. Da Move 2 Parameter hat, wird der 1. Parameter (Before) weggelassen und der 2. Parameter übergeben.
Was Du mit der If-Schleife meinst, mußt Du noch mal konkretisieren.

Gruß von Luschi
aus klein-Paris


  

Betrifft: AW: VBS in Excel von: Falco
Geschrieben am: 04.02.2010 17:24:22

Hallo Luschi,

ich bin schwer beeinruckt von Deiner Kompetenten Hilfe und zu tiefsten Dank verpflichtet. Da ich ein wenig verzweifelt bin, erdreiste ich mich auch die bereits angesprochene Schleife zur Diskussion zu stellen! Könntest Du mir sogar die tiefer dahinter liegende Logik erklären die hinter der Anwendung von VBA in VBS liegt!

Wie gesagt, schon jetzt grössten Dank
Falco


XL.Range("C2").Select
For i = 3 To 20 Step 1
If Not (IsEmpty(ActiveCell)) Then
'XL.Range("C" & i).Select
'ElseIf IsEmpty(ActiveCell) Then
Exit For
End If
Next


  

Betrifft: AW: VBS in Excel von: Ramses
Geschrieben am: 04.02.2010 20:09:15

Hallo

Ich denke die Schleife müsste so lauten

For i = 3 To 20 Step 1
If XL.Cells(i, 1) <> "" Then
'Was kommt nun ?
Exit For
End If
Next i

Gruss Rainer