• 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 opnemen met variabelen

Status
Niet open voor verdere reacties.

Roughneck

Gebruiker
Lid geworden
29 mei 2007
Berichten
83
Terwijl ik de titel van dit bericht typ, merk ik de tegenstelling op: als ik een macro opneem , dan doet ie steeds hetzelfde ding. In dit geval past de macro de kleur en lettertype aan, en sorteert vervolgens de twee regels op OPB-nummer, aflopend.

het basis bestand, waarin ik de macro natuurlijk heb opgeslagen is leeg. Vandaag staan er twee regels in, maar morgen staan er misschien 10 regels in. Echter de macro (CTRL+SHIFT+B) zal nu niet meer dan de 2 regels sorteren. Hoe krijg ik nu voor elkaar, dat de macro de sortering goed uitvoert, ongeacht het aantal regels in het werkblad?

Misschien overbodig om te schrijven,maar de sortering zou plaats moeten vinden vanaf regel 3 tot en met de een na laatste regel in het werkblad.

Hoop dat jullie me weer kunnen helpen.

Lucas
 

Bijlagen

  • test macro.xls
    33 KB · Weergaven: 22
Laatst bewerkt:
Roughneck,

Ik denk dat je het antwoord hier wel zult vinden.

Pas de sorteersleutel aan.
Code:
Sub sorteren1()
  ActiveSheet.UsedRange.Sort key1:=Range("A7"), Header:=xlYes
End Sub
 
Laatst bewerkt:
Ik snap nog ff niets van dat taaltje. Ik ben er inmiddels wel achter, dat je het macro-script kunt aanpassen; hoe pas ik bovenstaande oplossing in de bestaande macro?

Omdat de bron van de gegevens uit andere excelsheets komt, dient ook de kleur en het lettertype gelijk te worden.

Hier de macro zoals ie nu is.


Code:
Sub SorBor()
'
' SorBor Macro
' De macro is opgenomen op 22-10-2010 door Lucas.
'
' Sneltoets: CTRL+SHIFT+B
'
    Range("B3").Select
    Selection.Copy
    Range("A3:A4").Select
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False
    Selection.Copy
    Range("C3:C4").Select
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False
    Rows("3:4").Select
    Selection.Sort key1:=Range("B3"), Order1:=xlDescending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
End Sub
 
Laatst bewerkt door een moderator:
Roughneck,

Kijk eens of de sorteermacro goed werkt.
Hij zal misschien korter kunnen maar ik ben niet voor niets een Amateur.
Tevens maakt hij de tekst op de zelfde grote.
Code:
Sub Sorteren()
Regel = Worksheets("overzicht OPB").UsedRange.Rows.Count - 2 'Aantal sorteerregels
  Worksheets("overzicht OPB").Sort.SortFields.Clear
  Worksheets("overzicht OPB").Sort.SortFields.Add Key:=Range( _
        "B3"), SortOn:=xlSortOnValues
  With Worksheets("overzicht OPB").Sort
    .SetRange Range("A3:H" & Regel)
    .SortMethod = xlPinYin
    .Apply
  End With
   
  With Range("A3:H" & Regel).Font
    .Name = "Verdana"
    .Size = 10
    .ColorIndex = xlAutomatic
    End With
End Sub
De volgende keer moet je de code selecteren en dan boven in de menubalk op # klikken.
Dan komt je code in een apart vlak te staan.
 
Laatst bewerkt:
Ervan uitgaande dat het volgnummer in kolom B ALTIJD zal worden ingevuld (dat is een voorwaarde voor de goede werking) kun je voor het sorteren volstaan met volgende. eenvoudige macro. Hierbij is ervan uitgegaan dat je oplopend wil sorteren. Wil je aflopend sorteren, voeg dan aan regel 3 toe: , order1:=xlDescending '(inclusief de komma).
Code:
Sub macro1()
With Worksheets("Overzicht OPB")
.Range("A3:H" & .Range("B3").End(xlDown).Row).Sort Key1:=.Range("B3")
End With
End Sub
 
Laatst bewerkt:
Code:
With Range("A3:H" & ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row - 1)
    .Sort Key1:=Range("B3"), Order1:=xlDescending, Header:=xlGuess
    .Interior.Color = xlNone
    With .Font
        .Name = "Verdana"
        .Size = 10
        .ColorIndex = xlAutomatic
    End With
End With

Met vriendelijke groet,


Roncancio
 
Heb uiteindelijk de code van Roncancio gebruikt. Mega kort, maar doet precies wat ik wil.
Heb ook meer dan 20 regels ingevoerd, maar ook die sorteert ie zonder problemen, en het lettertype word voor het gesorteerde gedeelte keurig aangepast naar Verdana 10.

Mijn complimenten, maar ook voor de anderen, mijn petje af! Bedankt allemaal.

Nu ga ik nog eens goed kijken naar de code, want ik mag dit wel niet zelf gemaakt hebben, maar ik wil weten waarom het doet wat het doet. Misschien dat ik dan ooit ook eens zelf iets kan bedenken.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan