LastRow dmv End(xlUp).Row probleem

Status
Niet open voor verdere reacties.

StefanBertens

Gebruiker
Lid geworden
20 jan 2011
Berichten
6
Hoi Allen:),

Als eerste bedankt voor het lezen van deze post. Ik ben hier nieuw en heb soms nog wat hulp nodig met programmeren. Hoop dat jullie mij kunnen helpen.

Code:
LastRow = Range("A65536").End(xlUp).Row - 1 'zoek laatst gevulde tij
    MsgBox LastRow ' laat deze rij zien (voor debuggen)
    Range(pFindRowPos("Product Code + Rstate")).Select 'geeft een range terug
    Selection.Offset(1, 0).Select
    ActiveCell.FormulaR1C1 = _
        "=Sample"
    With ActiveCell
    .AutoFill Destination:=.Resize(LastRow)
    End With1

Wat ik dus doe, is de laatst gebruikte rij in kolom A opzoeken en mijn formule kopieren t/m deze cell. Het probleem is dat ik bovenaan de sheet een variabel (voor het voorbeeld nu even 4) aantal lege rijen heb, waardoor mijn autofill dus 4 rijen te ver door loopt. Wanneer ik -4 doe komt dit nu uit wanneer er 5 lege rijen boven aan staan. Hoe kan ik deze legen rijen niet mee laten tellen in mijn autofill?

Alvast bedankt!:thumb:
 
Laatst bewerkt:
Ik weet niet wat voor Range
Code:
Range(pFindRowPos("Product Code + Rstate")).Select
teruggeeft dus heb hieronder een methode om eerste en laatste cel in kolom A te vinden om deze vervolgens te gebruiken in een range en jouw formule "=sample" 1 kolom naar rechts te plaatsen. Een en ander dus zonder autofill, wellicht kun je hier al wat mee.

Code:
Sub tst()
Dim Firstrow As Long, Lastrow As Long

 Lastrow = Cells(Rows.Count, "A").End(xlUp).Row
 Firstrow = Cells(1, "A").End(xlDown).Row
 
    With Range("A" & Firstrow & ":A" & Lastrow).Offset(0, 1)
        .Formula = "=Sample"
    End With
    
End Sub
 
Of anders deze
Code:
frow = Cells(1, 1).End(xlDown).Address
lrow = Cells(Rows.Count, 1).End(xlUp).Address
With Range(pFindRowPos("Product Code + Rstate")).Offset(1)
        .Formula = "=Sample"
        .AutoFill .Resize(Range(Range(frow), Range(lrow)).Rows.Count)
End With
 
Laatst bewerkt:
Hoi Eric en Rudi,

Super!! Ik ben er uit gekomen.
pFindRowPos is een functie die de locatie van een cell met een bepaalde tekst opzoekt.
Mocht je interesse hebben kan ik hem hier posten?
 
Hoi Eric en Rudi,

Super!! Ik ben er uit gekomen.
pFindRowPos is een functie die de locatie van een cell met een bepaalde tekst opzoekt.
Mocht je interesse hebben kan ik hem hier posten?
 
Top :thumb:
Je mag steeds je macro posten zodat we eens kunnen zien of er nog wat aan gesleuteld kan worden (vereenvoudigen, kortere methodes e.d.)
 
Ik loop weer tegen een probleem aan:
Ik wil RC6 vervangen door waarde die terug komt van pFindRowPos.
Code:
With Range(pFindRowPos("Part")).Offset(1)
        .Formula = "=IF(ISERROR(VALUE(FIND("" "",RC[6]))),"""",MID(RC[6],FIND("" "",RC[6])+1,5))"
        .AutoFill .Resize(Range(Range(frow), Range(lrow).Offset(-1)).Rows.Count)
End With

Dus wat ik wil, maar niet lukt:

Code:
variable = Range(pFindRowPos("Part")).Addresss
With Range(pFindRowPos("Rstate")).Offset(1)
        .Formula = "=IF(ISERROR(VALUE(FIND("" ""," & variable & "))),"""",MID(RC[6],FIND("" "",RC[6])+1,5))"
        .AutoFill .Resize(Range(Range(frow), Range(lrow).Offset(-1)).Rows.Count)
End With

Ik moet eerlijk toegeven dat ik deze wel op het internet gevonden heb en daarna aangepast naar wat ik nodig had.
Code:
Private Function pFindRowPos(sText As Variant, _
  Optional SearchDirection As XlSearchDirection = xlNext, _
  Optional SearchOrder As XlSearchOrder = xlByRows) As String

    Dim lResult As String, oRg As Range

    Set oRg = Cells.Find(What:=sText, LookIn:=xlValues, _
    LookAt:=xlPart, SearchOrder:=SearchOrder, _
                 SearchDirection:=SearchDirection, _
    MatchCase:=False, SearchFormat:=False)

    If Not oRg Is Nothing Then lResult = oRg.Address

    pFindRowPos = lResult

    Set oRg = Nothing
End Function
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan