Macro bij openen Sheet, alleen macro zelf bevat ook sheet.select dus hij loopt vast..

Status
Niet open voor verdere reacties.

Frankell87

Gebruiker
Lid geworden
7 mei 2015
Berichten
141
Hallo heren,

ik heb onderstaande code die ik nu met een knop oproep maar graag automatisch wil laten lopen als ik de sheet open. nu loop ik alleen tegen het probleem aan dat de macro zelf ook sheetchange bevat en dus gaat vastlopen.
hij moet gaan lopen bij het openen van sheet "Planning".

iemand een idee hoe ik dit kan oplossen?

Code:
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)

ActiveSheet.AutoFilterMode = False

Application.ScreenUpdating = False
    Sheets("New report").Select 'Openen van New Report tab
        k = Cells(Rows.Count, "C").End(xlUp).Row - 5 'aantal rijen tellen waarin data staat
        
    Sheets("Planning").Select 'Openen van Planning tab
            Range("D6:R6").Select
            Range(Selection, Selection.End(xlDown)).Select
                Selection.AutoFilter 'vanaf cel R6 alles naar links en naar beneden een tabel van maken
                Selection.Sort Key1:=Range("E6"), Order1:=xlAscending, Header:=xlYes

        Gegevensrij = ("D7:FQ7") '1e rij selecteren
        OndersteRij = 7 + k
        F = ("D7:FQ" & (OndersteRij)) 'Grootte van het te door te trekken gebied bepalen
            Range(Gegevensrij).Select 'rij selecteren die moet worden doorgetrokken
            Selection.AutoFill Destination:=Range(F), Type:=xlFillDefault 'doortrekken van de opmaak naar deze cellen

    Rows(OndersteRij).Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Delete Shift:=xlUp 'Verwijderen van alle lege rijen

            Range("D6:R6").Select
            Range(Selection, Selection.End(xlDown)).Select
            Selection.AutoFilter 'vanaf cel R6 alles naar links en naar beneden een tabel van maken
                Selection.Sort Key1:=Range("K6"), Order1:=xlAscending, Header:=xlYes 'Sorteren op begindatum
Selection.AutoFilter

Application.ScreenUpdating = True

Range("I2").Select

End Sub
 
Excuus, heb al een oplossing gevonden.

Ik verberg te tabbladen en zet deze knop op een ander tabblad. Hij wordt dan doorlopen en eindigt in sheet Planning
 
Ik vermoed dat je met de zoekfunktie van dit forum schrikt van het aantal suggesties die beter zijn.
 
Een SelectionChange is in bijna alle gevallen onnodig en zou ik zeker niet gebruiken zonder de range van target te beperken. Hoe vervelend wil je het hebben met al die selects en selelections.

@snb, Weliswaar een persoonlijk mening maar de zoekfunctie op deze site werkt voor geen meter.
 
Ja daar kwam ik ook achter VenA.. door die inperkingen wordt hij te ingewikkeld en er zijn eenvoudigere oplossingen.

Zoekfunctie werkt inderdaad lastig. Zou makkelijker zijn als er specifiekere categorieën zouden zijn dan alleen VBA en Excel
 
Een voorbeeldbestand met de gebruikte code zal zeker helpen om in iig jouw code te reduceren tot een paar regels.
 
Ik red me er nu wel ff mee VenA dank je wel. Ben aan het puzzelen om hem er helemaal uit te werken. Ik zit met een Analysis extension om data uit het programma SAP te halen. Loop nog tegen wat problemen aan maar zodra ik er niet meer uitkom zal ik me melden
 
@VenA

Dan zullen we daar wat aan moeten doen..

Heb jij voorbeelden waaruit het niet-funktioneren van de zoekfunktie blijkt ?
(eerlijk gezegd gebruik ik hem nooit) ;)
 
denk een goed idee snb.

uit mijn vak gebied kan ik adviseren om te zorgen dan men gedwongen is de categorie zo ver mogelijk te specificeren. Vrije velden zorgen alleen maar voor omschrijving- en interpretatieverschillen.
Bijvoorbeeld: rij invoegen, insert row, rows.insert, entirerow.insert. Waarschijnlijk steeds het zelfde bedoeld maar niet te vinden als je niet exact het zelfde omschrijft. Schrijffouten nog niet eens meegenomen.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan