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

met CommandButton werken in exel 2003

Status
Niet open voor verdere reacties.

davylenders123

Gebruiker
Lid geworden
20 jun 2010
Berichten
902
Ik zou in exel 2003 met een CommandButton willen werken en die zou het volgende moeten doen.

De CommandButton komt in 12 tab bladen voor elke maand 1.

In tabblad jan moet de CommandButton naar T:\Mag-Data\Vroegere Desktop\gegevens sorteerband\1 jan 2010
In tabblad feb moet de CommandButton naar T:\Mag-Data\Vroegere Desktop\gegevens sorteerband\2 feb 2010
In tabblad maart moet de CommandButton naarT:\Mag-Data\Vroegere Desktop\gegevens sorteerband\3 maart 2010
En zo verder.

Zodat ik daar een pdf file kan selecteren om open te doen .

Hoe moet ik hier aan beginnen en welke code moet ik gebruiken.
 
Verbind alle buttons met deze macro:
Code:
Sub NaarPDFMap()
Const BasisMap As String = "T:\Mag-Data\Vroegere Desktop\gegevens sorteerband"
Dim AntWrd As Variant
Dim sTmp As String

    AntWrd = Application.Caller
    If IsError(AntWrd) Then Exit Sub
    
    Select Case ActiveSheet.Name
    Case "jan"
        sTmp = "\1 jan 2010"
    Case "feb"
        sTmp = "\2 feb 2010"
    Case "maart"
        sTmp = "\3 maart 2010"
    Case Else
    End Select
    sTmp = BasisMap & sTmp
    
    If Dir(sTmp, vbDirectory) <> "" Then
        ChDrive sTmp
        ChDir sTmp
        AntWrd = Application.GetOpenFilename( _
                filefilter:="(*.pdf),.pdf", _
                FilterIndex:=1, _
                Title:="Kies één bestand", _
                MultiSelect:=False)
    Else
        MsgBox "niet gevonden"
    End If
    
End Sub
Je moet nog wel voor de andere maandtabbladen de celect case aanvullen.
 
Verbind alle buttons met deze macro:
Code:
Sub NaarPDFMap()
Const BasisMap As String = "T:\Mag-Data\Vroegere Desktop\gegevens sorteerband"
Dim AntWrd As Variant
Dim sTmp As String

    AntWrd = Application.Caller
    If IsError(AntWrd) Then Exit Sub
    
    Select Case ActiveSheet.Name
    Case "jan"
        sTmp = "\1 jan 2010"
    Case "feb"
        sTmp = "\2 feb 2010"
    Case "maart"
        sTmp = "\3 maart 2010"
    Case Else
    End Select
    sTmp = BasisMap & sTmp
    
    If Dir(sTmp, vbDirectory) <> "" Then
        ChDrive sTmp
        ChDir sTmp
        AntWrd = Application.GetOpenFilename( _
                filefilter:="(*.pdf),.pdf", _
                FilterIndex:=1, _
                Title:="Kies één bestand", _
                MultiSelect:=False)
    Else
        MsgBox "niet gevonden"
    End If
    
End Sub
Je moet nog wel voor de andere maandtabbladen de celect case aanvullen.

Heb je code ingevoerd maar als ik op de button klik gebeurt er niets.:confused:
(Heb in het vb bestand wel de map aangespast voor hij moet gaan zoeken omdat ik nu op een andere pc bezig ben)

Bekijk bijlage 2222222222222222.xlsx[/QUOTE]
 
Laatst bewerkt:
Een 2007 versie met de extentie .XSLX kan geen macro's bevatten.
Geen wonder dat het niet werkt.
Kies voor .XLSM of .XLSB.
Trouwens je had het over versie 2003?!
 
Een 2007 versie met de extentie .XSLX kan geen macro's bevatten.
Geen wonder dat het niet werkt.
Kies voor .XLSM of .XLSB.
Trouwens je had het over versie 2003?!

Had het te laat gezien dat ik het verkeerd heb opgeslagen.
Ik werk nu met 2007 op mijn pc maar het moet eigenlijk gaan werken op pc van het werk op 2003.

Hier het juist opgeslagen bestand
Bekijk bijlage 1111.zip
 
Hier heb je je bestand weer terug.

1. gewone macro's behoren in een module te staan en niet in de Excel objecten.

2. Heb een knop uit de tekenset op blad "jan" gezet en een en ander getest en code aangepast.
Die knop kan je kopieren naar de nadere tabbladen.

3. De knop die jij hebt toegevoegd kan ik in versie 2003 niet verwijderen.

4. Advies: Nooit ontwerpen in een Excel versie die hoger is als de versie waarvoor het bestand bedoeld is!
 

Bijlagen

Hier heb je je bestand weer terug.

1. gewone macro's behoren in een module te staan en niet in de Excel objecten.

2. Heb een knop uit de tekenset op blad "jan" gezet en een en ander getest en code aangepast.
Die knop kan je kopieren naar de nadere tabbladen.

3. De knop die jij hebt toegevoegd kan ik in versie 2003 niet verwijderen.

4. Advies: Nooit ontwerpen in een Excel versie die hoger is als de versie waarvoor het bestand bedoeld is!

De knop die ik heb toegevoegd is met ontwerpmodus gemaakt en ik kan hem wel verwijderen in exel 2003.

De knop die jij hebt toegevoegd hoe doe je dat juist hij staat er wel maar weet niet hoe ik het de volgende keer moet doen.

En als ik op de knop druk gaat hij maar tot de eerste map en zou verder moeten kunnen gaan
Heb de map waar hij moet naar toe gaan veranderd in"T:\Mag-Data\Vroegere Desktop\gegevens sorteerband" en als ik op de knop druk gaat hij maar tot T:\Mag-Data
 
Ha daar had ik niet aan gedacht, dat komt omdat ik niet werk met objecten uit de werkset besturingselementen maar met objecten uit de tekenset formulieren.

Objecten uit de tekenset formulieren kan je gewoon kopieren en op een ander tabblad plakken, rechtsklik op de knop.

Hier heb je nieuwe code en hoewel er maar één regel is aangepast [rood] toch volledig:
Code:
Sub NaarPDFMap()
Const BasisMap As String = "T:\Mag-Data\Vroegere Desktop\gegevens sorteerbands"
Dim AntWrd As Variant
Dim sTmp As String

    AntWrd = Application.Caller
    If IsError(AntWrd) Then Exit Sub
    
    Select Case ActiveSheet.Name
    Case "jan"
        sTmp = "\1 jan 2010"
    Case "feb"
        sTmp = "\2 feb 2010"
    Case "maart"
        sTmp = "\3 maart 2010"
    Case "april"
        sTmp = "\4 april 2010"
    Case Else
    End Select
   [COLOR="red"] sTmp = BasisMap & sTmp & Application.PathSeparator[/COLOR]
    
    On Error Resume Next
    If Dir(sTmp, vbDirectory) = "" Then
        MsgBox "niet gevonden"
    Else
        ChDrive sTmp
        ChDir sTmp
        AntWrd = Application.GetOpenFilename( _
                filefilter:="(*.pdf),.pdf", _
                FilterIndex:=1, _
                Title:="Kies één bestand", _
                MultiSelect:=False)
    End If
    
End Sub
 
Nu werkt het wel bedankt.:thumb:

Maar zou toch nog graag weten hoe ik zo een knop kan toevoegen zoals jij hebt gedaan .
 
Laatst bewerkt door een moderator:
@ Emil S
Misschien een reden om er eens mee beginnen te werken.;)
De aanpassingsmogelijkheden zijn oneindig veel uitgebreider dan met objecten uit de formulier werkset :thumb:
 
Ha daar had ik niet aan gedacht, dat komt omdat ik niet werk met objecten uit de werkset besturingselementen maar met objecten uit de tekenset formulieren.

Objecten uit de tekenset formulieren kan je gewoon kopieren en op een ander tabblad plakken, rechtsklik op de knop.

Hier heb je nieuwe code en hoewel er maar één regel is aangepast [rood] toch volledig:
Code:
Sub NaarPDFMap()
Const BasisMap As String = "T:\Mag-Data\Vroegere Desktop\gegevens sorteerbands"
Dim AntWrd As Variant
Dim sTmp As String

    AntWrd = Application.Caller
    If IsError(AntWrd) Then Exit Sub
    
    Select Case ActiveSheet.Name
    Case "jan"
        sTmp = "\1 jan 2010"
    Case "feb"
        sTmp = "\2 feb 2010"
    Case "maart"
        sTmp = "\3 maart 2010"
    Case "april"
        sTmp = "\4 april 2010"
    Case Else
    End Select
   [COLOR="red"] sTmp = BasisMap & sTmp & Application.PathSeparator[/COLOR]
    
    On Error Resume Next
    If Dir(sTmp, vbDirectory) = "" Then
        MsgBox "niet gevonden"
    Else
        ChDrive sTmp
        ChDir sTmp
        AntWrd = Application.GetOpenFilename( _
                filefilter:="(*.pdf),.pdf", _
                FilterIndex:=1, _
                Title:="Kies één bestand", _
                MultiSelect:=False)
    End If
    
End Sub

Heb de knop gekoppierd en geplakt in een andere exel bestaand maar dat gaat niet want dan verwijst hij elke keer naar het bestand waar ik de knop gekopieerd heb.
 
Om de knop in een ander bestand te laten werken moet je de code ook in dat bestand zetten en de knop verbinden met de macro in dat bestand, zoals ik al scheerf: rechtsklik de knop en kies dan macro toewijzen. Trouwens je vroeg om een macro voor 12 werkbladen, waar komt nu dat andere bestand vandaan?

Warm Bakkertje:
De objecten uit de werkset zijn bedoeld voor userforms en / of een werkblad dat als userform is ingericht. Voor het losse gebruik op een werkblad zijn die objecten instabiel.
Daarvoor zijn de objecten uit de tekenset bedoeld. Deze kunnen met een macro in een module worden vebonden en zoals in dit geval 12 knoppen en één macro. Dat heeft dan mijn voorkeur.
En inderdaad hebben ze minder mogelijk heden. In die situaties dat er meer moet maak ik een userform.
 
Om de knop in een ander bestand te laten werken moet je de code ook in dat bestand zetten en de knop verbinden met de macro in dat bestand, zoals ik al scheerf: rechtsklik de knop en kies dan macro toewijzen. Trouwens je vroeg om een macro voor 12 werkbladen, waar komt nu dat andere bestand vandaan?

Warm Bakkertje:
De objecten uit de werkset zijn bedoeld voor userforms en / of een werkblad dat als userform is ingericht. Voor het losse gebruik op een werkblad zijn die objecten instabiel.
Daarvoor zijn de objecten uit de tekenset bedoeld. Deze kunnen met een macro in een module worden vebonden en zoals in dit geval 12 knoppen en één macro. Dat heeft dan mijn voorkeur.
En inderdaad hebben ze minder mogelijk heden. In die situaties dat er meer moet maak ik een userform.

Dat andere bestand is een 2 de bestand waar ik zo een knop wou toevoegen het eerste bestand was in orde.
Het 2 de bestand is nu ook in orde.
Bedankt voor je hulp:thumb:
 
Er is nog wel een probleempje.
Hij gaat nu wel naar de juist map elke keer maar als ik dan op een pdf bestand klik gaat dat niet open.

Het venster van de map sluit wel zoals normaal maar de pdf komt niet tevoorschijn.
 
Tsja en daar was het nu net om doen. Hier een nieuwe code:
Code:
Sub NaarPDFMap()
Const BasisMap As String = "T:\Mag-Data\Vroegere Desktop\gegevens sorteerbands"
Dim AntWrd As Variant
Dim sTmp As String

    AntWrd = Application.Caller
    If IsError(AntWrd) Then Exit Sub
    
    Select Case ActiveSheet.Name
    Case "jan"
        sTmp = "\1 jan 2010"
    Case "feb"
        sTmp = "\2 feb 2010"
    Case "maart"
        sTmp = "\3 maart 2010"
    Case "april"
        sTmp = "\4 april 2010"
    Case Else
    End Select
    sTmp = BasisMap & sTmp & Application.PathSeparator
    
    On Error Resume Next
    If Dir(sTmp, vbDirectory) = "" Then
        MsgBox "niet gevonden"
    Else
        ChDrive sTmp
        ChDir sTmp
        AntWrd = Application.GetOpenFilename( _
            filefilter:="(*.pdf),.pdf", _
            FilterIndex:=1, _
            Title:="Kies één bestand", _
            MultiSelect:=False)
        
        If AntWrd <> False Then
            ActiveWorkbook.FollowHyperlink _
                Address:=AntWrd, _
                NewWindow:=True
        End If
    End If
    
End Sub
 
Tsja en daar was het nu net om doen. Hier een nieuwe code:
Code:
Sub NaarPDFMap()
Const BasisMap As String = "T:\Mag-Data\Vroegere Desktop\gegevens sorteerbands"
Dim AntWrd As Variant
Dim sTmp As String

    AntWrd = Application.Caller
    If IsError(AntWrd) Then Exit Sub
    
    Select Case ActiveSheet.Name
    Case "jan"
        sTmp = "\1 jan 2010"
    Case "feb"
        sTmp = "\2 feb 2010"
    Case "maart"
        sTmp = "\3 maart 2010"
    Case "april"
        sTmp = "\4 april 2010"
    Case Else
    End Select
    sTmp = BasisMap & sTmp & Application.PathSeparator
    
    On Error Resume Next
    If Dir(sTmp, vbDirectory) = "" Then
        MsgBox "niet gevonden"
    Else
        ChDrive sTmp
        ChDir sTmp
        AntWrd = Application.GetOpenFilename( _
            filefilter:="(*.pdf),.pdf", _
            FilterIndex:=1, _
            Title:="Kies één bestand", _
            MultiSelect:=False)
        
        If AntWrd <> False Then
            ActiveWorkbook.FollowHyperlink _
                Address:=AntWrd, _
                NewWindow:=True
        End If
    End If
    
End Sub

Thanks :thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan