• 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 actief zonder continue f5 drukken

Status
Niet open voor verdere reacties.

michielaliasv

Gebruiker
Lid geworden
7 nov 2008
Berichten
108
Dames en heren,

De onderstaande macro werkt indien ik op f5 druk, wat mij alleen verbaast is dat de uitkomst niet begint in rij 3 maar meteen bovenaan, tevens wil ik dat dit autmatisch gebeurt, dus continue ( zonder f5 ) en dat het geactiveert wordt tijdens opstarten. Kan iemand mij hiermee helpen? dank
Sub Koop()

Columns("I:K").Select

Selection.Sort Key1:=Range("K3"), Order1:=xlAscending, Key2:=Range("I3") _
, Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2 _
:=xlSortNormal

End Sub
 
michielaliasv, Een macro in VBA wordt altijd gestart op basis van een gebeurtenis. Als je niet een van de voorgedefinieerde gebeurtenissen gebruikt, zal je inderdaad van F5 gebruik moeten maken. Kijk dus maar 'ns naar het 'Worksheet_Change event' in de worksheetmodule van de sheet waar je die sortering wilt laten plaatsvinden.

Groet, Leo
 
3 dingen:

  1. Verander de code in

    Code:
    Sub Koop()
    
    Range("K3").Sort Key1:=Range("K3"), Order1:=xlAscending, Key2:=Range("I3") _
    , Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
    False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2 _
    :=xlSortNormal
    
    End Sub
    Je moet dus Columns("I:K").Select verwijderen.

  2. Zet Koop in Worksheet_Change

    Code:
    Private Sub Worksheet_Change(ByVal Target As Range)
    Koop
    End Sub
  3. Zet Koop in Workbook_Open

    Code:
    Private Sub Workbook_Open()
    Koop
    End Sub

Met vriendelijke groet,


Roncancio
 
Je hebt met een leek te maken, maar ik heb het er braaf onder geplakt. Voel mij een beetje stom maar heb totaal geen gevoel bij wat je bedoelt.

Sub Koop()



Range("K3").Sort Key1:=Range("K3"), Order1:=xlAscending, Key2:=Range("I3") _
, Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2 _
:=xlSortNormal

Private Sub Worksheet_change(ByVal Target As Range)
Koop

Private Sub Workbook_Open()
Koop

End Sub
 
Terugkomend op mijn vorige reactie:

Punt 1. dat is de code voor de macro.


Code:
Sub Koop()



Range("K3").Sort Key1:=Range("K3"), Order1:=xlAscending, Key2:=Range("I3") _
, Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2 _
:=xlSortNormal

[COLOR="Red"]Private Sub Worksheet_change(ByVal Target As Range)
Koop

Private Sub Workbook_Open()
Koop[/COLOR]

End Sub

De rode code dus verwijderen.

2.
Ga naar je Visual Basic Editor. (Extra - Macro - Visual Basic Editor)
Kies voor Beeld - Projectverkenner.
Links zie een lijst van de werkbladen, ThisWorkbook en de modules.
Dubbelklik op de betreffende werkblad en plak onderstaande code in het venster.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Koop
End Sub

3.
Hetzelfde als 2 maar dan onderstaande code in ThisWorkbook plakken.

Code:
Private Sub Workbook_Open()
Koop
End Sub

Met vriendelijke groet,


Roncancio
 
Heel duidelijk uitgelegd en toch pakt de essentie mij niet,

" ga naar this workbook en modules en plak daar de" overige formules in. Echter na lang prusten zie ik nog altijd het licht niet, aangezien in modules al de macro staat. Ik durf het bijna niet te vragen maar bijgevoegd vind je het Exel bestand. De macro heb ik al ingevoerd indien jij zo vriendelijk wilt zijn de overige codes in te voeren dan moet ik het begrijpen. Mijn oprechte excuus voor het trage begrip. P.S. kolom A t/m H zijn niet relevant.
 
Laatst bewerkt:
In bijgevoegd bestand heb ik gedaan wat ik bedoelde.

Nog even een uitleg:
We hebben dus een macro (genaamd kopen). Dat is punt 1 van mijn eerdere reacties.
Je wilt de macro starten bij wijzigingen in het werkblad. (Punt 2).
In plaats van de hele macro opnieuw te schrijven verwijs je dus naar de macro kopen.

Je wilt de macro starten bij het openen van het bestand. (Punt 3).
In plaats van de hele macro opnieuw te schrijven verwijs je dus weer naar de macro kopen.

Met vriendelijke groet,


Roncancio
 

Bijlagen

Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan