• 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 files openen op basis van een deel van de filenaam (3 posities van filenaam)

Status
Niet open voor verdere reacties.

Henkzier

Gebruiker
Lid geworden
17 nov 2010
Berichten
9
Wie zou mij hiermee kunnen helpen.

Voorbeeld bestandnaam:T232196_2011-03-14_23-57-07_000_SLM.xls

Op basis van de vetgedrukte string 000 in cel (A1) moet dit bestand worden geopend.

Met vriendelijke groet,

Henk
 
Code:
Sub BestandOpenen()
Workbooks.Open "T232196_2011-03-14_23-57-07_" & [A1] & "_SLM.xls"
End Sub

Met vriendelijke groet,


Roncancio
 
Beste Roncancio, het is bijna de oplossing.Het eerste deel "T232196_2011-03-14_23-57-07_" moet variabel zijn (Dus niet van belang).
De rest is precies wat ik bedoel.

Wil je misschien nog even reageren?

Met vriendelijke groet,

Henk
 
Als het variabel is, hoe is dat 1e gedeelte dan samengesteld?

Met vriendelijke groet,


Roncancio
 
T232196_2011-03-14_23-57-07_000_SLM.xls

Het komt er op neer dat alleen gezocht hoeft te worden op het vetgedrukte nummer, hierbij nog z'on filenaam.

T232196_2011-03-24_12-31-33_023_SLM alles binnen de map C:\Users\Henk\Documents\My Dropbox\Excel\Files

Henk
 
Je hebt de hele bestandsnaam nodig om het bestand te kunnen openen.

dus was de vraag van Roncancio hoe het variabel deel is opgebouwd.

als hier geen logisch verband in zit, kun je de hele bestandsnaam in cel A1 zetten.
 
Beste Oeldere,

Ik denk dat ik begrijp wat je bedoelt.
Het is zoals de voorbeelden aangeven, er moet altijd alleen gezocht worden op de 7e,6e en 5 positie van rechts van de (filenaam.
Met vriendelijke groet,

Henk
 
maar dat kan volgens mij niet.

met alleen die gegevens kan excel het bestand niet openen.

geef eens iets meer info.

moeten meerdere bestanden tegelijkertijd worden geopend?

welk bestand staat dan open?

anders even een voorbeeldje, ontdaan van gevoelige info.

dan wordt je vast sneller (en beter) geholpen.
 
Henkzier,

Kijk eens of je hier wat mee kunt.
Je voert in wat je wil - 023 - en je krijgt het gehele getal te zien.

Misschien kun je dit verder uit werken zodat hij de file kan openen.
 

Bijlagen

Laatst bewerkt:
Beste EA en oeldere,

Een bestand uploaden excel of zip wordt geweigerd, ook al is deze kleiner dan 100 Kb.

Middels een excelfunctie wordt T232196_2011-03-24_12-18-35_003_RTA =MIDDEN(E4;29;3) uitgelezen als 003.

Dit moet echter andersom ook mogelijk zijn een filenaam die voldoet aan MIDDEN(E4;29;3) =003 moet toch ook geopend kunnen worden?

Dus uiteindelijk bij het invullen van bijvoorbeeld in cel A1 de waarde 003 moet zorgen dat in de map C:\Users\Henk\Documents\My Dropbox\Excel\Files de betreffende file geopend worden.

Met vriendelijke groet,

Henk
 
Beste EA, op een haar na

Echter het moet gewoon werken in een sheet, dus zonder userform de waarde 003 wordt in Cel A1 handmatig ingevoerd

Gr. Henk
 
Het wil maar niet lukken geloof ik, ik heb even gezocht

Public Sub zoekop_en open()

FullPath = "C:\Users\Henk\Documents\My Dropbox\Excel\Files\"
FileName = "*" & Range("A1")
FileExt = ".xls"

Call OpenFile(FullPath, FileName, FileExt)
End Sub



Dit werkt nog niet, zit dus nog een foutje in maar dit zou het moeten worden aangevuld met dat deze functie ook moet werken met wanneer een waarde wordt ingevuld in A1,A2,A3 tot en met A9
Dus de macro moet voortdurend actief zijn om te kijken of er een file geopend moet worden behalve als de string leeg is.

Gr. Henk
 
Hier houd het voor mij op.
Deze file heb ik vorig jaar gemaakt, was voor een ander doel.

Ik ben maar een amateur, zeker in VBA.

Zoals Oeldere al schreef hij moet de gehelenaam van de file hebben om te openenen.
Nu dit was al voorelkaar maar je wilde geen userform gebruiken.
Ik kreeg het voorelkaar om alleen naar de Cel A1 te kijken.

Nu kom je met het verhaal dat dit van A1 tot A9 moet kunnen, helaas kan ik je niet verder helpen.

Ik zal het verhaal wel blijven volgen, misschien dat ik er ook nog wat aan heb.

Suc6 verder.
 
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1:A9")) Is Nothing Then
    Dim sBst As String
    
        ChDir "C:\Users\Henk\Documents\My Dropbox\Excel\Files\"
        sBst = Dir("*" & Target.Value & "*.xls*")
        Do While sBst <> ""
            Workbooks.Open
            sBst = Dir
        Loop
End If
End Sub

Indien er een cel gewijzigd wordt in het bereik A1 t/m A9 dan wordt het bijbehorende bestand gezocht en geopend.

Met vriendelijke groet,


Roncancio
 
Beste Roncancio,
Ik heb jammer genoeg geen melding gekregen van jou bijdrage, ik ben daarom verder gaan zoeken en met wat aanpassingen het volgende script gebruikt wat werkt.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

Dim fName As String
Dim fPath As String
Dim fullName As String

'Column with xls file names, change to suit
Const xlscol As String = "B"

' Bail out if something is obviously wrong
If Target.Count > 1 Then Exit Sub
If Target.Column <> Columns(xlscol).Column Then Exit Sub
If Target.Row < 2 Then Exit Sub
If IsEmpty(Target) Then Exit Sub

' Cancel = True 'Uncomment if using DoubleClick event

'set path to file: CHANGE TO SUIT
fPath = "C:\Test Folder\"

'get file name from cell & adjust for formatting
fName = ActiveCell.Value

'add the extra 'junk'
fName = "T??????_????-??-??_??-??-??_" & fName & "_???" & ".xls"

'try to get the full path and name from the folder
fullName = fPath & Dir(fPath & fName)

If fullName = fPath Then
'file not found message
MsgBox "No such filename as " & fName & vbCrLf & _
"In Path " & fPath, vbExclamation
Else
'open it
ActiveWorkbook.FollowHyperlink fullName
End If

End Sub

Natuurlijk wil ik het script van jou ook graag eens proberen maar dat geeft nog een foutmelding "Argument is niet optioneel"

Met vriendelijke groet,

Henk
 
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1:A9")) Is Nothing Then
    Dim sBst As String
    
        ChDir "C:\Users\Henk\Documents\My Dropbox\Excel\Files\"
        sBst = Dir("*" & Target.Value & "*.xls*")
        Do While sBst <> ""
            Workbooks.Open [B][COLOR="red"]sBst[/COLOR][/B]
            sBst = Dir
        Loop
End If
End Sub

Ik was vergeten om het rode gedeelte toe te voegen.
VBA moet natuurlijk wel weten welk bestand geopend moet worden.

Met vriendelijke groet,


Roncancio
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan