Close
Duke shfaqur rezultatin -9 deri 0 prej 6
  1. #1
    i/e regjistruar Maska e Patrioti
    Anėtarėsuar
    17-01-2003
    Vendndodhja
    Neumuenster
    Postime
    347

    Excel - Macro pėr goalseek()

    Pershendetje cuna !

    Kam nje "excel spreadsheet" me disa te dhena experimentale, ne te cilin ne kollona te caktuara jane futur:
    - vlerat e lexuara gjate experimentit (le ta zeme kollona A)
    - dhe ne disa kollona ta tjera rezultatet (la e ta zeme kollona B)

    Mirepo rezultatet nuk jane ashtu sic duhet te ishin sepse vlerat lexuara jane te gabuara.

    Meqenese une e di sesa duhet te jete rezultati provova te ndroj vlerat e lexuara gjate experimentit duke shfrytezuarar funksionin "gool seek" ne excel. Pra ti shenon (highlight) kutine B1 shkon ne excel te funksioni "goal seek" dhe ben ndrimin e vleres ne B1(vlere e llogaritur) duke ndryshuar vleren e A1(vlere e lexuar). Deri ketu cdo gje eshte ne rregull ndaj dhe te gjithe proceduren e mesiperme e incizova ne Macro.

    Problemi qendron se kur une dua te ndryshoj vlerat e shume kutive p.sh.nga B1 deri te B55 (rezultatet) nepermjet ndryshimit te kutive A1 deri te A55 (vlerat e lexuara) atehere kete nuk mund ta bej thjesh duke shenuar (highlightur) njeherazi gjithe kutiat qe do te ndryshosh. Ne kete rast exceli te jep error duke te thene qe 'reference must be a single cell'

    Tani pyetja ime eshte: A ka ndonje mundesi per ta bere kete duke ndruar kodin e macros se incizuar?
    ---------------------

    Nuk e di sa qarte u shpjegova me siper, por i thene me pak fjale problemi qendron ne shkrimin (apo incizimin) e nje makroje qe do te ndronte vlerat e kutive nga B1 - B...... duke ndruar vlerat e kutive A1- A........

    Bashkangjitur po fus kodin qe une incizova. Ne te cilin behet ndrimi i nje vlere te vetme duke ndruar me "goal seek" vetem nje kuti.


    Faleminderit
    Skedarėt e Bashkėngjitur Skedarėt e Bashkėngjitur
    Duhet te dish dicka, per te kuptuar qe sdi asgje.

  2. #2
    Programues Softueresh Maska e edspace
    Anėtarėsuar
    04-04-2002
    Vendndodhja
    Filadelfia, SHBA
    Postime
    2,565
    Mėnyra mė e thjeshtė ėshtė tė vedosėsh nė macro njė komandė pėr ēdo rresht.

    Kodi:
    Sub Macro1()
    
        Range("B1").GoalSeek Goal:=0, ChangingCell:=Range("A1")
        Range("B2").GoalSeek Goal:=0, ChangingCell:=Range("A2")
        Range("B3").GoalSeek Goal:=0, ChangingCell:=Range("A3")
        Range("B4").GoalSeek Goal:=0, ChangingCell:=Range("A4")
        Range("B5").GoalSeek Goal:=0, ChangingCell:=Range("A5")
    '   ...
    '   ...
    '   ...
        Range("B30").GoalSeek Goal:=0, ChangingCell:=Range("A30")
        
    End Sub

    Mund tė krijosh edhe funksione qė lexojnė ēdo vlerė tė kollonės, por nqs ti e di sa vlera do kesh nė njė kolonė, atėherė thjesht shkruaj nga njė komandė goalseek pėr ēdo vlerė qė do tė ndryshosh.
    Edi

  3. #3
    i/e regjistruar Maska e Patrioti
    Anėtarėsuar
    17-01-2003
    Vendndodhja
    Neumuenster
    Postime
    347
    Faleminderit per pergjigjen Edspace !

    Gjithsesi, une kujtoja se me ane e ndonje "komande" te caktuar do te ishte e mundur ta "autamatizoje" kodin.
    Dicka te tille gje qe do te kishte disa avantazhe:
    Te shkurton pune
    Te lejon qe me pak ndryshime macro te perdoret edhe per kutia/kollona te tjera.
    Duhet te dish dicka, per te kuptuar qe sdi asgje.

  4. #4
    Programues Softueresh Maska e edspace
    Anėtarėsuar
    04-04-2002
    Vendndodhja
    Filadelfia, SHBA
    Postime
    2,565
    Mė poshtė shkruajta njė macro tė vogėl qė mundėson goalseek pėr tė gjithė kolonėn vetėm me njė komandė.

    Punėn e kryen GoalSeekKolonen, ndėrsa GoalSeekA dhe GoalSeekB janė dhėnė si shembuj. Argumentat e GoalSeekKolonen janė njėsoj si GoalSeek i excel por pranon mė shumė se njė kuti (kuadrat). Nėse kuadrati ėshtė i pavlefshėm, programi nuk bėn asgjė.

    Shiko skedarin e bashkėngjitur pėr njė dokument shembull nė Excel. Nėse ke diēka tė paqartė, pyet pėrsėri.

    Kodi:
    Sub GoalSeekKolonen(ByRef kol1 As Range, vlera As Double, ByRef kol2 As Range)
        For i = 1 To kol1.Rows.Count Step 1
            On Error Resume Next
            kol1.Cells(i).GoalSeek goal:=vlera, ChangingCell:=kol2.Cells(i)
        Next
    End Sub
    
    Sub GoalSeekB()
        'ndryshon A1 qe vlera e B1 te jete 1
        'ndryshon A2 qe vlera e B2 te jete 1
        '...
        '...
        'ndryshon A15 qe vlera e B15 te jete 1
        Call GoalSeekKolonen(Range("B1:B15"), 1, Range("A1:A15"))
    End Sub
    
    Sub GoalSeekC()
       'ndryshon A1 qe vlera e C1 te jete 2
        'ndryshon A2 qe vlera e C2 te jete 2
        '...
        '...
        'ndryshon A15 qe vlera e C15 te jete 2
        Call GoalSeekKolonen(Range("C1:C15"), 2, Range("A1:A15"))
    End Sub
    Skedarėt e Bashkėngjitur Skedarėt e Bashkėngjitur
    Ndryshuar pėr herė tė fundit nga edspace : 13-07-2005 mė 00:25
    Edi

  5. #5
    i/e regjistruar Maska e Emigranti
    Anėtarėsuar
    28-04-2002
    Vendndodhja
    Canada
    Postime
    105
    Mund t'ju jap nje sugjerim qe mund te jete i vlefshem jo vetem per kete rast, por edhe per raste te tjera, sidomos nqs nuk ben "incizim" macros siē e quani ju, por duke e programuar macron "from scratch".

    Para se gjithash converto fleten ne R1C1 style.(Tool->Options-> General dhe check R1C1 style). Ne vend te germave kolonat do te pecaktohen me numra.
    Ne macro tani (gjithmone jo kur e incizon, por kur e type) mund t'i referohesh ēdo cell-i te veēante si Cells(i,j) ku i-numri i rreshtit, j-numri i kolones. Kjo lehteson shume perdorimin e cells te ndryshem brenda loop duke perdorur indexet, psh

    for i = 1 to 10
    cells(i,i) = i
    next i

    ky kod i thjeshte mbush diagonal qelizat ne nje flete me numrin i. (nga 1 ne 10)

    Me pak durim mund te ushtrohesh te marresh vlerat qe jane ne cell ose te ndryshosh vlerat e cell.

    Cheers!

  6. #6
    i/e regjistruar Maska e Patrioti
    Anėtarėsuar
    17-01-2003
    Vendndodhja
    Neumuenster
    Postime
    347
    Pikes ike rene Edspaspace! Eshte tamam ajo qe me duhet.
    E provova dhe punonte per mrekulli.

    Tani per hir te temes edhe nje pyetej tjeter.

    A mundet qe macro te shkruhet ne menyre te tille qe:
    Ndryshon A1 qe vlera e B1 te behet 2
    Ndryshon A2 qe vlera e B2 te behet 4
    Ndryshon A3 qe vlera e B3 te behet 6

    Pra vlerat ne kollonen B jane numra te ndryshem te cilet
    - ose ndjekin ndonje formule te caktuar,
    - ose jane te shkruara diku p.sh.
    B1= E1
    B2=E2
    E keshtu me radhe......

    Mendoj qe nje makro e tille do ishte me interes per kedo qe i takon te punoje ne excel.

    Faleminderit !
    Duhet te dish dicka, per te kuptuar qe sdi asgje.

Regullat e Postimit

  • Ju nuk mund tė hapni tema tė reja.
  • Ju nuk mund tė postoni nė tema.
  • Ju nuk mund tė bashkėngjitni skedarė.
  • Ju nuk mund tė ndryshoni postimet tuaja.
  •