Autofill code voor meerdere kolommen

Status
Niet open voor verdere reacties.

Visara

Gebruiker
Lid geworden
10 mrt 2019
Berichten
217
Goedemiddag,

Ik heb deze code om de excel formule in S2 met Autofill tot onderaan de tabel te vullen. Het werkt.
Code:
Set SourceRange = Sheets("Data").Range("S2")
Set TargetRange = Sheets("Data").Range("Database[kolomnaamS]")
SourceRange.AutoFill Destination:=TargetRange, Type:=xlFillDefauld

Ik heb echter zo'n 20 kolommen (niet naast elkaar) die ik Autofill wil laten doen.
Hoe kan ik dat in 1 code zetten? Range("S2"), Range("V2"), Range("Y2") etc etc etc. Ze maken deel uit van dezelfde tabel.

Mvg, Visara
 
Of het in één keer kan waag ik te betwijfelen, maar dit maakt het al wat eenvoudiger:
Code:
Sub Test()
    VulKolom 19
    VulKolom 22
    VulKolom 25
    'doet hetzelfde als
    VulKolom "S"
    VulKolom "V"
    VulKolom "Y"
End Sub


Function VulKolom(kolom)
    If Not IsNumeric(kolom) Then kolom = Asc(kolom) - 64
    Cells(2, kolom).AutoFill Destination:=Range("Database[" & Cells(1, kolom) & "]")
End Function
 
Dat is wel een grappige manier, maar niet wat ik vermoedde dat bestond (zoiets als Range("A:E";"G:H") ofzo, dat alles compact bij elkaar staat. Bedankt voor de moeite!
 
Dit werkt natuurlijk nooit:

SourceRange.AutoFill Destination:=TargetRange, Type:=xlFillDefauld
 
Ook al is xlFillDefauld verkeerd gespeld, het werkt wel. Kennelijk wordt een lege waarde behandeld als nul (xlFillDefault = 0).
Het weglaten van
Type:=xlFillDefauld heeft hetzelfde effect.

 
In een dynamische tabel geldt een Excelformule in de eerste rij van de databodyrange voor de gehele kolom.
Autofill is overbodig.

Code:
Sub M_snb()
  sheets("Data").range("V2,Y2,AB2,AE2,AH2")=Sheets("Data").Range("S2")
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan