• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Msgbox Scriptbox

Status
Niet open voor verdere reacties.

SUVERMO

Gebruiker
Lid geworden
22 dec 2019
Berichten
481
Hallo experten
heeft iemand een oplossing om met de 2° MsgBox hetzelfde resultaat te bekomen als met de 1° MsgBox. Nu geeft dit een foutmelding

Code:
Sub TEXTBOX()
'1° MsgBox
MsgBox "line1" & vbCrLf & _
       "line2" & vbCrLf & _
       "line3" & vbCrLf & _
       "line4"
'
vbs = Environ("temp") & "\TEXTBOX.vbs"
    Open vbs For Output As #1
    Print #1, "MsgBox " & Chr(34) & _
       "line1" & vbCrLf & _
       "line2" & vbCrLf & _
       "line3" & vbCrLf & _
       "line4" & _
       Chr(34)
    Close #1
    Shell ("wscript " & vbs)
       
End Sub
 
Kijk in het bestand TEXTBOX.vbs, dan zal je zien dat je e.e.a. mist dat in de Print opdracht meegegeven dient te worden.
 
bedankt voor de reactie maar ik zie de fout niet.
heb nog geprobeerd, maar de 5° MsgBox krijg ik niet goed
kun jij een tipje van de sluier lichten?

Code:
Sub TEXTBOX()
'1° MsgBox
MsgBox "line1" & vbCrLf & _
       "line2" & vbCrLf & _
       "line3" & vbCrLf & _
       "line4"
       
'2° MsgBox
vbs = Environ("temp") & "\MsgBox2.vbs"
    Open vbs For Output As #1
    Print #1, "MsgBox " & Chr(34) & "2° MsgBox " & Chr(34)
    Close #1
    Shell ("wscript " & vbs)
    
'3° MsgBox
vbs = Environ("temp") & "\MsgBox3.vbs"
    Open vbs For Output As #1
    Print #1, "MsgBox " & Chr(34) & "3° MsgBox " & Chr(34)
    Close #1
    Shell ("wscript " & vbs)
    
    
'4° MsgBox
vbs = Environ("temp") & "\MsgBox4.vbs"
    Open vbs For Output As #1
    Print #1, "MsgBox " & Chr(34) & "4° MsgBox " & Chr(34)
       '"line1" & vbCrLf & _
       '"line2" & vbCrLf & _
       '"line3" & vbCrLf & _
       '"line4" & _
       'Chr(34)
    Close #1
    Shell ("wscript " & vbs)
       
'5° MsgBox
vbs = Environ("temp") & "\MsgBox5.vbs"
    Open vbs For Output As #1
    Print #1, "MsgBox " & Chr(34) & "line1" & Chr(10) & "line2" & Chr(10) & "line3" & Chr(10) & "line4" & Chr(34)
    Close #1
    Shell ("wscript " & vbs)
       
End Sub
 
Wat ik al zei, kijk in de TEXTBOX.vbs
Daar kan je duidelijk zien dat syntax niet compleet is.
 
Code:
MsgBox "line1" & vbCrLf & _
       "line2" & vbCrLf & _
       "line3" & vbCrLf & _
       "line4"

Schrijf je gemakkelijker zó:

Code:
MsgBox join(array("line1" ,"line2", "line3", "line4"),vbCrlf)
of zó
Code:
MsgBox replace("line1|line2|line3|line4","|",vbCrlf)
 
alvast bedankt voor de aangegeven codes, dergelijke is nieuw voor mij.
hoe is dit te gebruiken worden in onderstaande scriptcode?
Code:
Sub Test()
'5° MsgBox
vbs = Environ("temp") & "\MsgBox5.vbs"
    Open vbs For Output As #1
    Print #1, "MsgBox " & Chr(34) & "line1" & Chr(10) & "line2" & Chr(10) & "line3" & Chr(10) & "line4" & Chr(34)
    Close #1
    Shell ("wscript " & vbs)
End Sub
 
Je moet natuurlijk wel rekening houden met de Strings in Strings:
Code:
Sub Test()
    [COLOR="#008000"]'5e MsgBox[/COLOR]
    vbs = Environ("temp") & "\MsgBox5.vbs"
    Open vbs For Output As #1
    Print #1, "MsgBox " & Join(Array("""line1""", """line2""", """line3""", """line4"""), " & VbCrLf & _" & vbCrLf)
    Close #1
    Shell ("wscript " & vbs)
