Loop in Macro

Status
Niet open voor verdere reacties.

geertsjelle

Gebruiker
Lid geworden
30 jan 2009
Berichten
87
Hallo allemaal,

Ik heb een excel document met een macro met een "uitdaging" waar ik maar niet uit kom.

Ik wil een autofilter aansturen van uit een andere sheet, dit is me gelukt:)

Wat ik nu wil is dat wanneer "blad 2" geselecteerd wordt een autofilter op "blad 1" geupdate wordt en ik weer terugkom in "blad 2".

Ik heb hiervoor de onderstaande code gebruikt.
Het probleem is dat als ik terug ga naar blad 2 de macro weer een update gaat doen ik in in een "loop" kom waarbij mijn scherm veranderd in een knipperllicht:confused:.

Kan iemand mij uit de "loop" helpen?

--------

Jelle


(De onderstaande macor staat in blad 2)

Private Sub Worksheet_Activate()

Sheets("Blad 1").Range("A3").Value = Sheets("Blad 2").Range("D3")

Sheets("Blad 1").Select

Call Update_autofilter_productmatrix 'Hiermee word een macor opgeroepen die een autofilter aanstuurd

Sheets("Blad 2").Select

End Sub
 
Hallo !

Code:
Private Sub Worksheet_Activate() 
Sheets("Blad 1").Range("A3").Value = Sheets("Blad 2").Range("D3")
Sheets("Blad 1").Select
Call Update_autofilter_productmatrix 'Hiermee word een macor opgeroepen die een autofilter aanstuurd
Sheets("Blad 2").Select

De laatste regel uit de event-procedure halen en overbrengen in de procedure Update_autofilter_productmatrix()

Grtz,
MDN111
 
MDN111,

Bedankt voor je snelle reactie!
Je oplossing werkt inderdaad voor "blad 2".

Het is alleen dat ik de autofilter in blad 1 vanuit meerdere "bladen" wil aansturen (sorry dit had in niet vermeld).

Heb je misschien nog een hind of optie?

Jelle
 
Hallo !

Als je de autofilter op Blad 1 wil aansturen vanuit meerdere andere sheets, dan ben je verplicht om dergelijke code op te nemen als Worksheet_Activate() in iedere worksheet.

Als ik de "uitdaging" even samenvat is dat: Je hebt een workbook met meerdere sheets en Blad 1 bevat een autofilter die je wil updaten als bepaalde sheets geactiveerd worden en tijdens het updaten moet blad 1 even in beeld komen en dan de sheet terug in beeld die oorspronkelijk actief was.

Het wordt moeilijk om daarover heen en weer te posten.

Kan je een bijlage zonder bedrijfsgegevens bijvoegen?

Grtz,
MDN111.
 
MDN111,

"Blad 1" hoeft niet perse in beeld te komen (ik ben zit zo thuis in marco's en dit is wat ik geknutseld had:-)

De sheet is vrij groot maar ik zal een voorbeeld van het probleem namaken zodat je er beter na kan kijken.

Alvas bedankt (post volgt)

Jelle
 
MDN111,

Hierbij een voorbeeld.
In het voorbeeld heb ik mijn vraag nog iets meer toegelicht.

Ik hoop dat je een oplossing weet.

Alvast bedankt voor het meedenken.

Jelle
 

Bijlagen

Hello !

Probleempje: Ik krijg De versie.rar niet uitgepakt (?).
Werk met PowerArchiver 2000.
Kan je nog eens comprimeren en bijlage opnieuw aanhangen?

Grtz,
MDN111
 
MDN111 ,

Ik heb het bestand nu met winzip ingepakt ipv win rar.
Hopen dat het nu wel lukt.

Jelle
 

Bijlagen

MDN111 ,

Het is me gelukt!!!!!
Met een IS-ELS funtie zie onderstaande code.
Hierbij wordt de macro alleen gerunt als de selectie nog niet goed staat.

Nogmaals super bedankt voor het meedenken!!!!

Jelle


If Sheets("Blad 1").Range("A3") = Sheets("Blad 2").Range("D3").Value Then
Sheets("Blad 2").Select
Else
Sheets("Blad 1").Select
Sheets("Blad 1").Range("A3").Value = Sheets("Blad 2").Range("D3").Value

Call Update_autofilter_productmatrix

Sheets("Blad 2").Select
 
geertsjelle,

Het zou zo ook moeten werken.
Blad2.Select = de naam van het blad voor de ( ) ( zie in de VBA Editor)

Code:
Sheets("Blad 1").Range("A3")	
[Blad 1!A3]	 'is het zelfde als hier boven

Code:
If [Blad 1!A3] = [Blad 2!D3] Then
    Blad2.Select
  Else
    Blad1.Select
    [Blad 1!A3] = [Blad 2!D3]
    Call Update_autofilter_productmatrix
    Blad2.Select
 End If
 
Laatst bewerkt:
Hallo geertsjelle !

Je vraag is opgelost, dus alles OK.

Toch nog even laten weten dat ik het .zip-bestand wel kon uitpakken. Ik heb het .xls-bestand eens bekeken, maar de essentie heb ik niet begrepen. Er is een sheet per product en ieder van die sheets bevat data en een chart. De data van iedere prodcutsheet staat gekopieerd in de overzichtsheet en de chart van iedere productsheet gebruikt de gefilterde gegevens van de overzichtsheet. Dat lijkt mij een hele omweg. Maar zoals ik zei, omdat ik de essentie niet begrijp, geen verdere aandacht vereist.
Wat ik wel heb begrepen uit je .xls-bestand is dat je soms 125 grafieken manueel Copy-Paste. Dat zou ik niet graag in jou plaats doen. Als je een bepaalde standaardgrafiek hebt die als basis dient voor de grafieken in 25 productsheets, kan je bijvoorbeeld in de eerste productsheet je standaardgrafiek aanpassen en deze via VBA kopiëren naar de andere productsheets en vervolgens andere waarden toewijzen. Een interessante link om charts andere waarden toe te wijzen is http://www.oaltd.co.uk/DLCount/DLCount.asp?file=ProExcelDev15.pdf

Grtz,
MDN111.
 
MDN111,

Bedankt voor de tips en de link naar het document.
Ik heb zelf nog niet zo thuis in VBA naar aldoende leert men:)

------------

Jelle
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan