** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Otros de Microsoft: Windows y Office > Excel
  Mensajes nuevos Mensajes nuevos RSS - Select Case
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoSelect Case

 Responder Responder
Autor
Mensaje
Erick Gamer Ver desplegable
Habitual
Habitual
Avatar

Unido: 08/Mayo/2016
Localización: Mexico
Estado: Sin conexión
Puntos: 121
Enlace directo a este mensaje Tema: Select Case
    Enviado: 04/Agosto/2017 a las 20:36
Hola cordiales saludos a todos.

Necesito evaluar toda una columna en Excel y en base al rango de su valor agregar un dato en otra columna de la misma hoja ejemplo:

Columna A
Si A2, <500 then B2=3
Si A3, >501 y <800 then B3=5
Si A4, >801 y <1000 then B4=8

Y asi suecesivamente pienso que con un Select Case solucionaria mi problema, pero no se como ir recorriendo las celdas y evaluando y agregando el valor.

Esto es lo que tengo hasta ahora me falta ir recorriendo las celdas:

Sub Macro1()
'
' Macro1 Macro
'

'
Select Case Range("A2").Value

          Case Is <= 500

              Range("B2").Value = 3

          Case Is <= 800

              Range("B2").Value = 5

          Case Is <= 1000

              Range("B2").Value = 8

          Case Is <= 2000

              Range("B2").Value = 10

          Case Is <= 4000

              Range("B2").Value = 25

End Select

                      
End Sub

No domino las macros en Excel por ello recurro a su ayuda.

Saludos

Erick Gamer.
Aprendiz de todos, maestro de nadie.
Arriba
AnSanVal Ver desplegable
Administrador
Administrador
Avatar

Unido: 16/Marzo/2005
Localización: España
Estado: Sin conexión
Puntos: 4949
Enlace directo a este mensaje Enviado: 05/Agosto/2017 a las 01:27

Primero.-  (Creo que) Los «topes» no los tienes bien. ¿Qué pasa si  [A2] = 500?. Es mucho para 3 y poco para  5. Lo mismo ocurre con 800 o 1000.


Más lógicos son estos topes:

<500 = 3     

>=500 y <800 = 5

>=800 y <1000 = 8

>=1000 =12



Segundo.-  No necesitas macros. Escribe en [B2]...

     =ELEGIR(COINCIDIR(A2;{0;500;800;1000});3;5;8;12)

... y copia/pega  [B2] hacia abajo hasta donde necesites.


¿Sigues prefiriendo una macros?



Pregunta lo que no sabes, recuérdalo para cuando te pregunten y ofrece tu ayuda (reconforta).

Mi sitio_web con ejemplos Excel.
Arriba
Erick Gamer Ver desplegable
Habitual
Habitual
Avatar

Unido: 08/Mayo/2016
Localización: Mexico
Estado: Sin conexión
Puntos: 121
Enlace directo a este mensaje Enviado: 07/Agosto/2017 a las 15:09
Gracias Sr. Antonio lo que usted comenta es correcto.

No necesariamente necesito usar Macros, pero fue lo que se me ocurrio ya que tengo 49 posibles variantes ya que lo estaba haciendo con un "Si" "Y" y me estaba quedando super larga la formula por ello lo del Select Case ya que no encontre la funcion de "Entre" en Excel. 

Con esta funcion "aclaro" no conocia, me funciona como debe, con una Macro quedaria un poco mas entendible lo que se requiere hacer?

Como quedaria una Macro solo para tener al menos dos posibles soluciones al problema?

Gracias y Saludos

Erick Gamer


Aprendiz de todos, maestro de nadie.
Arriba
AnSanVal Ver desplegable
Administrador
Administrador
Avatar

Unido: 16/Marzo/2005
Localización: España
Estado: Sin conexión
Puntos: 4949
Enlace directo a este mensaje Enviado: 08/Agosto/2017 a las 01:35
Pensaba que habías olvidado la consulta.

Podría ser una estructura así:
Sub Macro1()
  Dim celda As Range, filaU&
  filaU = Cells(Rows.Count, 1).End(xlUp).Row
  For Each celda In Range("A2:A" & filaU).Cells
    Select Case celda.Value
      Case Is < 500
        celda.Offset(, 1).Value = 3
      Case Is < 800
        celda.Offset(, 1).Value = 5
      Case Is < 1000
        celda.Offset(, 1).Value = 8
      Case Is < 2000
        celda.Offset(, 1).Value = 10
      Case Else
        celda.Offset(, 1).Value = 25
    End Select
  Next celda
End Sub


Pregunta lo que no sabes, recuérdalo para cuando te pregunten y ofrece tu ayuda (reconforta).

Mi sitio_web con ejemplos Excel.
Arriba
Erick Gamer Ver desplegable
Habitual
Habitual
Avatar

Unido: 08/Mayo/2016
Localización: Mexico
Estado: Sin conexión
Puntos: 121
Enlace directo a este mensaje Enviado: 09/Agosto/2017 a las 19:44
Gracias por la ayuda Sr. Antonio;

Tengo tres posibles soluciones a un mismo problema (Si Y, Muy Largo, Elegir Coincidir, Bastante Simplificado, y la Macro que me proporciona)  he optado por Elegir Coincidir para solucionar mi problema.

Muchas Gracias por la ayuda brindada se puede cerrar el hilo.

Saludos

Erick Gamer
Aprendiz de todos, maestro de nadie.
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable