Skip to content

Getallen in een willekeurige range plaatsen

Met de onderstaande code kun je in een willekeurig bereik getallen laten plaatsen, de getallen zijn afhankelijk van het aantal geselecteerde cellen, er wordt geteld van 1 tot het totaal aantal geselecteerde cellen.

Selecteer dus eerst een bereik en voer daarna de onderstaande code uit

Sub tst()
    Randomize
    With Selection
        ReDim sq(.Cells.Count)
        For j = 0 To UBound(sq) - 1
            sq(j) = Rnd
        Next
        For r = 0 To .Rows.Count - 1
            For c = 0 To .Columns.Count - 1
                teller = teller + 1
                Sheets(1).Cells(.Row + r, .Column + c) = _
                WorksheetFunction.Match(WorksheetFunction.Small(sq, teller), sq, 0)
            Next c
        Next r
    End With
End Sub

Vrije nummers zoeken in een range

Hiermee kan in een range in kolom a naar waarden worden gezocht die niet worden gebruikt in een opeen lopende range, de waarden worden getoond in kolom d

Sub niet_gebruikte_nummers_tonen()
    Set src = Range("A2:A" & Cells(Rows.Count, "A").End(xlUp).Row)
    ReDim arr(1 To WorksheetFunction.Max(src) - WorksheetFunction.Min(src), 1 To 1)
    For Each r In src
        If src(r.Row) - r <> 1 Then
            For t = 1 To src(r.Row) - r - 1
                teller = teller + 1
                arr(teller, 1) = r + t
            Next t
        End If
    Next r
    Range("D2:D" & WorksheetFunction.Max(src) - WorksheetFunction.Min(src)).Value = arr
End Sub

Laatste cel zoeken die voldoet aan een zoekwaarde

Sub rev_find()
    With Worksheets(bladnaam).Range(zoekwaarde)
        Set rng = .Find(what:=zoekwaarde, after:=Range(laatste cel zoekwaarde), searchdirection:=xlPrevious)
        msgbox rng.Offset(, kolom met waarde)
    End With
End Sub

Achterhalen adres samengevoegde cellen

activecell.mergearea.address

Resetten van alle commandbars in MS-programma's

Sub commandbars_reset()
    Dim br As Object
    For Each br In Application.CommandBars
        If br.BuiltIn Then br.Reset
    Next br
End Sub

Formule voor de weekdagen aan de hand van een weeknummer

=DATUM(JAAR(VANDAAG());1;1)+KIES(WEEKDAG(DATUM(JAAR(VANDAAG());1;1);2);1;-1;-2;-3;-4;-5;2)+($A$2-1)*7+RIJ()+5

Aanmaken van custom labels in excel

Hieronder een flash filmpje waarin wordt getoond hoe je je eigen labels bij een grafiek kunt plaatsen. Er wordt hier gebruik gemaakt van een add-in, te weten de
chartlabeler gemaakt door Rob Bovey, deze is hier te vinden.

Snel verwijderen van rijen op basis van lege cellen in een kolom

Sub Lege_rijen_verwijderen()
    With ActiveSheet.Range("A:a")
        .Cells.SpecialCells(xlCellTypeBlanks).Rows.EntireRow.Delete Shift:=xlUp
    End With
End Sub

Bovenliggende map met formule tonen

Met de onderstaande formule is de mapnaam in een excel-cel te tonen, als je dus als pad c:\test hebt staan dan komt er in de cel waarin de formule komt te staan dus test te staan

=SPATIES.WISSEN(RECHTS(SUBSTITUEREN(LINKS(CEL("bestandsnaam";A1);VIND.SPEC("[";CEL("bestandsnaam";A1);1)-2);"\";HERHALING(" ";100));100))

Batch bestand voor het subst'en van de huidige directory

Met onderstaande code voor een batchbestand kun je makkelijk de directory waarin het batch-bestandje zich bevindt subst'en. De belangrijkste regel die erin staat is set current_dir="%~dp0", deze zorgt ervoor dat de huidige directory aan current_dir wordt toegekend. Deze code werkt ook bij UNC-paden

@echo off
subst /d w:> nul
set current_dir="%~dp0"
set current_dir=%current_dir:~0,-2%"
SUBST W: %current_dir%