End Sub
 
Dat werkt prima, heel veel dank
Maar, wat als line1, line2, line3 en line4 gedefinieerde namen zijn er de inhoud van deze namen moet komen
 
Wat is de zin van het gebruik van VBS als je in VBA werkt ?
 
bedoeling is volgende

ik ben bezig met
een geopend bestand opslaan onder een andere naam
er word een snelkoppeling naar het bestand met de andere naam op het bureaublad geplaatst
het geopend bestand word gesloten
de gemaakte msgbox is dan nog zichtbaar op het bureaublad
 
Maar, wat als line1, line2, line3 en line4 gedefinieerde namen zijn er de inhoud van deze namen moet komen
Dat had je natuurlijk zelf kunnen verzinnen:
Code:
Sub Test()
    [COLOR="#008000"]'5e MsgBox[/COLOR]
    Line1 = """line1"""
    Line2 = """line2"""
    Line3 = """line3"""
    Line4 = """line4"""
    
    vbs = Environ("temp") & "\MsgBox5.vbs"
    Open vbs For Output As #1
    Print #1, "MsgBox " & Join(Array(Line1, Line2, Line3, Line4), " & VbCrLf & _" & vbCrLf)
    Close #1
    Shell ("wscript " & vbs)
End Sub
 
Laatst bewerkt:
hallo,

het lukt mij niet
hierbij een voorbeeldbestand waaruit moet blijken waarvoor ik het wil gebruiken,

als macro "opslaan_snelkoppeling" word uitgevoerd is het volgende al goed gelukt
het nieuwe bestand is met de juiste naam is in de map c:\TestDierenTest bewaard
de snelkoppeling naar het nieuwe bestand staat op het bureaublad
"de textbox is echter niet zoals gewenst"
 

Bijlagen

Zo:
Code:
tekst1 = Chr(34) & Range("tekst1") & Chr(34)
tekst2 = Chr(34) & Range("tekst2") & Chr(34)
tekst3 = Chr(34) & Range("tekst3") & Chr(34)
tekst4 = Chr(34) & Range("tekst4") & Chr(34)

Of zo, wat je wilt:
Code:
tekst1 = """" & Range("tekst1") & """"
tekst2 = """" & Range("tekst2") & """"
tekst3 = """" & Range("tekst3") & """"
tekst4 = """" & Range("tekst4") & """"
 
Laatst bewerkt:
Waarom laat je een msgbox via een moeilijke/onmogelijke omweg met VBS verschijnen,
als je ook makkelijk een msgbox via VBA kan laten verschijnen?
 
Goedenavond Edmoor,

bedankt voor de uitstekende service, ik denk dat het bijna klaar is om te kunnen gebruiken waarvoor het bedoeld was.
ik zal U het resultaat bezorgen als het klaar is.
 
Graag gedaan.
Maar het blijft zo natuurlijk houtje touwtje werk.
Wellicht dat je de vragen van de anderen kan beantwoorden en dat er een betere oplossing voor je komt.
Prima natuurlijk als je het zo wilt blijven gebruiken.
 
Wat is dan de zin van die MsgBox ?
bedoeling is volgende

ik ben bezig met
een geopend bestand opslaan onder een andere naam
er word een snelkoppeling naar het bestand met de andere naam op het bureaublad geplaatst
het geopend bestand word gesloten
de gemaakte msgbox is dan nog zichtbaar op het bureaublad

als het klaar is zal ik het bezorgen.
 
Waarom laat je een msgbox via een moeilijke/onmogelijke omweg met VBS verschijnen,
als je ook makkelijk een msgbox via VBA kan laten verschijnen?

ik ben bezig met
een geopend bestand opslaan onder een andere naam
er word een snelkoppeling naar het bestand met de andere naam op het bureaublad geplaatst
het geopend bestand word gesloten
de gemaakte msgbox is dan nog zichtbaar op het bureaublad

als het klaar is zal ik het bezorgen.
 
Maar waarom dan niet gewoon die messagebox in de Workbook_BeforeClose?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan