Hirdetés

Új hozzászólás Aktív témák

  • Declare

    őstag

    Elakadtam egy gondolatmenetben :B asszem megsem ertem teljesen a "loop" logikajat még.

    Ennek a makro resznek azt kellene csinalnia, hogy vizsgalja G oszlopt es ahol "Value1" erteket talal ott vegrahajtani par dolgot, ahol "Value2"-t ott mast, ahol "Value3" -t ott megint mast. Majd ha visszater a lap tetejen ujra az elsö "value2" ertekhez akkor vegzett. (atlathatosag kedveert leegyszerüsitettem, hogy a Value1,2,3 talalatokkor mit csinaljon, szoval elsö sorban a logikai hibat keresnem, nem alternativ makrot a feladatra :B )

    Nagyjabol jol müködik, de megsem. En ugy kepzelnem, hogy ennek ugy kellene futnia, hogy elindul G1 töl, megy lefele folyamatosan, majd eleri a tabla aljat, visszaer G1 re megy, megy es amikor elerte megint a value2 t akkor megall.

    E helyett ez többször egymas utan, össze vissza vegzi el a müveleteket. Egyedül az elsö If nel ( a mycell) müködik ugy ahogy kell. A többi nem. (szoval a makro fut, meg is all, de a vegrahajtando parancsokbol latom, hogy valami nem jo, valahogy többször visszater es vegrahajt utasitasokat ugyan abban a cellaban.....bogarasztam a netet, futtattam többfele probalkozast, amiben valtoztatgattam ezt azt, de sehogy sem jo :( )

    igy elsö blikkre, meg tudjatok mondani, hol a logikai hiba?

    Dim i As Integer, mycell As Range, myfind As Range, mycell2 As Range, elso As String, mycell3 As Range
    Set myfind = Range("F:F").Find(what:=myValue2, LookIn:=xlValues, lookat:=xlWhole, searchdirection:=xlNext)
    If Not myfind Is Nothing Then
    elso = myfind.Address
    Do While True
    Set mycell = Range("F:F").Find(what:=myValue2, LookIn:=xlValues, lookat:=xlWhole, searchdirection:=xlPrevious, after:=myfind)
    Set mycell2 = Range("F:F").Find(what:=myValue1, LookIn:=xlValues, lookat:=xlWhole, searchdirection:=xlPrevious, after:=myfind)
    Set mycell3 = Range("F:F").Find(what:=myValue3, LookIn:=xlValues, lookat:=xlWhole, searchdirection:=xlPrevious, after:=myfind)
    If Not mycell Is Nothing Then
    i = mycell.Row
    Range("G" & i).Value = Range("=F" & i).Value
    End If
    If Not mycell2 Is Nothing Then
    i = mycell2.Row
    Range("G" & i).Value = Range("=F" & i).Value
    End If
    If Not mycell3 Is Nothing Then
    i = mycell3.Row
    Range("G" & i).Value = Range("=F" & i).Value
    End If
    Set myfind = Range("F:F").Find(what:=myValue2, LookIn:=xlValues, lookat:=xlWhole, searchdirection:=xlNext, after:=myfind)
    If myfind.Address = elso Then Exit Do
    Loop
    End If

Új hozzászólás Aktív témák