• 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.

VBA code voor openen bestand in dezelfde map

Status
Niet open voor verdere reacties.

shalhevet

Gebruiker
Lid geworden
9 okt 2007
Berichten
245
Hallo,

Ik heb twee Excel bestanden in dezelfde map zitten. Nu wil ik in de ene bestand een command button maken om de andere bestand openen.

Wat ik niet wil is de volledige "path" van de map in de code geven.

Ik heb al geprobeerd om de path te veranderen naar Activeworkbook.path maar dat werkt niet.

Wat doe ik verkeerd?

De code die ik heb is:

Code:
Public Sub StartExeWithArgument1()
    Dim strProgramName As String
    Dim strArgument As String

    strProgramName = "C:\Users\Naam\Excel\voorbeeld.xlsm"
    strArgument = "/G"

    Call Shell("""" & strProgramName & """ """ & strArgument & """", vbNormalFocus)
            
ThisWorkbook.Save
Application.Quit
    
End Sub

Deze code heb ik op internet gevonden maar ik begrijp niet waar de strArgument voor staat. Ik had deze proberen te verwijderen maar kreeg een foutmelding. Als iemand ook hier een antwoord op weet lees ik het graag.

Alvast bedankt voor jullie hulp.
 
Als het te openen bestand ook een Excel bestand is dan heeft de code die je plaatste er niets mee te maken.
Gebruik dan dit:
Workbooks.Open ThisWorkbook.Path & "\Tweede document.xlsx"
 
Het te openen bestand

Bedankt voor je reactie. Het te openen bestand is een exe bestand. Ik zie dat ik een code heb geplaatst met een xls bestand maar het moet dus exe zijn.
 
In je start post heb je het over 2 excel bestanden in dezelfde map. Nu begrijp ik het even niet meer. Leg eerst goed uit wat de situatie is. En een .exe is geen bestand maar een programma.
 
Duidelijker uitleg

Ik heb een Excel bestand waar een command button staat met een link naar een andere Excel bestand welke als exe programma is opgeslagen. Alle twee bestanden zijn in dezelfde map opgeslagen. Nu wil ik in mijn vba code niet de volledige adres opgeven want de eind gebruiker mag zelf bepalen waar de bestanden op de harde schijf opgeslagen moeten worden.

Ik hoop dat het nu iets duidelijker is :-)
 
Een Excel bestand als exe opgeslagen? Ik begrijp wel wat je wil, maar een Excel bestand als exe opslaan om deze dan als uitvoerbaar programma te starten heb ik nog nooit van gehoord.
 
Klinkt mij ook nogal vreemd in de oren.
Kijk eens wat dit doet:
Code:
Sub tsh()
    Dim strProgramName As String

    strProgramName = ThisWorkbook.Path & "\Mijnexcelcutable.exe"
    Call Shell(strProgramName, vbNormalFocus)
    ThisWorkbook.Save
    Application.Quit
End Sub
 
Kijk op XLS padlock

Ik heb een software waarmee ik Excel bestanden om kan zetten in exe programma. Hierdoor wordt als men op de exe klikt een 'stand alone' Excel sessie geopent waarbij alle menu's van Excel niet zichtbaar zijn.

Maar dat is niet zo belangrijk, stel dat het geen twee "excel" bestanden betreft, stel dat het gewoon een link is naar bijvoorbeeld Adobe Acrobat. Hoe kan ik in mijn code de "path" veranderen zodat Excel snapt dat de exe programma in dezelfde map is als de Excel bestand zelf.
 
Zie #7.

Ook ben ik wel benieuwd welke software je daarvoor gebruikt.

@Timshel:
Excelcutable.

Leuk gevonden :D
 
Laatst bewerkt:
Software

Heb ik in de title al gezegd (#8). Het programma heet XLS Padlock

https://www.xlspadlock.com/

Timshel, bedankt voor de code maar die werkt niet. de regel

Code:
Call Shell(strProgramName, vbNormalFocus)

wordt gekleurd als fout.
 
Ik heb het uitgeprobeerd met een testprogrammaatje en kreeg geen fout. De executable werd uitgevoerd.
Het je de tekenreeks "\Mijnexcelcutable.exe" wel vervangen door je eigen programmanaam?
Zo ja, welke foutmelding krijg je?
 
Oeps :-(

Sorry, ik had het bestand zelf vergeten te plaatsen in dezelfde map hahaha.

De code werkt perfect.

Hartstikke bedankt.

Nee, sorry, de code doet het toch nog niet. De fout melding die ik krijg is:

Run-timer error '5':
Invalid procedure call or argument

Als ik dan kijk waar het probleem is wordt deze regel gekleurd:

Code:
Call Shell(strProgramName, vbNormalFocus)
 
Laatst bewerkt:
Laat de hele code van die knop eens zien.
Welke versie van Office gebruik je?
 
Nee dat is het niet

Nee, dan krijg ik een andere foutmelding:

Compile error:

Syntax error

Ik denk dat ik weet wat het probleem is. Als een gewone Excel bestand werkt de code wel heel goed. Maar wanneer ik de Excel bestand met behulp van XLS Padlock naar een EXE programma omzet wordt het (denk ik) niet meer als een "workbook" gezien...

Enig idee of mijn theorie klopt? en zo ja, enig idee hoe ik dit kan oplossen?

Want de bedoeling is dat de eind gebruiker alleen exe krijgt en geen Excel bestanden.
 
Ik had m'n bericht ook al aangepast maar je bent te snel voor mij ;)

De gebruiker heeft wel Excel?
 
Kun je eens zo'n naar .exe geconverteerd test-excel-bestand plaatsen?
Je moet het bestand wel eerst zippen want .exe wordt niet geaccepteerd op dit forum.
 
Hahaha

Niet te snel.. gewoon enthousiast... ik vind het altijd razend interessant en leer er zoveel van :-)

Ik voeg even een simpele voorbeeld van het bestand.

Ik heb een deel van de code onder module 1 en de rest onder sheet 1

Ik gebruik Excel 2010.

Bekijk bijlage Voorbeeld.xlsm

Het lukt me niet de gezipte exe bestand uploaden :-( (Ik gebruik winrar hiervoor).

Edmoor, de link die je stuurde is voor mensen die graag willen zien hoe XLS padlock werkt als exe programma. Dat helpt mij niet met mijn probleem :-( Maar toch bedankt voor het zoeken en meedenken :-)
 
Laatst bewerkt:
Je voorbeeld doet het hier prima met de voorbeeld exe van XLS Padlock.
 
Dat kan

Waarschijnlijk werkt mijn voorbeeld omdat het een excel bestand is.

Maar als ik een exe overschakkel en dan probeer de tweede exe te openen krijg ik de fout melding.

Ik heb nu gevonden hoe ik een exe zonder restricties moet opslaan en wil deze als voorbeeld uplaoden maar dat lukt niet. Welke programma moet ik gebruiken voor het zippen van exe programma's? Ik gebruik nu winrar maar dat wordt niet geaccepteerd hier.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan