[excel] formules automatisch toepassen op andere cellen

Pagina: 1
Acties:

  • deepbass909
  • Registratie: April 2001
  • Laatst online: 21:34

deepbass909

[☼☼] [:::][:::] [☼☼]

Topicstarter
Ik ben bezig met een excel bestand waarin kolommen kunnen variëren in lengte.
Per blad heb ik steeds 1 kolom met ingekopieerde waarden, en de andere kolommen worden gevuld met resultaten uit zoek functies.
Nu is het punt dat de lengte van de kolom met vaste waarden sterk varieert per toepassing.

Ik ben nu opzoek naar een functie in excel die het mij mogelijk maakt om excel zelf te laten testen hoe lang deze bewuste kolom is en vervolgens de andere cellen te laten kopieren t/m de regel waarin de kolom met vaste waarden is ingevuld.

Ik heb op internet al wel een VBA scriptje gevonden dat controleerd wat de laatst gevulde cel is, maar hoe kan ik vervolgens zorgen dat de andere regels gekopieerd worden?

Dit is het scripje wat test wat de laatste ingevulde cel is in kolom A:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Sub LaatsteCel()
Dim r As Long, k As Long
    r = LastCell(ActiveSheet).Row
    k = LastCell(ActiveSheet).Column
End Sub

Function LastCell(ws As Worksheet) As Range
Dim LastRow&, LastCol%
    On Error Resume Next
    With ws
        LastRow& = .Cells.Find(What:="*", _
            SearchDirection:=xlPrevious, _
            SearchOrder:=xlByRows).Row
        LastCol% = .Cells.Find(What:="*", _
            SearchDirection:=xlPrevious, _
            SearchOrder:=xlByColumns).Column
    End With
    Set LastCell = ws.Cells(LastRow&, LastCol%)
End Function

Waarschuwing, opperprutser aan het werk... en als je een opmerking van mij niet snapt, klik dan hier


Verwijderd

in de veronderstelling dat de kolom met ingekopieerde waarden gelijk is aan kolom A en de formules ernaast komen:
code:
1
set Lastcell=activesheet.range("a65536").end(xlup).offset(0,1)

  • deepbass909
  • Registratie: April 2001
  • Laatst online: 21:34

deepbass909

[☼☼] [:::][:::] [☼☼]

Topicstarter
@_heretic_
je veronderstelling is goed. Maar hoe pas ik dit in het macro in?

Waarschuwing, opperprutser aan het werk... en als je een opmerking van mij niet snapt, klik dan hier


Verwijderd

ok, stel nu dat je een opzoekingsformule in kolom B wil toepassen voor alle waardes in kolom A met als zoekbereik blad2, bereik A1:D20. dit geeft de volgende
Visual Basic:
1
2
3
4
Sub FormulesAanmaken()
  Set Lastcell = ActiveSheet.Range("a65536").End(xlUp).Offset(0, 1)
  Range(Range("b1"), Lastcell).FormulaR1C1 = "=VLOOKUP(RC[-1],Blad2!R1C1:R20C4,4,FALSE)"
End Sub