Foros del Web » Soporte técnico » Ofimática »

Ayuda con Macro (Funcion Propia) Excel

Estas en el tema de Ayuda con Macro (Funcion Propia) Excel en el foro de Ofimática en Foros del Web. Hola foreros! Me podrian ayudar con una macro, y es que tengo una columna (G) que tengo que llenar dependiendo del valor de A4 en ...
  #1 (permalink)  
Antiguo 19/10/2006, 12:08
Avatar de jsegundo  
Fecha de Ingreso: noviembre-2003
Mensajes: 65
Antigüedad: 21 años
Puntos: 0
Ayuda con Macro (Funcion Propia) Excel

Hola foreros!

Me podrian ayudar con una macro, y es que tengo una columna (G) que tengo que llenar dependiendo del valor de A4 en este caso, donde mando llamar la funcion es en C4 de esta manera =wrang(A4) en C4 me debe regresar el valor de A4 y la columna desde G5 hasta G14 se debe llenar con los datos de H5 hasta H14, esto si el dato capturado en A4 es AXAS, si fuera DELTAS se llenaria con los datos de I5 hasta I14 y si fuera Torres seria llenado con los datos de J5 hasta J14, esto para que la celda B4 tome la validacion de lo que se debe capturar en esa celda.

En C4 tengo la validacion como una lista y toma el rango de G5 hasta G14, por eso depende de la funcion wrang() porque es variable dependiendo de lo que se capture en Valor (Columna A4)

No se si este revuelto o tal vez no se pueda, la cosa es que cuando pasa el valor de AXAS marca error, y cuando es diferente como ejemplo puse que me regrese el valor capturado.

Que esta mal?

Código:
Function wrang(rng)
    nm = ActiveSheet.Name
    Dim i As Long
    Dim g As Long
    Dim v As Long
    
    If IsEmpty(rng) Then
        wrang = ""
    End If
    
    If rng = "AXAS" Then
        wrang = "AXAS 1"
        g = 71  'rango
        v = 72
        i = 5
        For i = 5 To 14
            rx = Trim(Str(i))   ' Fila
            cl1 = Trim(Chr(g))  ' Rango Columna G
            cl2 = Trim(Chr(v))  ' Variable Columna H
            Sheets(nm).Range(cl1 + rx) = Sheets(nm).Range(cl2 + rx).Value 'Costo
        Next i
    Else
        wrang = rng
        'Sheets("Hoja1").Range("G5") = "Hola"
    End If
    
End Function
  #2 (permalink)  
Antiguo 19/10/2006, 12:57
 
Fecha de Ingreso: septiembre-2006
Mensajes: 8
Antigüedad: 18 años, 2 meses
Puntos: 0
La solución que te presento es en base a lo que creo que necesitas hacer,
no se si comprendo finalmente lo que necesitás, pero según lo que entendí no te es necesario un macro; deberias probar una validación en cada celda en columna B según el valor de cada celda en la columna A. Estos valores de la columna A deben ser a su vez iguales a H4 o I4 o J4.

Entonces:
Debes validar las celdas A#: -Permitir: "Lista" -origen: "=$H$4:$J$4"
(esto elimina la posibilidad de poner otros valores)

Debes validar las celdas B# como "Lista" con origen (escrito abajo):
=SI(B4=$H$4;H5:H14;SI(B4=$I$4;I5:I14;SI(B4=$J$4;J5 :J14)))
(esto selecciona los datos de la lista según el valor de A#)

para Validar, seleccionas una celda, por ejemplo B4, te vas a: Datos-Validación...

Eso es todo, espero te sea útil.

Última edición por LgVudu; 19/10/2006 a las 13:03
  #3 (permalink)  
Antiguo 19/10/2006, 15:10
Avatar de jsegundo  
Fecha de Ingreso: noviembre-2003
Mensajes: 65
Antigüedad: 21 años
Puntos: 0
Muchas Gracias, funciono a la perfeccion.

Me hubiera gustado saber de todas formas el porque no funciono de la otra manera, porque podria servirme en otra ocasion.

Saludos!
  #4 (permalink)  
Antiguo 31/10/2006, 02:52
 
Fecha de Ingreso: octubre-2006
Mensajes: 1
Antigüedad: 18 años
Puntos: 0
Hola Necesito Una Funcion - Base De Datos. Ej Escribiendo Por Ejemplo Madrid (en Una Columna) Quiero Que (EN OTRA COLUMNA ) Salga Importe -100, Y Escribiendo Barcelona Importe - 400. Como Hay Que Harerlo
  #5 (permalink)  
Antiguo 31/10/2006, 04:15
Avatar de 3pies
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Desde una destilería
Mensajes: 2.584
Antigüedad: 20 años, 11 meses
Puntos: 144
SYLWKA, abre un nuevo tema, cuando quieras preguntar algo, porque sino, esto de preguntar nuevamente, con otro asunto distinto, sobre una pregunta ya efectuada, es un caos.

Mira a ver si esto es lo que buscas.

Salu2
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:01.