MS Excel

Collapse
X
 
  • Kellaaeg
  • Show
Clear All
new posts
  • contramortem
    Liige
    • 09/2003
    • 366

    #1

    MS Excel

    Kas Excelis on võimalik teha nii, et paneks automaatselt arvud suuruse järgi ritta? Näiteks on kasutusel veerud A, B ja C ning veerus D on A+B+C (AutoSum) ja veeru D järgi oleks vaja reastada read vastavalt D suurusele. Kui muuta ükskõik millises lahtris vastavat väärtust, arvutatakse kohe välja summa reas (D) ja järjestatakse read ümber vastavalt D suurusele ja seda siis automaatselt, tavaline sort käsk ei sobi, kuna seda peab kasutama peale iga väärtuse sisestamist uuesti.
    ...
  • mario89
    Liige
    • 05/2004
    • 194

    #2
    kas sul eesti keelne versioon või inglise keelne ?


    mina teada midagi taolist oli küll võimalik teha h34r vanasti olin exceli expert )

    Comment

    • qt
      Liige
      • 02/2004
      • 135

      #3
      salvesta sortimine makrosse ja lase see Worksheet_Change event'iga käima...

      Comment

      • contramortem
        Liige
        • 09/2003
        • 366

        #4
        inglise keelne ikka


        salvesta sortimine makrosse ja lase see Worksheet_Change event'iga käima...
        kahjuks ei saanud täpselt pihta mida ja kuidas teha
        ...

        Comment

        • digital
          Liige
          • 05/2002
          • 4155

          #5
          võta tools -> macro -> visual basic ediror ja viska sinna selline kood:
          Kood:
          Private Sub Worksheet_Change(ByVal Target As Range)
          Range("A1").CurrentRegion.Sort Range("A1")
          
          End Sub
          Eeldades siis, et tahad sortida tabelit, mis on ühes blokis lahtriga A1 (st A1-st võetakse siis niipalju ridasid alla ja paremale, kuipalju leitakse ja siis sellist ruutu sorteeritakse) ning sorteerida A1 all oleva tulba järgi. Muuda vastavalt oma vajadusele.

          Tegelikult sellised asju saab sealtsamast macro alammenüü alt macro recorderiga, kui ise ei oska otse kirjutada. Põhimõtteliselt paned makro salvestama, teed läbi vastavad operatsioonid ja siis pärast seod makro kas mingi nupuga töölehel (sub nupunimi_click näiteks) või mingi üldise eventiga, nagu näiteks praegu worksheet_change.

          Comment

          • saformo
            Liige
            • 03/2003
            • 1929

            #6
            Kui kasutad ainult 5 rida ja veerge A, B, C ja D ning tulemus on vaja peale sisestamist kohe sortida veeru D alusel väiksemast suurema suunas, siis lisa makroaknas (Alt+F11) vasakul Sheet1 aknasse:

            Private Sub Worksheet_Change(ByVal Target As Range)
            Worksheets("Sheet1").Range(Cells(1, 1), Cells(5, 4)).Select
            Worksheets("Sheet1").Range(Cells(1, 1), Cells(5, 4)).sort _
            Key1:=Worksheets("Sheet1").Range(Cells(1, 4), Cells(5, 4))
            '
            Cells(1, 5).Select
            End Sub

            ' See sordib kõik read automaatselt peale arvu sisestamist

            Comment

            • digital
              Liige
              • 05/2002
              • 4155

              #7
              Minu toodud kood on lihtsam, sest selle andmetabeli suurus võetakse automaatselt CurrentRegion objektiga, st automaatselt võetakse kõik read ja veerud; ette anna ainult piirkonna esimene lahter ja sorditava tulba esimene lahter.

              Comment

              • saformo
                Liige
                • 03/2003
                • 1929

                #8
                Sinu variant on tõesti lihtsam, lihvitud, nagu öeldakse. Ja kui vaja tabelit kaks korda järjest sortida, et vahepealsed read ka sorditud saaks (kui ridu palju), siis saab kahe reaga hakkama.

                Comment

                • haistag
                  Liige
                  • 03/2005
                  • 171

                  #9
                  mul ka exceli kohta küsimus .. kuidas saab nii sättida et näiteks 2 esimest rida , mis on tulpade pealkirjadeks , jääksid üleval servas alati nähtavaks kui näiteks vaadata 200. rida .

                  Comment

                  • saformo
                    Liige
                    • 03/2003
                    • 1929

                    #10
                    Enne kursor sobivasse kohta, siis rippmenüüst Windows -> Freeze Panes. Taastamine Windows -> Unfreeze Panes.
                    Sama võte võimaldab ka vasakult veerge samuti alati nähtavaks jätta, kui veerud ei mahu korraga ekraanile (kursor sobivasse kohta).

                    Printimiseks, et igal uuel lehel oleks veerupealdised (kui lehti mitu), Page Setup -> Sheet -> Rows to repeat at top (klikk) -> märgid read ja enter.

                    Comment

                    • haistag
                      Liige
                      • 03/2005
                      • 171

                      #11
                      tänud

                      Comment

                      Working...