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

Macro op het lint gezet en toepassen in meerdere bestanden

Status
Niet open voor verdere reacties.

Mieke1985

Gebruiker
Lid geworden
3 mrt 2011
Berichten
101
Hoi,

Ik heb een aantal macro's aangemaakt om kolom Y te filteren.
Om het voor de gebruikers gemakkelijk te maken (want kolom Y valt altijd uit beeld omdat de andere kolommen breder zijn dan in het voorbeeld) heb ik deze macro's toegevoegd aan het lint.

Het bestand wordt regelmatig gekopiëerd en zodra men op de macro's klikt dan opent excel automatisch het originele bestand waarin ik deze macro's gemaakt heb.

Is het mogelijk om deze macro's zo in te stellen dat deze uitgevoerd worden zonder dat het originele bestand geopend wordt? Ik heb de macro's nu op blad1 gezet in VBA, en ook in thisworkbook en ook als module maar telkens opent hij weer het originele bestand.

Ik hoop dat het duidelijk is :)
Bekijk bijlage LAY OUT - 1.xlsm
 
Waar heb je die macro's in het lint staan?
Het uitvoeren van zo'n macro werkt in je voorbeeld document overigens prima.
Dus zonder dat er een ander bestand geopend gaat worden of zo.
 
Hoi Edmoor,

Ze staan op het lint omdat in het originele bestand de kolommen veel breder zijn en het bestand veel uitgebreider. Kolom y valt dan ver buiten beeld (het bestand dat ik heb toegevoegd is slechts een klein voorbeeld bestandje)

Zodra het bestand (LAY OUT -1) gekopieerd wordt en je gaat de macro's gebruiken dan opent excel het orignele bestand waar ik de macro's in gemaakt heb (LAY OUT - 1 dus)
 
Dat ze op het lint staan begreep ik al, ik zie ze alleen niet. Mijn vraag is dus waaar ze staan en niet waarom ze daar staan ;)
Maar wijzig die macro's eens is in dit:
Code:
ThisWorkbook.ActiveSheet.Range("$A$4:$AG$150").AutoFilter Field:=25, Criteria1:="Naam1"
 
Laatst bewerkt:
@Edm

Is dit niet voor de hand liggender:

Code:
ActiveSheet.Range("$A$4:$AG$150").AutoFilter Field:=25, Criteria1:="Naam1"
 
Dat is wat er al in het document staat.
Het is afhankelijk van de Office versie. Als de macro wordt gestart vanuit het lint kan het zijn dat de macro geldt voor het origineel geopende werkboek of voor het huidige werkboek, als je een werkboek opent vanuit de actieve Excel sessie. Vandaar die ThisWorkbook ervoor.

Maar ik kan het niet eenvoudige testen omdat ik de macro's niet in het lint zie, alleen de code zelf.
 
thisworkbook verwijst altijd naar het bestand dat de code bevat: dat is dus invariant en juist niet de bedoeling, dacht ik.

Dan moet je evt. activeworkbook gebruiken.
 
Laatst bewerkt:
Zoals ik al zei, ik kan het niet makkelijk testen. Misschien moet het ActiveWorkbook zijn. De vraag is gesteld aan TS maar daar is nog geen antwoord op gekomen.
Daarnaast ga ik er voor het gemak vanuit dat je gelijk hebt :)
Nog even wachten dus op de reactie van TS.
 
Helaas lukt het met beide oplossingen nog steeds niet. Ik heb de VBA codes ook geplakt in Thisworkbook en als module maar ook dan lukt het niet.

Ik denk dat het aangepaste lint voor jullie niet zichtbaar is? Dit zijn denk ik gebruikers-instellingen?

Ik heb het nu ook geprobeerd met een knop (formulierbesturingselementen) en dan werkt het wel goed in het gekopieerde bestand. Het zit 'm dus blijkbaar in het lint...(de macro's werken dus wel gewoon goed.)
Knoppen staat helaas niet zo heel netjes (aangezien dit een bestand is wat door meerdere mensen gebruikt wordt wilde ik liever geen knoppen)

Ik ga nog even op internet zoeken voordat ik dit topic sluit. Misschien dat er ondertussen nog een oplossing komt..?

Bedankt voor jullie bijdragen trouwens :-)
 
Heb je dit ook geprobeerd?
Code:
ActiveWorkbook.ActiveSheet.Range("$A$4:$AG$150").AutoFilter Field:=25, Criteria1:="Naam1"
 
Laat dan weten hoe je die macro's aan het lint hebt toegevoegd.
 
Het bestand LAY OUT - 1.xlsm heb ik onzichtbaar gemaakt.
De macro's heb ik in een aparte macromodule van bestand LAY OUT - 1.xlsm gezt.

In een nieuw werkboek heb ik de volgende code gebruikt, die exact goed werkt op de activesheet van het zichtbare bestand:

Code:
Sub M_snb()
  Application.Run "'LAY OUT - 1.xlsm'!Naam1"
End Sub

PS. liever de kolomnamen in rij 1 dan in rij 3.
 
Laatst bewerkt:
Jouw persoonlijke werkmap<> de persoonlijke werkmap van 'de gebruikers' (zoals jij ze aanduidt).
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan