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

file openen op USB stick

Status
Niet open voor verdere reacties.

nonono

Gebruiker
Lid geworden
28 jan 2009
Berichten
289
Wat ik wil:
- via een zoekaktie vind ik de waarde "OPEN" op het werkblad
- deze waarde is gerelateerd aan een file "OPEN.xls" op de USB stick
- vervolgens de waarde van de cel gebruiken om de file "OPEN.xls" in de folder "FILES" te openen

Bekijk bijlage bestand openen USB stick.xls

Met de knop"Bestand?" wordt gezocht op "OPEN".
Vervolgens moet knop 3 het bestand op de USB stick openen.
Om te testen heb ik geprobeerd zowel:
Code:
Workbooks.Open Filename:="K:\FOLDERS\"fn" & ".xls""
als
Code:
Workbooks.Open Filename:="K:\FOLDERS\"OPEN" & ".xls""
Maar dit geeft syntax error.

Een 2° vraag hieraan gekoppeld is:
- op de PC is de USB stick letter K
- op de laptop is dit letter E
Is het ook mogelijk dat de code zodanig is, dat de USB stick automatisch gevonden wordt?

Groet Nono
 
Code:
Workbooks.Open Filename:="K:\FOLDERS\OPEN.xls"
 
Zo word tinderdaad de file geopend.
Maar OPEN.xls is toch hetzelfde als “OPEN” & “.xls” ?

En is het ook mogelijk dat de code zodanig is, dat de USB stick automatisch gevonden wordt?

Groet Nono
 
Even verder geprobeerd met “concatenation”.

Code:
Private Sub CommandButton3_Click()
   CommandButton3.Caption = "Open"
     Dim fn As Variant
     Dim file As Variant
     fn = strfind
     file = fn & ".xls"
    ChDir "K:\FOLDERS"
    Workbooks.Open Filename:="K:\FOLDERS\file"
End Sub

"strfind" komt uit de voorafgaande zoekaktie

Onder de knop “Open” wordt de filenaam OPEN.xls gegenereerd:
Code:
file = fn & ".xls"
Dit heb ik gecheckt met “?file” in “ Immediate Window” en dit toont de naam OPEN.xls.
Maar vervolgens een fout melding in:
Code:
Workbooks.Open Filename:="K:\FOLDERS\file"
Uiteindelijk is het de bedoeling om met de gegenereerde filenaam de bijbehorende file te openen.
Wat gaat er mis?

Groet Nono
 
File wordt zo als tekst gezien. Dus beter is:
Code:
    Workbooks.Open Filename:="K:\FOLDERS\" & file

Met vriendelijke groet,


Roncancio
 
Bedankt voor deze oplossing. :thumb:
Ik ga nu verder op zoek of het mogelijk is dat de USB stick automatisch gevonden wordt.

Nogmaals bedankt. :d

Groet Nono
 
Code:
Sub tst()
 For Each dr In CreateObject("Scripting.FileSystemObject").Drives
    If dr.DriveType = 1 And dr.DriveLetter <> "A" Then
        Workbooks.Open dr.DriveLetter & ":\FOLDERS\" & file
    End If
Next
End Sub
 
Helemaal top! Zo is het een stuk makkelijker om op een system met andere drive letter voor de USB stick te werken.
Bedankt

Groet Nono :d :d
 
Het is top zolang de volledige naam gebruikt wordt.
In het voorbeeld worden een aantal bestanden genoemd, die op de USB drive staan.
Klik op “Zoek bestand” bijv. aardappel, dan wordt met “Openen 1” het bestand aardappel.xls geopend.
Zoeken op een deel van de naam bijv. “aard”, dan wordt het bestand aardappel gevonden, maar wordt niet geopend met “Openen 1”. Reden: kan bestand aard.xls niet vinden.

Vervolgens in macro “Openen 2” de volgende 2 regels toegevoegd:
Code:
 Dim strfind As String
…
Cells.Find(What:=strfind, After:=ActiveCell, LookIn:=xlValues, LookAt:= _
        xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _
        False, SearchFormat:=False).Activate
