Autofill variabele startrij en stoprij

Status
Niet open voor verdere reacties.

Kirsten1712

Gebruiker
Lid geworden
11 jan 2017
Berichten
28
Goedemiddag

Ben al twee dagen het net aan het afschuimen naar dé oplossing en er is heel veel over terug te vinden, maar het lijkt me niet te lukken. Graag jullie hulp hiermee.

Bedoeling is dat er in een sheet dagelijks data wordt toegevoegd aan de bestaande data (niet overschreven, daarvoor zijn de databestanden te zwaar). In kolom 'u' wordt er dan de huidige datum ingevuld of de dag waarop de data uit het systeem wordt gehaald. Dit laat ik bepalen adhv een inputbox. Daarna zou de macro deze data moeten doortrekken tot aan de laatste regel waar er in kolom 'a' data staat.

Alles werkt goed, behalve die laatste stap. Excel trekt deze datum wel door maar tot helemaal onderaan de sheet.

Bij deze een gedeelte van de code, met de laatste poging die ik ondernam, deze geeft een fout aan.

Code:
sub test
    lastRow = Range("u1048576").End(xlUp).Row + 1
    Cells(lastRow, 21).Select
    
    datum = InputBox("Geef de datum in volgend format in xx/xx/xxxx.")
    
    ActiveCell = datum
    lastrow2 = Range("a1048576").End(xlUp).Offset(, 20)
    
     'Fout in deze regel  Selection.AutoFill Destination:=Range(ActiveCell.Range(lastRow, lastrow2)), Type:=xlFillCopy
    
end sub
 
Laatst bewerkt:
werkt dit ?

Code:
Sub TEST()
    Lastrow = Range("U" & Rows.Count).End(xlUp).Row + 1
    Cells(Lastrow, 21).Select
    
    datum = InputBox("Geef de datum in volgend format in xx/xx/xxxx.")
    
    ActiveCell = datum
    Lastrow2 = Range("A" & Rows.Count).End(xlUp).Row
    
Selection.AutoFill Destination:=Range("U" & Lastrow, "U" & Lastrow2), Type:=xlLinearTrend
    
End Sub
 
Gebruik 'cdate' voor goede ingaven in het blad.
Code:
Sub hsv()
With Cells(Rows.Count, 21).End(xlUp)
 .Offset(1) = CDate(InputBox("Geef de datum in volgend format in xx/xx/xxxx"))
 .Offset(1).Resize(IIf(Cells(Rows.Count, 1).End(xlUp).Row > .Row, Cells(Rows.Count, 1).End(xlUp).Row - .Row, 1)).DataSeries , 3, 1  'of .dataseries, xlChronological, xlDay
End With
End Sub
 
@ SjonR: Werkt perfect! Bedankt!

@ Harry: Ook jouw macro doet precies wat ik vraag, het enige verschil is dat deze de datum wel voor elke regel gaat optellen, alsof je dus enkel doortrekt met de vulgreep ipv "xlFillCopy". Maar dat is snel aangepast. Trouwens ook bedankt voor die tip ivm het datum format! Had ik helemaal niet aan gedacht..
 
Werkte nog niet helemaal perfect, want zoals Harry terecht opmerkte, de datum moet er wel als datum inkomen.
Code:
Sub TEST()
    Lastrow = Range("U" & Rows.Count).End(xlUp).Row + 1
    Cells(Lastrow, 21).Select
    
    datum = Cdate(InputBox("Geef de datum in volgend format in xx/xx/xxxx."))
    
    ActiveCell = datum
    Lastrow2 = Range("A" & Rows.Count).End(xlUp).Row
    
Selection.AutoFill Destination:=Range("U" & Lastrow, "U" & Lastrow2), Type:=xlLinearTrend
    
End Sub
 
Denk ook aan annuleren.
Code:
Sub hsv()
Dim c00
c00 = InputBox("Geef de datum in volgend format in xx/xx/xxxx")
 If IsDate(c00) Then
  With Cells(Rows.Count, 21).End(xlUp)
   .Offset(1).Resize(IIf(Cells(Rows.Count, 1).End(xlUp).Row > .Row, Cells(Rows.Count, 1).End(xlUp).Row - .Row, 1)) = CDate(c00)
  End With
 End If
End Sub
 
@ SjonR: Mee eens, dat had ik toegevoegd.

@ Harry: Annuleren zou 'normaal' nooit mogen voorvallen, maar inderdaad beter alles dichttimmeren wat mogelijk tot 'problemen' zou kunnen leiden.

Bedankt beide!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan