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

Excel bestand openen door enter op cel

Status
Niet open voor verdere reacties.

Cees1951

Gebruiker
Lid geworden
13 nov 2006
Berichten
40
Dag allen,

Wat ik graag wil is dat als ik klik op een cel in Bestand A met daarin de naam van een bestand B (of C etc), dat bestand B zich opent.

Lang geleden heb ik (hoogstwaarschijnlijk ook hier) op Helpmij de volgende oplossing gevonden:

eerst zorgen dat een Enter tot een actie leidt. Dus in Workbooks:

Private Sub Workbook_Open()
Application.OnKey "{RETURN}", "macrobijRETURN"
End Sub
________________________________________________
'om te zorgen dat dit niet tevens voor alle ander excel bestanden gaat gelden:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.OnKey "{RETURN}"
End Sub
_____________________________________________________
Daarna in een module de volgende code:

Sub macrobijRETURN()

ChDir _
"D:\Data\Excel Voorbeelden"

Workbooks.Open Filename:=ActiveCell

End Sub
___________________________________________________________________
Toen(!) deed het programma wat ik wilde. Nu niet meer. Systeem zegt fout 1004 en dat het bestand niet gevonden kan worden. Foutoplossing geeft
Workbooks.Open Filename:=ActiveCell
als oorzaak.

Kan iemand mij een zetje in de goede richting geven?

Bij voorbaat dank en groet
 
Code:
Private Sub Worksheet_Activate()
Application.OnKey "{RETURN}", "macrobijRETURN"
End Sub

Sub macrobijRETURN()
If Intersect(ActiveCell, Range("A1")) Is Nothing Then Exit Sub
ChDir "D:\Data\Excel Voorbeelden"
Workbooks.Open Filename:=ActiveCell
End Sub

Deze werkt enkel voor cel A1 in het werkblad waar je deze code plakt.

Cobbe
 
Een open deur maar ik trap 'm toch in: bestaat het bestand wel?:p

Bij mij werkt het namelijk prima.
In bijgevoegd bestand heb ik de code geplaatst.
De code zoekt overigens in de C-directory.

Met vriendelijke groet,


Roncancio
 

Bijlagen

Er ontbreekt waarschijnlijk ergens een "\" (indien het bestand bestaat natuurlijk).
Ofwel zet je die voor de bestandsnaam ofwel wijzig je de folder waarin hij gaat zoeken.

Dus

Code:
ChDir _
"D:\Data\Excel Voorbeelden[COLOR="Red"]\[/COLOR]"
 
Daq Cobbe, Roncancio en Finch (resp),

Dank voor jullie moeite.
Het is hoopgevend dat het bij jullie allemaal werkt. Tegelijkertijd teleurstellend dat dat bij mij niet het geval is.
Het moet dan aan mijn pc liggen. Of aan de MS versie (ik gebruik Excel 2003, maar ik kan me haast niet voorstellen dat het daaraan ligt).

Voordat ik er de brui aan geef, bijgaand het gehele dingetje zoals IK dat heb opgeschreven (en dat bij mij dus niet werkt; ook niet op een andere pc hier in huis)..
Ik heb voor het gemak ook de oplossing van Cobbe bij die van Roncancio geplakt. Maar als ik met F8 een voor een de stapjes maak, blijven ze beide hangen op "Workbooks.Open Filename:=ActiveCell".

En over die open deur: terechte en dus goed vraag natuurlijk. Maar Bestand 1. xls en Bestand 2. xls bestaan ECHT.

Nou, meer weet ik er niet op te zeggen. Ik hoop nu maar dat jullie een foutje zien dat ik niet zie.(sic) .

Groet
 

Bijlagen

Werkt deze code?

Code:
Sub macrobijRETURN()
          
        
    Workbooks.Open Filename:="D:\Data\Excel Voorbeelden\" & ActiveCell
       
End Sub
 
Dag Finch,

Dat is snel! Maar nee, helaas. Nu blijft hij op jouw regel hangen (Zelfde fout dus met zelfde boodschap; zie bijlage voor de duidelijkheid).

Werkt deze regel bij jou wel dan? (????!!:confused:)
 
Dag Finch,

Dat is snel! Maar nee, helaas. Nu blijft hij op jouw regel hangen (Zelfde fout dus met zelfde boodschap; zie bijlage voor de duidelijkheid).

Werkt deze regel bij jou wel dan? (????!!:confused:)

Hmm. Als het nu eens omdraai: Je opent handmatig het Excelbestand en je kijkt in Eigenschappen van het bestand naar het volledige pad.
Dat gehele pad (dus inclusief de bestandsnaam) kopieer je naar de macro.
Vervolgens kijk je of je het bestand kan openen met de macro.
Lukt dat dan ga je van daaruit de macro flexibeler maken.
Dus bijvoorbeeld:

Workbooks.Open Filename:="D:\Data\Excel Voorbeelden\Bestand1.xls"

wordt dan daarna

Workbooks.Open Filename:="D:\Data\Excel Voorbeelden\" & ActiveCell

Met vriendelijke groet,


Roncancio
 
Wat ik graag wil is dat als ik klik op een cel in Bestand A met daarin de naam van een bestand B (of C etc), dat bestand B zich opent.
Cees 1951, Waarom wil je dit met VBA afhandelen? Excel heeft daar toch de prachtige functionaliteit 'hyperlink' voor? Die kan je zo invoegen in je cel en je hoeft er geen letter voor te programmeren....

Groet, Leo
 
Beste Roncancio,

Ik snap je stappenplan. Maar ook de eerste horde is teveel:

'stap1
Workbooks.Open Filename:="D:\Data\Excel Voorbeelden\Bestand1.xls"

je voelt 'm al: deze regel wordt geel en de foutboodschap dat bestand niet te vinden is, verschijnt (NB Ik heb de spatie tussen 'Bestand' en '1' weggehaald in de ijdele hoop dat het daar aan zou liggen.. En ja, dat heb ik ook gedaan bij Bestand1 zelf!).

Nog andere suggesties misschien?

PS Bij mij is sprake van een opkomende lichte irritatie. Komt ook omdat ik het gevoel heb dat deze vraag voor jou en jullie als experts nou niet bepaald 'groots en meeslepend' is en waar je je tanden eens in kunt zetten. Als dat bij jou ook het geval is moet je het zeggen hoor!

Aan Ginger: ik heb 'an sich' niets met VBA. Als het makkelijk kan dan graag. Zolang het maar werkt. Ik zal eens kijken naar jouw hyperlink-idee. Was ik zelf niet op gekomen.
Bedankt voor het meedenken
 
Beste Roncancio,

Ik snap je stappenplan. Maar ook de eerste horde is teveel:

'stap1
Workbooks.Open Filename:="D:\Data\Excel Voorbeelden\Bestand1.xls"

je voelt 'm al: deze regel wordt geel en de foutboodschap dat bestand niet te vinden is, verschijnt (NB Ik heb de spatie tussen 'Bestand' en '1' weggehaald in de ijdele hoop dat het daar aan zou liggen.. En ja, dat heb ik ook gedaan bij Bestand1 zelf!).

Nog andere suggesties misschien?

PS Bij mij is sprake van een opkomende lichte irritatie. Komt ook omdat ik het gevoel heb dat deze vraag voor jou en jullie als experts nou niet bepaald 'groots en meeslepend' is en waar je je tanden eens in kunt zetten. Als dat bij jou ook het geval is moet je het zeggen hoor!

Aan Ginger: ik heb 'an sich' niets met VBA. Als het makkelijk kan dan graag. Zolang het maar werkt. Ik zal eens kijken naar jouw hyperlink-idee. Was ik zelf niet op gekomen.
Bedankt voor het meedenken

De irritatie snap ik niet helemaal.
Als je nu met de macro-recorder het bronbestand opent en vervolgens die macro aanpast volgens mijn laatste bericht.
Als het handmatig lukt, dan moet je ook lukken met de macro.

Met vriendelijke groet,


Roncancio
 
Aan Ginger,

Ja dat met die hyperlink werkt natuurlijk prima. Alleen er is 1 'maar':
ik weet niet VAN TEVOREN op WELKE regel (wel welke kolom trouwens) WELK bestand komt te staan. Het is immers de uitkomst van een soort query.

Vandaar. Kijk ook naar mijn oorspronkelijke vraagstelling: het gaat niet om het openen van Bestand B , maar ook om C, D, enz

(Ik zeg dit allemaal met het gebruikelijke voorbehoud dat ik beslist ZEER 'junior' ben)
 
DOORBRAAK!

Beste Roncancio,
Dankzij je geduld en aandacht heb ik gevonden wat ik de hele tijd verkeerd deed, nl het Bestand1.xls te noemen. Het gaat om die toevoeging xls.
Pas toen ik handmatig de macro opnam (jouw idee, was ik niet op gekomen), zag ik het:

'stap1
'Workbooks.Open Filename:="D:\Data\Excel Voorbeelden\Bestand1.xls"
'Workbooks.Open Filename:="D:\Data\Excel Voorbeelden\Bestand1.xls.xls"

'stap2
'Workbooks.Open Filename:="D:\Data\Excel Voorbeelden\" & ActiveCell

'stap3
Workbooks.Open Filename:=Sheets("Blad1").Range("C1").Value & "\" & ActiveCell

Je ziet dan dat op de 2e regel onder stap 1 (de macro-opname) 2x 'xls' staat. Dat was behoorlijk oenig, maar vanaf dat moment kon ik eindelijk stap 2 en 3 zetten, die ik uit respect meestuur. (Even toelichten misschien: de uiteindelijke bedoeling is dat de bestanden van de medewerkers van het bedrijf (alle in het zelfde format) in een voor mij van tevoren niet bekende folder worden gezet. Daarom moet het pad variabel zijn. En vandaar dus het pad in cel C1 van werkblad 1).

Afijn. Case closed.
Hartelijk dank opnieuw voor het meedenken en de moeite. Vooral Ron. Omdat je niet wilde horen dat ik me zo langzamerhand bezwaard voelde een expert als jij lastig te vallen met zulke oenige vragen. Gelukkig is je credo onder aan je berichten bemoedigend voor mensen zoals ik.

Wat een credo betreft: zelf moet ik, als ik mij noodzakelijkerwijs begeef in de voor mij even fascinerende als duistere wereld van Excel/VBA, vaak denken aan wat iemand mij ooit vertelde over het verschil tussen een psychotherapeut en een psychiater:
"een therapeut is iemand die zoekt naar een zwarte kat in het donker; een psychiater is iemand die zoekt naar een zwarte kat in het donker DIE ER NIET IS"

Jij bent de therapeut; ik vrees dat ik de psychiater ben...
Groet
 
DOORBRAAK!

Beste Roncancio,
Dankzij je geduld en aandacht heb ik gevonden wat ik de hele tijd verkeerd deed, nl het Bestand1.xls te noemen. Het gaat om die toevoeging xls.
Pas toen ik handmatig de macro opnam (jouw idee, was ik niet op gekomen), zag ik het:

'stap1
'Workbooks.Open Filename:="D:\Data\Excel Voorbeelden\Bestand1.xls"
'Workbooks.Open Filename:="D:\Data\Excel Voorbeelden\Bestand1.xls.xls"

'stap2
'Workbooks.Open Filename:="D:\Data\Excel Voorbeelden\" & ActiveCell

'stap3
Workbooks.Open Filename:=Sheets("Blad1").Range("C1").Value & "\" & ActiveCell

Je ziet dan dat op de 2e regel onder stap 1 (de macro-opname) 2x 'xls' staat. Dat was behoorlijk oenig, maar vanaf dat moment kon ik eindelijk stap 2 en 3 zetten, die ik uit respect meestuur. (Even toelichten misschien: de uiteindelijke bedoeling is dat de bestanden van de medewerkers van het bedrijf (alle in het zelfde format) in een voor mij van tevoren niet bekende folder worden gezet. Daarom moet het pad variabel zijn. En vandaar dus het pad in cel C1 van werkblad 1).

Afijn. Case closed.
Hartelijk dank opnieuw voor het meedenken en de moeite. Vooral Ron. Omdat je niet wilde horen dat ik me zo langzamerhand bezwaard voelde een expert als jij lastig te vallen met zulke oenige vragen. Gelukkig is je credo onder aan je berichten bemoedigend voor mensen zoals ik.

Wat een credo betreft: zelf moet ik, als ik mij noodzakelijkerwijs begeef in de voor mij even fascinerende als duistere wereld van Excel/VBA, vaak denken aan wat iemand mij ooit vertelde over het verschil tussen een psychotherapeut en een psychiater:
"een therapeut is iemand die zoekt naar een zwarte kat in het donker; een psychiater is iemand die zoekt naar een zwarte kat in het donker DIE ER NIET IS"

Jij bent de therapeut; ik vrees dat ik de psychiater ben...
Groet


als ik een wilde gok mag doen naar de oorzaak van je dubbel extensie probleem. Dan denk ik dat in de windows verkenner de opties "gekende bestandextensies niet tonen" (of iets dergelijks) aangevinkt is, waardoor de xls extensie standaard verborgen staat, maar doordat je die ook handmatig hebt toegevoegd krijg je dus een bestandsnaam met dubbele extensie.
Als dat zo is kan je misschien even de "oorzaak" van je probleem aanpakken, ipv de "gevolgen" bestrijden. Dus best die handmatige extensie verwijderen in dat geval.
 
Ja Finch.
Dank. Zo is het: oorzaak aanpakken, niet de gevolgen.
Heb ik inmiddels gedaan en het gaat allemaal goed.

(Goh, wat makkleijk allemaal als je het eenmaal doorhebt.. ).

Groet
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan