Telefonszámunk: 1-472-0679

[Resolved] a sok “if” helyett valami egyszerűbbet…

Kezdőlap Fórumok Excel programozás [Resolved] a sok “if” helyett valami egyszerűbbet…

Topic Resolution: Resolved
4 bejegyzés megtekintése - 1-4 / 4
  • Szerző
    Bejegyzés
  • #9759
    Potus
    Felhasználó

      Hello!

      van ez az alábbi makróm. Szeretném a lehető legegyszerűbb módon úgy kiegészíteni, hogy a kivonások eredményét csak akkor írja be a cellákba , ha azok nagyobbak vagy egyenlőek nullával. Ha kisebbek akkkor nullát írjon. Meg lehet úgy oldani, hogy ne kelljen sok „if”-et alkalmazni? előre is köszi!!!

      Sub Health_Data_Fresh()

      If Sheets(„service2”).Range(„bz2”) <> Sheets(„service2”).Range(„ca1”) Then
      Sheets(„service2”).Range(„bx6”) = Sheets(„service2”).Range(„bz3”) * Sheets(„service2”).Range(„ch6”)
      Sheets(„service2”).Range(„bx7”) = Sheets(„service2”).Range(„bz3”) * Sheets(„service2”).Range(„ch7”)
      Sheets(„service2”).Range(„bx8”) = Sheets(„service2”).Range(„bz3”) * Sheets(„service2”).Range(„ch8”)
      Sheets(„service2”).Range(„bx9”) = Sheets(„service2”).Range(„bz3”) * Sheets(„service2”).Range(„ch9”)
      Sheets(„service2”).Range(„bx10”) = Sheets(„service2”).Range(„bz3”) * Sheets(„service2”).Range(„ch10”)
      Sheets(„service2”).Range(„bx11”) = Sheets(„service2”).Range(„bz3”) * Sheets(„service2”).Range(„ch11”)
      Sheets(„service2”).Range(„ci6”) = Sheets(„service2”).Range(„ci6”) – Sheets(„service2”).Range(„bx6”)
      Sheets(„service2”).Range(„ci7”) = Sheets(„service2”).Range(„ci7”) – Sheets(„service2”).Range(„bx7”)
      Sheets(„service2”).Range(„ci8”) = Sheets(„service2”).Range(„ci8”) – Sheets(„service2”).Range(„bx8”)
      Sheets(„service2”).Range(„ci9”) = Sheets(„service2”).Range(„ci9”) – Sheets(„service2”).Range(„bx9”)
      Sheets(„service2”).Range(„ci10”) = Sheets(„service2”).Range(„ci10”) – Sheets(„service2”).Range(„bx10”)
      Sheets(„service2”).Range(„ci11”) = Sheets(„service2”).Range(„ci11”) – Sheets(„service2”).Range(„bx11”)
      End If

      Sheets(„service2”).Range(„bz3”) = Sheets(„service2”).Range(„ca1”)

      End Sub

      Potus

      #9760
      delila
      Felhasználó

        Szia!

        Nem olyan sok, 6 IF kell hozzá. Viszont lehet egyszerűsíteni.

        Sub Health_Data_Fresh()
            With Sheets("service2")
                If .Range("bz2") <> .Range("ca1") Then
                    .Range("bx6") = .Range("bz3") * .Range("ch6")
                    .Range("bx7") = .Range("bz3") * .Range("ch7")
                    .Range("bx8") = .Range("bz3") * .Range("ch8")
                    .Range("bx9") = .Range("bz3") * .Range("ch9")
                    .Range("bx10") = .Range("bz3") * .Range("ch10")
                    .Range("bx11") = .Range("bz3") * .Range("ch11")
                    If .Range("ci6") - .Range("bx6") <= 0 Then .Range("ci6") = 0 Else .Range("ci6") = .Range("ci6") - .Range("bx6")
                    If .Range("ci7") - .Range("bx7") <= 0 Then .Range("ci7") = 0 Else .Range("ci7") = .Range("ci7") - .Range("bx7")
                    'stb.
                End If
                .Range("bz3") = .Range("ca1")
            End With
        End Sub

        Delila

        #9761
        Potus
        Felhasználó

          Kedves Delila!

          ZSENIÁLIS!

          Köszönöm szépen!

          Potus

          #9763
          delila
          Felhasználó

            Kedves egészségedre!

          4 bejegyzés megtekintése - 1-4 / 4
          • Be kell jelentkezni a hozzászóláshoz.