keuze laten maken in code

Status
Niet open voor verdere reacties.

Ad4Jansen

Gebruiker
Lid geworden
20 jun 2007
Berichten
130
Heren/dames,

Ik ben vorige week overgestapt op 2007 en krijg nu te maken met een andere extenties

Mijn oude bestanden zijn allemaal .XlS bestanden en mijn nieuwe worden .xlsm.

nu liet ik mijn documenten openen dmv een code. (welke ik nu aan het verknallen ben :o:evil:)


Code:
Sub bestandopenen()
'
'Maakt de keuze of het werk gereed is of niet
'

With CreateObject("Scripting.FileSystemObject")
If .FileExists(Range("d1").Value & ".xls") = True Then Application.Run "openen"
If .FileExists(Range("d1").Value & ".xls") = False Then Application.Run "openengereedwerk"
End With

End Sub


Ik had de keuze documenten te open gereed en nog niet gereed (in andere mappen)

Maar nu wil ik er dus een extra keuze in zien te verwerken zodat hij zowel .xlsm als .xls opent indien gereed.

Ik heb het zonder extentie geprobeerd maar daar trapt hij niet in

Wie kan mij een voorbeeld/aanvulling geven.


Ad
 
Laatst bewerkt door een moderator:
Misschien zo iets maar weet niet zeker.

Code:
If .FileExists(Range("d1").Value & ".xls",".xlsm") = True Then Application.Run "openen"
If .FileExists(Range("d1").Value & ".xls",".xlsm") = False Then Application.Run "openengereedwerk"
 
bijna

de keuze wordt nu gemaakt of het bestand bestaat ja of nee en met welke code verder gewerkt moet worden. Maar....... nu het bestand nog openen ik had...


Code:
Workbooks.Open Filename:=Sheets("ONVERDEELD").Range("f1").Value & ".xls"

Dit was .xls maar kan ook vanaf vorige week .xlsm dus hier moet weer een keuze gemaakt worden.
 
Probeer het eens hiermee.

Code:
Option Explicit

Sub BestandOpenen()
'macro uitvoeren
Dim strFile As String

    strFile = Range("D1").Value & ".xls"
    

    If Dir(strFile & "m") <> "" Then
        Openengereedwerk
    ElseIf Dir(strFile) <> "" Then
        Openen
    Else
        MsgBox "Het bestand bestaat niet", vbExclamation
    End If

End Sub

Sub BestandOpenen2()
'bestand openen
Dim strFile As String

    strFile = Range("F1").Value & ".xls"
    

    If Dir(strFile & "m") <> "" Then
        Workbooks.Open strFile & "m"
    ElseIf Dir(strFile) <> "" Then
        Workbooks.Open strFile
    Else
        MsgBox "Het bestand bestaat niet", vbExclamation
    End If

End Sub
 
bedankt Mark / heren maar.....

Heren bedankt voor het meedenken :thumb:,
ik heb weer wat geleerd (korter/duidelijker schrijven van code). Maar ben toch eigenwijs geweest en heb toch op mijn oude vertrouwde code doorgeborduurd
Deze werkt voor mij (tot nu toe :d)



Code:
Sub bestandopenen()
'
'Maakt de keuze of het werk gereed is of niet en zo niet of het een xls of xlsm extentie heeft.
'

With CreateObject("Scripting.FileSystemObject")
If .FileExists(Range("d1").Value & ".xlsm") = True Then openen
If .FileExists(Range("f1").Value & ".xlsm") = True Then openengereedxlsm
If .FileExists(Range("f1").Value & ".xls") = True Then openengereedxls
End With

End sub



Misschien dat iemand kan aangeven wat de nadelen hiervan kunnen zijn. Of dat het nog korter kan.......eenvoudiger kan

Ad
 
Laatst bewerkt:
Gewoon zonder het filesystemobject werken!

Code:
Sub bestandopenen()
'
'Maakt de keuze of het werk gereed is of niet en zo niet of het een xls of xlsm extentie heeft.
'
If Dir(Range("d1").Value & ".xlsm") <> "" Then openen
If Dir(Range("f1").Value & ".xlsm") <> "" Then openengereedxlsm
If Dir(Range("f1").Value & ".xls") <> "" Then openengereedxls

End Sub

Je hebt het filesystemobject niet nodig in dit geval, dus hoef je geen extra referenties aan je project toe te voegen, of dmv late binding (lees: CreateObject gebruiken) Objecten aan te maken.

Kortere code hoeft overigens niet altijd betere code te zijn. Het is belangrijk dat iedereen aan je code kan zien wat je (poogt) te doen, goede code is leesbaar door mensen. De computer begrijpt het toch wel..!

Succes!
 
Laatst bewerkt:
Mark bedankt

Mark bedankt :thumb: voor deze toelichting dit ga ik verwerken.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan