• 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.

Autofill in functie van wat in kolom A staat

Status
Niet open voor verdere reacties.

snitsel

Gebruiker
Lid geworden
12 feb 2008
Berichten
199
Beste

Ik heb een excel bestand die ik genereer uit een programma en ik kolom A staan er waarden tot en met rij 50. Maar telkens ik een ander bestand genereer van iets anders staan er vb waarden tot rij 10 of 100... het is dus telkens anders.
Nu pas ik een code toe adhv een macro die "autofill" doet tot en met rij 200 om zeker te zijn.

Is het mogelijk om de autofill enkel toe te passen tot waar de getallen lopen in kolom A?
Dus als vb mijn getallen in kolom A ingevuld staan tot rij 50, dan wil ik een autofill tot 50 en niet meer tot 200.

Mvg
Snitsel
 
Snitsel ?
Wil je filteren of vullen ? autofill heeft voor mij een dubbele betekenis , anders iets zoals dit
Code:
Sub tst()
Dim LR As Long
LR = Range("A" & Rows.Count).End(xlUp).Row

" hier je macro code " 

End Sub
 
Snitsel ?
Wil je filteren of vullen ? autofill heeft voor mij een dubbele betekenis , anders iets zoals dit
Code:
Sub tst()
Dim LR As Long
LR = Range("A" & Rows.Count).End(xlUp).Row

" hier je macro code " 

End Sub

Dit is de code die ik nu heb:

Code:
Range("AB5:AD5").Select
    Selection.AutoFill Destination:=Range("AB5:AD200"), Type:=xlFillDefault

Het is de bedoeling dat hij niet altijd mijn code vult tot rij 200 maar gewoon tot de laatst gebruikte cel in kolom A.
 
Code:
Range("AB5:AD5").resize(usedrange.rows.count-4).Filldown
 
@ snb

Code:
    Range("AB5:AD5").Select
    Selection.AutoFill Destination:=Range("AB5:AD5").Resize(UsedRange.Rows.Count - 4).FillDown, Type:=xlFillDefault

Als ik deze code toepas, dan lukt het niet en komt de code in het geel te staan zonder dat ik een foutmelding krijg.
Ik snap deels de code nu wel, enkel vraag ik me af waar de code zich op baseert?
Eigenlijk zou de code zicht moeten baseren op kolom P en zo de autofill uitvoeren.
Vanaf dat er niets meer staat in kolom P moet de autofill stoppen.

Mvg
 
Laatst bewerkt:
De ene keer heb je het over kolom A, de andere keer over kolom P.
 
De ene keer heb je het over kolom A, de andere keer over kolom P.

Ja, ik dacht dat ik gewoon de A ging kunnen veranderen naar P in de formule zonder problemen. Maar dit blijkt dus zo niet te zijn. Mijn excuses
 
Daar heb je allemaal geen last van met mijn suggestie

Weird... Ik zal ze dan waarschijnlijk niet goed toepassen, want wat ik ook maar probeer, ik krijg de code in het geel

Origineel:
Code:
Range("AB5:AD5").Select
    Selection.AutoFill Destination:=Range("AB5:AD200"), Type:=xlFillDefault

wat ik al probeerde

Code:
    Range("AB5:AD5").Select
    Selection.AutoFill Destination:=Range("AB5:AD5").Resize(UsedRange.Rows.Count - 4).FillDown, Type:=xlFillDefault

OF

 Range("AB5:AD5").Select
 Range("AB5:AD5").Resize(UsedRange.Rows.Count - 4).FillDown

Dit is uiteindelijk mijn volledige code, daar ben je misschien iets meer mee.
De waarden in het rood worden nu dus ingevuld tot rij 200 en hier moet er dus een "autofill" toegepast worden tot en met de laatste waarde ingevuld in kolom P.

Code:
Sub MeerprijsGlas_Speciaaltransport()

'MIN en MAX tonen
    [AI13].Formula = "=MIN(T13:U13)"
    [AJ13].Formula = "=MAX(T13:U13)"

'Percentage terug geven
    [AK13].Formula = "=IF(AND(RC[-1]<=3060,RC[-2]<=1950),"""",IF(AND(RC[-1]<=3060,AND(RC[-2]>1950,RC[-2]<=2500)),15,IF(AND(AND(RC[-1]>3060,RC[-1]<=4400),RC[-2]<=2500),30,IF(OR(RC[-2]>2500,RC[-1]>4400),""Jumbo"",ONWAAR))))"
    
'Speciaal transport
    [AL13].Formula = "=IF(OR(RC[-3]>=2680,RC[-2]>=4400),""Speciaal transport, grote beglazing: ???€"","""")"
    
'Autofill van de 4 formules hierboven
    [AI13:AL13].AutoFill [COLOR="Red"][AI13:AL200], [/COLOR]xlFillDefault
    
'Alles kopieren en plakken als waarden
    Cells.Select
    Range("N1").Activate
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        
'Verwijderen van overbodige kolommen
    Columns("X:AJ").Select
    Range("Y1").Activate
    Application.CutCopyMode = False
    Selection.Delete Shift:=xlToLeft
    
'Kolombreedte aanpassen
    Rows("1:8").Select
    Range("N1").Activate
    Selection.Delete Shift:=xlUp
        Columns("T:U").Select
    Selection.ColumnWidth = 8
    
'Tariefprijs invullen
    [AB5].Formula = "=IF(RC[-4]="""","""",VLOOKUP(RC[-1],Tarief2,IF(RC[-2]=""N"",2,IF(RC[-2]=""A"",3,IF(RC[-2]=""Z"",4,FALSE))),FALSE))"
    
'Percentage berekenen
    [AC5].Formula = "=IF(RC[-5]=15,RC[-1]*0.15,IF(RC[-5]=30,RC[-1]*0.3,""""))"
    
'Totaal uitrekenen
    [AD5].Formula = "=IF(RC[-6]="""","""",(RC[-7]*RC[-1])/RC[-16])"
    
'Autofill van de 3 formules hierboven
    Range("AB5:AD5").Select
        Selection.AutoFill Destination:=Range[COLOR="red"]("AB5:AD200"), [/COLOR]Type:=xlFillDefault
    
'Getallen in deze kolom op 2 cijfers na de komma plaatsen
    Range("AB:AD").Select
    Selection.NumberFormat = "0.00"

End Sub

Hopelijk kan je mij verder helpen!

Mvg
Snitsel
 
Laatst bewerkt:
Misschien is deze code nog een mogelijkheid.
Code:
[AB5:AD200].FillDown
Met vr gr
Jack
 
Het is toch de bedoeling dat ik de code zo aanpas:

Code:
    Range("AB5:AD5").Select
        Selection.AutoFill Destination:=[AB5:AD200].FillDown, Type:=xlFillDefault

Alweer krijg ik de gele lijn te zien over de code

en als ik het zo doe krijg ik een syntax fout
Code:
    Range("AB5:AD5").Select
        Selection.AutoFill Destination:=Range[AB5:AD200].FillDown, Type:=xlFillDefault

Eveneens als ik de [ ] aanpas naar ( )

Damn, wat kan hier nu zo moeilijk aan zijn?!
 
Mijn suggestie
Code:
Range("AB5:AD5").resize(usedrange.rows.count-4).Filldown
tref ik nergens in je code aan.
 
Best snb

Toch wel... zoals ik hierboven al vertelde wat ik geprobeerd heb en wat niet lukt

Code:
    Range("AB5:AD5").Select
    Selection.AutoFill Destination:=Range("AB5:AD5").Resize(UsedRange.Rows.Count - 4).FillDown, Type:=xlFillDefault

OF

 Range("AB5:AD5").Select
 [COLOR="Red"]Range("AB5:AD5").Resize(UsedRange.Rows.Count - 4).FillDown[/COLOR]

Of moet ik hier Range("AB5:AD5").Select achterwege laten? Maar dit werkt blijkbaar ook niet.

De lange code die ik gepost heb is mijn standaard code met de autofill tot aan rij 250.
Ik dacht dat je daar misschien iets in terug kon vinden die voor problemen zorgt?!
 
Probeer deze eens en kijk waar het nu nog mis loopt
Code:
Sub MeerprijsGlas_Speciaaltransport()
Dim lr As Integer
    lr = Columns(16).Cells(Rows.Count).End(xlUp).Row
'MIN en MAX tonen
    [AI13].Formula = "=MIN(T13:U13)"
    [AJ13].Formula = "=MAX(T13:U13)"

'Percentage terug geven
    [AK13].Formula = "=IF(AND(RC[-1]<=3060,RC[-2]<=1950),"""",IF(AND(RC[-1]<=3060,AND(RC[-2]>1950,RC[-2]<=2500)),15,IF(AND(AND(RC[-1]>3060,RC[-1]<=4400),RC[-2]<=2500),30,IF(OR(RC[-2]>2500,RC[-1]>4400),""Jumbo"",ONWAAR))))"
    
'Speciaal transport
    [AL13].Formula = "=IF(OR(RC[-3]>=2680,RC[-2]>=4400),""Speciaal transport, grote beglazing: ???€"","""")"
    
'Autofill van de 4 formules hierboven
    Range("AI13:AL13").AutoFill Range("AI13:AL" & lr), xlFillDefault
    
'Alles kopieren en plakken als waarden
    With Cells
        .Copy
        .PasteSpecial xlPasteValues
    End With
    Application.CutCopyMode = False
'Verwijderen van overbodige kolommen
    Columns("X:AH").Delete xlToLeft
    
'Kolombreedte aanpassen
    Rows("1:8").Delete xlUp
    Columns("T:U").ColumnWidth = 8
    
'Tariefprijs invullen
    [AB5].Formula = "=IF(RC[-4]="""","""",VLOOKUP(RC[-1],Tarief2,IF(RC[-2]=""N"",2,IF(RC[-2]=""A"",3,IF(RC[-2]=""Z"",4,FALSE))),FALSE))"
    
'Percentage berekenen
    [AC5].Formula = "=IF(RC[-5]=15,RC[-1]*0.15,IF(RC[-5]=30,RC[-1]*0.3,""""))"
    
'Totaal uitrekenen
    [AD5].Formula = "=IF(RC[-6]="""","""",(RC[-7]*RC[-1])/RC[-16])"
    lr = Columns(16).Cells(Rows.Count).End(xlUp).Row
'Autofill van de 3 formules hierboven
    Range("AB5:AD5").AutoFill Range("AB5:AD" & lr), xlFillDefault
    
'Getallen in deze kolom op 2 cijfers na de komma plaatsen
    Range("AB:AD").NumberFormat = "0.00"

End Sub
 
Even gecheckt nu en alles inderdaad perfect nu!!
Bedankt voor de aanpassing en der vereenvoudiging van mijn formule.
Ik zie en snap wel waar je ze hebt aangepast.
De Autofill ging ik wel zeker niet alleen vinden!!!

Bij deze super veel dank!
Nu had ik nog 1 simpel vraagje!
Ik heb al zitten googlen, maar precies niet goed genoeg.

Mijn macro staat in een module en opgeslaan via een gewoon excel bestand.
Uiteindelijk heb ik deze macro gekoppeld aan een knop in mijn werkbalk.
Het probleem zoals u waarschijnlijk al vermoed...
telkens ik een excel bestand genereer uit mijn programma en ik start mijn macro, dan opent die andere werkmap ook waar de macro staat opgeslaan in de module.
Hoe kan ik dit probleem oplossen?
Ik wil gewoon mijn macro in ieder bestand kunnen toepassen zonder dat de andere werkmap ook opent.

Special Thanks to Warme bakkertje!!!

Mvg
 
Zet de macro in je persoonlijke macromap en dan is hij toegangkelijk vanuit ieder bestand
 
Mag de macro in een module staan?
En moet ik dan vanuit de vba editor mijn bestand exporteren naar
C:\Program Files\Microsoft Office\OFFICE11\MACROS

Welke extensie heeft mijn bestand dan? Een gewone .xls of .bas of...

Grtz
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan