Jump to content

Simplificar Codigo Case... End Case.


kristianoDl

Recommended Posts

Hola expertos podrian ayudarme a simplificar el codigo de mi formulario, esta dentro de un boton.

tengo dierentes condicionales, pero con un mismo resultado. podria ayudarme

e intentado con OR y <> para poder pero no es el mismo resultado.

este es el codigo que tengo en estos momentos:

  Case Is = Cells(i + 1, 7).Value = "D5": Cells(i + 1, 8).Value = "$ " &amp; Format(Resultado2 * 0.75, "#,##0.00"): Cells(i + 1, 9).Value = " " &amp; denominación
    Case Is = Cells(i + 1, 7).Value = "D6": Cells(i + 1, 8).Value = "$ " &amp; Format(Resultado2 * 0.75, "#,##0.00"): Cells(i + 1, 9).Value = " " &amp; denominación
    Case Is = Cells(i + 1, 7).Value = "K8": Cells(i + 1, 8).Value = "$ " &amp; Format(Resultado2 * 0.75, "#,##0.00"): Cells(i + 1, 9).Value = " " &amp; denominación
    Case Is = Cells(i + 1, 7).Value = "K6": Cells(i + 1, 8).Value = "$ " &amp; Format(Resultado2 * 0.75, "#,##0.00"): Cells(i + 1, 9).Value = " " &amp; denominación
    Case Is = Cells(i + 1, 7).Value = "J5": Cells(i + 1, 8).Value = "$ " &amp; Format(Resultado2 * 0.75, "#,##0.00"): Cells(i + 1, 9).Value = " " &amp; denominación
    Case Is = Cells(i + 1, 7).Value = "D9": Cells(i + 1, 8).Value = "$ " &amp; Format(Resultado2 * 0.75, "#,##0.00"): Cells(i + 1, 9).Value = " " &amp; denominación
    Case Is = Cells(i + 1, 7).Value = "C5": Cells(i + 1, 8).Value = "$ " &amp; Format(Resultado2 * 0.75, "#,##0.00"): Cells(i + 1, 9).Value = " " &amp; denominación
Case Is = Cells(i + 1, 7).Value = "G8": Cells(i + 1, 8).Value = "$ " &amp; Format(Resultado2 * 0.9, "#,##0.00"): Cells(i + 1, 9).Value = " " &amp; denominación
    Case Is = Cells(i + 1, 7).Value = "G9": Cells(i + 1, 8).Value = "$ " &amp; Format(Resultado2 * 0.9, "#,##0.00"): Cells(i + 1, 9).Value = " " &amp; denominación
    Case Is = Cells(i + 1, 7).Value = "H2": Cells(i + 1, 8).Value = "$ " &amp; Format(Resultado2 * 0.9, "#,##0.00"): Cells(i + 1, 9).Value = " " &amp; denominación
    Case Is = Cells(i + 1, 7).Value = "H3": Cells(i + 1, 8).Value = "$ " &amp; Format(Resultado2 * 0.9, "#,##0.00"): Cells(i + 1, 9).Value = " " &amp; denominación
    Case Is = Cells(i + 1, 7).Value = "H1": Cells(i + 1, 8).Value = "$ " &amp; Format(Resultado2 * 0.9, "#,##0.00"): Cells(i + 1, 9).Value = " " &amp; denominación
    Case Is = Cells(i + 1, 7).Value = "H4": Cells(i + 1, 8).Value = "$ " &amp; Format(Resultado2 * 0.9, "#,##0.00"): Cells(i + 1, 9).Value = " " &amp; denominación

como pueden ver, es una condicional de que si encuentra el numero de Cedula (D5, D6, H1, etc...) hace una multiplicacion, lo que es similar es la multiplicacion que realiza (0.75, 0.9)

Agradeceria su ayuda de corazon.

Link to comment
Share on other sites

Hola:

A ver que tal:


Select Case Cells(i + 1, 7).Value
Case "D5", "D6", "K8", "K6", "J5", "D9", "C5"
Cells(i + 1, 8).Value = "$ " & Format(Resultado2 * 0.75, "#,##0.00")
Cells(i + 1, 9).Value = " " & denominación
Case "G8", "G9", "H2", "H3", "H1", "D9", "H4"
Cells(i + 1, 8).Value = "$ " & Format(Resultado2 * 0.9, "#,##0.00")
Cells(i + 1, 9).Value = " " & denominación
Case Else
'...........
'...........
End Select
[/CODE]

Saludos

Link to comment
Share on other sites

Hola macro Antonio, gracias por tu sugerencia... solo que me daba error... :( o no pude implementarlo bien

tal vez porque utilizo un

 Select Case filas &gt; 0 

pensando y analizando llege a la conclusion de utilizar el "<>" y lo implemente de la siguiente forma....

For i = 1 To filas
    Resultado2 = Cells(i + 1, 4).Value
    denominación = "MN."
    If Resultado2 = Empty Then
        Resultado2 = Cells(i + 1, 5).Value
        denominación = "USD"
    End If
Select Case filas &gt; 0
        Case Is = Cells(i + 1, 7).Value = "D5" &lt;&gt; "D6" &lt;&gt; "K8": Cells(i + 1, 8).Value = "$ " &amp; Format(Resultado2 * 0.75, "#,##0.00"):     Cells(i + 1, 9).Value = " " &amp; denominación
        Case Is = Cells(i + 1, 7).Value = "D7" &lt;&gt; "D8" &lt;&gt; "K4": Cells(i + 1, 8).Value = "$ " &amp; Format(Resultado2 * 0.9, "#,##0.00"): Cells(i + 1, 9).Value = " " &amp; denominación
        Case Is = Cells(i + 1, 7).Value = "G7" &lt;&gt; "H8" &lt;&gt; "F5": Cells(i + 1, 8).Value = "$ " &amp; Format(Resultado2 * 0.9, "#,##0.00"): Cells(i + 1, 9).Value = " " &amp; denominación
    End Select
Next i

el problema que tengo es que si no ai dato en pesos o en dolares... con la condicional If... hace una operacion de .75 ... y quiciera saber si ahy una solucion a eso por que trate de porlo de la siguiente forma y no funciona:

Case Is = Cells(i + 1, 7).Value = " ": Cells(i + 1, 8).Value = "$ " &amp; Format(Resultado2 * 1, "#,##0.00"): Cells(i + 1, 9).Value = " " &amp; denominación

Gracias 

Link to comment
Share on other sites

Hola Macro Antonio, no he podido implementar el codigo que me facilitaste, y como yo lo puse, "<>" me da ciertos errores :S

podrias ayudarme, esto es todo lo que hace el boton, ojala puedas ayudarme

Private Sub CommandButton3_Click()

'manda una ventana de error para pedir ingresar datos del catalogo
If ComboBox2 = "" Then
NoCatForm.Show
Exit Sub
End If

'dimensiona las variables
Dim Resultado2 As Double
Dim filas As Long
Dim Numero As Integer

'filtro bucador de datos por numero de catalogo
Workbooks("BuscadorCustom4.3.xlsm").Activate
Application.ScreenUpdating = False
With Sheets("Hoja2")
    .Visible = True
    .Range("B1").CurrentRegion.Clear
        With Range("B1").CurrentRegion
            .AutoFilter 2, Criteria1:=Me.ComboBox2 &amp; "*"
            .Copy Sheets("Hoja2").Range("A1")
        End With
    .Range("A:A,D:D,K:K").Delete
    .Range("H1").Value = "COSTO"
    .Range("H1").Font.Bold = True
    .Range("I1").Value = "DENOMINACION"
    .Range("I1").Font.Bold = True
    .Select
End With

'condicional si esta en pesos o en dolares
filas = WorksheetFunction.CountA(Range("A:A")) - 1
For i = 1 To filas
    Resultado2 = Cells(i + 1, 4).Value
    denominación = "MN."
    If Resultado2 = Empty Then
        Resultado2 = Cells(i + 1, 5).Value
        denominación = "USD"
    End If

'busqueda segun la cedula y operacion para encontrar el precio costo
    Select Case filas &gt; 0
    Case Is = Cells(i + 1, 7).Value = " ": Cells(i + 1, 8).Value = "$ " &amp; Format(Resultado2 * 1, "#,##0.00"): Cells(i + 1, 9).Value = " " &amp; denominación

    Case Is = Cells(i + 1, 7).Value = "SD2": Cells(i + 1, 8).Value = "$ " &amp; Format(Resultado2 * 0.41454, "#,##0.00"): Cells(i + 1, 9).Value = " " &amp; denominación
    Case Is = Cells(i + 1, 7).Value = "TD4": Cells(i + 1, 8).Value = "$ " &amp; Format(Resultado2 * 0.13536, "#,##0.00"): Cells(i + 1, 9).Value = " " &amp; denominación
    Case Is = Cells(i + 1, 7).Value = "TD7": Cells(i + 1, 8).Value = "$ " &amp; Format(Resultado2 * 0.27918, "#,##0.00"): Cells(i + 1, 9).Value = " " &amp; denominación
    Case Is = Cells(i + 1, 7).Value = "TD2": Cells(i + 1, 8).Value = "$ " &amp; Format(Resultado2 * 0.27918, "#,##0.00"): Cells(i + 1, 9).Value = " " &amp; denominación
    Case Is = Cells(i + 1, 7).Value = "TD5": Cells(i + 1, 8).Value = "$ " &amp; Format(Resultado2 * 0.6016, "#,##0.00"): Cells(i + 1, 9).Value = " " &amp; denominación
    Case Is = Cells(i + 1, 7).Value = "TD3": Cells(i + 1, 8).Value = "$ " &amp; Format(Resultado2 * 0.18612, "#,##0.00"): Cells(i + 1, 9).Value = " " &amp; denominación
    Case Is = Cells(i + 1, 7).Value = "TD6": Cells(i + 1, 8).Value = "$ " &amp; Format(Resultado2 * 0.2115, "#,##0.00"): Cells(i + 1, 9).Value = " " &amp; denominación
    Case Is = Cells(i + 1, 7).Value = "A7": Cells(i + 1, 8).Value = "$ " &amp; Format(Resultado2 * 0.596712, "#,##0.00"): Cells(i + 1, 9).Value = " " &amp; denominación
    Case Is = Cells(i + 1, 7).Value = "A1": Cells(i + 1, 8).Value = "$ " &amp; Format(Resultado2 * 0.596712, "#,##0.00"): Cells(i + 1, 9).Value = " " &amp; denominación
    Case Is = Cells(i + 1, 7).Value = "HL1": Cells(i + 1, 8).Value = "$ " &amp; Format(Resultado2 * 0.27918, "#,##0.00"): Cells(i + 1, 9).Value = " " &amp; denominación
    Case Is = Cells(i + 1, 7).Value = "SD4": Cells(i + 1, 8).Value = "$ " &amp; Format(Resultado2 * 0.441, "#,##0.00"): Cells(i + 1, 9).Value = " " &amp; denominación
    Case Is = Cells(i + 1, 7).Value = "HL2": Cells(i + 1, 8).Value = "$ " &amp; Format(Resultado2 * 0.441, "#,##0.00"): Cells(i + 1, 9).Value = " " &amp; denominación
    'Allen Bradley  '
    Case Is = Cells(i + 1, 7).Value = "D5" &lt;&gt; "D6" &lt;&gt; "K8": Cells(i + 1, 8).Value = "$ " &amp; Format(Resultado2 * 0.75, "#,##0.00"): Cells(i + 1, 9).Value = " " &amp; denominación
    Case Is = Cells(i + 1, 7).Value = "K6" &lt;&gt; "J5" &lt;&gt; "D9": Cells(i + 1, 8).Value = "$ " &amp; Format(Resultado2 * 0.75, "#,##0.00"): Cells(i + 1, 9).Value = " " &amp; denominación
    Case Is = Cells(i + 1, 7).Value = "C5" &lt;&gt; "C2" &lt;&gt; "C3": Cells(i + 1, 8).Value = "$ " &amp; Format(Resultado2 * 0.75, "#,##0.00"): Cells(i + 1, 9).Value = " " &amp; denominación
    Case Is = Cells(i + 1, 7).Value = "C4" &lt;&gt; "C9" &lt;&gt; "H9": Cells(i + 1, 8).Value = "$ " &amp; Format(Resultado2 * 0.75, "#,##0.00"): Cells(i + 1, 9).Value = " " &amp; denominación
    Case Is = Cells(i + 1, 7).Value = "H8" &lt;&gt; "C8" &lt;&gt; "D3": Cells(i + 1, 8).Value = "$ " &amp; Format(Resultado2 * 0.75, "#,##0.00"): Cells(i + 1, 9).Value = " " &amp; denominación
    Case Is = Cells(i + 1, 7).Value = "J7" &lt;&gt; "B5" &lt;&gt; "B8": Cells(i + 1, 8).Value = "$ " &amp; Format(Resultado2 * 0.75, "#,##0.00"): Cells(i + 1, 9).Value = " " &amp; denominación
    Case Is = Cells(i + 1, 7).Value = "B4" &lt;&gt; "B3" &lt;&gt; "B7": Cells(i + 1, 8).Value = "$ " &amp; Format(Resultado2 * 0.75, "#,##0.00"): Cells(i + 1, 9).Value = " " &amp; denominación
    Case Is = Cells(i + 1, 7).Value = "B9" &lt;&gt; "B6" &lt;&gt; "E7": Cells(i + 1, 8).Value = "$ " &amp; Format(Resultado2 * 0.75, "#,##0.00"): Cells(i + 1, 9).Value = " " &amp; denominación
    Case Is = Cells(i + 1, 7).Value = "E9" &lt;&gt; "F1" &lt;&gt; "H6": Cells(i + 1, 8).Value = "$ " &amp; Format(Resultado2 * 0.75, "#,##0.00"): Cells(i + 1, 9).Value = " " &amp; denominación
    Case Is = Cells(i + 1, 7).Value = "J6" &lt;&gt; "K3" &lt;&gt; "F6": Cells(i + 1, 8).Value = "$ " &amp; Format(Resultado2 * 0.75, "#,##0.00"): Cells(i + 1, 9).Value = " " &amp; denominación
    Case Is = Cells(i + 1, 7).Value = "J2" &lt;&gt; "k7": Cells(i + 1, 8).Value = "$ " &amp; Format(Resultado2 * 0.75, "#,##0.00"): Cells(i + 1, 9).Value = " " &amp; denominación
    Case Is = Cells(i + 1, 7).Value = "G8" &lt;&gt; "G9" &lt;&gt; "H2": Cells(i + 1, 8).Value = "$ " &amp; Format(Resultado2 * 0.9, "#,##0.00"): Cells(i + 1, 9).Value = " " &amp; denominación
    Case Is = Cells(i + 1, 7).Value = "H3" &lt;&gt; "H1" &lt;&gt; "H4": Cells(i + 1, 8).Value = "$ " &amp; Format(Resultado2 * 0.9, "#,##0.00"): Cells(i + 1, 9).Value = " " &amp; denominación
    Case Is = Cells(i + 1, 7).Value = "E8" &lt;&gt; "J8" &lt;&gt; "D4": Cells(i + 1, 8).Value = "$ " &amp; Format(Resultado2 * 0.9, "#,##0.00"): Cells(i + 1, 9).Value = " " &amp; denominación
    Case Is = Cells(i + 1, 7).Value = "D7" &lt;&gt; "D8" &lt;&gt; "K4": Cells(i + 1, 8).Value = "$ " &amp; Format(Resultado2 * 0.9, "#,##0.00"): Cells(i + 1, 9).Value = " " &amp; denominación
    Case Is = Cells(i + 1, 7).Value = "E2" &lt;&gt; "E3" &lt;&gt; "C6": Cells(i + 1, 8).Value = "$ " &amp; Format(Resultado2 * 0.9, "#,##0.00"): Cells(i + 1, 9).Value = " " &amp; denominación
    Case Is = Cells(i + 1, 7).Value = "E5" &lt;&gt; "C1" &lt;&gt; "D1": Cells(i + 1, 8).Value = "$ " &amp; Format(Resultado2 * 0.9, "#,##0.00"): Cells(i + 1, 9).Value = " " &amp; denominación
    Case Is = Cells(i + 1, 7).Value = "C7" &lt;&gt; "E6" &lt;&gt; "G5": Cells(i + 1, 8).Value = "$ " &amp; Format(Resultado2 * 0.9, "#,##0.00"): Cells(i + 1, 9).Value = " " &amp; denominación
    Case Is = Cells(i + 1, 7).Value = "H7" &lt;&gt; "K2" &lt;&gt; "J4": Cells(i + 1, 8).Value = "$ " &amp; Format(Resultado2 * 0.9, "#,##0.00"): Cells(i + 1, 9).Value = " " &amp; denominación
    Case Is = Cells(i + 1, 7).Value = "J3" &lt;&gt; "F9" &lt;&gt; "F3": Cells(i + 1, 8).Value = "$ " &amp; Format(Resultado2 * 0.9, "#,##0.00"): Cells(i + 1, 9).Value = " " &amp; denominación
    Case Is = Cells(i + 1, 7).Value = "F4": Cells(i + 1, 8).Value = "$ " &amp; Format(Resultado2 * 0.9, "#,##0.00"): Cells(i + 1, 9).Value = " " &amp; denominación
    Case Is = Cells(i + 1, 7).Value = "G7" &lt;&gt; "H8" &lt;&gt; "F5": Cells(i + 1, 8).Value = "$ " &amp; Format(Resultado2 * 0.9, "#,##0.00"): Cells(i + 1, 9).Value = " " &amp; denominación
    Case Is = Cells(i + 1, 7).Value = "F8" &lt;&gt; "G6": Cells(i + 1, 8).Value = "$ " &amp; Format(Resultado2 * 0.94, "#,##0.00"): Cells(i + 1, 9).Value = " " &amp; denominación
    End Select
Next i

    With Sheets("Hoja2")
        uf = .Range("B" &amp; Rows.Count).End(xlUp).Row
        With .Cells
            .Columns.AutoFit
            .Rows.AutoFit
        End With
        .Range("C:E,G:G").Delete
        .Visible = False
    End With
    With Me.ListBox2
        .ColumnCount = 5
        .RowSource = "=Hoja2!A2:E" &amp; uf
    End With
Range("B1").AutoFilter
   With ActiveWindow
        .ScrollColumn = 2
        .ScrollRow = 2
   End With
Application.ScreenUpdating = True
End Sub

Agradaceria tu ayuda.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

Privacy Policy