…
Een zoekactie gevolgd door “Openen 2” geeft foutmelding. Reden: kan bestand “.xls” niet vinden.

Met “Openen 1” wordt de celinhoud niet gebruikt als het gaat om een deel van de naam.
“Openen 2” reageert in het geheel niet op de zoekactie.

Wat gaat er mis?

Groet Nono

Bekijk bijlage openen op USB drive.xls
 
Het is eenvoudiger dan ik dacht en toevoegen van de volgende regel is voldoende:
Code:
strfind = ActiveCell.Value

De macro voor “Openen 1” wordt dan:
Code:
Private Sub CommandButton3_Click()
   CommandButton3.Caption = "Openen 1"
     Dim fn As Variant
     Dim file As Variant
     strfind = ActiveCell.Value
     fn = strfind
     file = fn & ".xls"
 For Each dr In CreateObject("Scripting.FileSystemObject").Drives
    If dr.DriveType = 1 And dr.DriveLetter <> "A" Then
        Workbooks.Open dr.DriveLetter & ":\FOLDERS\" & file
    End If
 Next
End Sub

Groet Nono
 
Waarom al die variabelen ?
Code:
Private Sub CommandButton3_Click()
   CommandButton3.Caption = "Openen 1"
 For Each dr In CreateObject("Scripting.FileSystemObject").Drives
    If dr.DriveType = 1 And dr.DriveLetter <> "A" Then
        Workbooks.Open dr.DriveLetter & ":\FOLDERS\" & ActiveCell.Value & ".xls"
    End If
 Next
End Sub
 
De oplossing van de expert. Dit is inderdaad eenvoudiger.

Bedankt Nono :thumb:
 
Nog een aanvullende vraag hieraan gekoppeld.
Het bestand “aardappel.xls” is gekoppeld aan “Categorie” (kolom D)
Als ik zoek met een trefwoord uit de kolom Categorie, dan moet het erbij behorende bestand uit kolom B geopend worden.
Hoe aktiveer je de cel in kolom B na het resultaat van de zoekactie in kolom D?

Groet Nono

Bekijk bijlage openen op USB drive_v2.xls
 
Laatst bewerkt:
De vraag is opgelost met de volgende regel:
Code:
Range("B" & (ActiveCell.Row)).Select
en de macro is dan:
Code:
Private Sub CommandButton3_Click()
   CommandButton3.Caption = "Open bestand"
 Range("B" & (ActiveCell.Row)).Select
 For Each dr In CreateObject("Scripting.FileSystemObject").Drives
    If dr.DriveType = 1 And dr.DriveLetter <> "A" Then
        Workbooks.Open dr.DriveLetter & ":\FOLDERS\" & ActiveCell.Value & ".xls"
    End If
 Next
End Sub
 
Code:
Private Sub CommandButton3_Click()
 CommandButton3.Caption = "Open bestand"
 For Each dr In CreateObject("Scripting.FileSystemObject").Drives
    If dr.DriveType = 1 And dr.DriveLetter <> "A" Then
        Workbooks.Open dr.DriveLetter & ":\FOLDERS\" & [COLOR="red"]Range("B" & ActiveCell.Row).Value [/COLOR]& ".xls"
    End If
 Next
End Sub
 
Inderdaad nog beter. Ik heb hier niets aan toe te voegen.

Bedankt,

Groet Nono :thumb: :thumb:
 
Na het afsluiten van een bestand moet vervolgens weer een nieuw bestand gemaakt worden.
Daartoe moet het bestand “nieuw.xls” geopend worden vanaf de USB drive.
Het bestand wordt inderdaad afgesloten, maar het nieuwe niet geopend.
Hoe verder?

Code:
Private Sub CommandButton9_Click()
 CommandButton9.Caption = "nieuw"
   ActiveWorkbook.Close
 For Each dr In CreateObject("Scripting.FileSystemObject").Drives
    If dr.DriveType = 1 And dr.DriveLetter <> "A" Then
        Workbooks.Open dr.DriveLetter & ":\FOLDERS\nieuw.xls"
  End If
 Next
End Sub

Groet Nono
 
Open eerst je nieuwe bestand alvorens het actieve bestand te sluiten
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan