Tema Cerrado
Resultados 1 al 3 de 3

Tema: [SOLUCIONADO] Pulsar intro y actualizar el valor de la celda

  1. #1 Arriba
    Usuario registrado
    Me Conecto Desde
    Users Country Flag jaimecruz va por un camino distinguido
    Fecha de Ingreso
    11/2008
    Versión Excel
    Excel 2007
    Mensajes
    39
    Gracias
    0
    Agradecido 1 vez en 1 post

    Predeterminado [SOLUCIONADO] Pulsar intro y actualizar el valor de la celda

    Dado que no tengo demasiados conocimientos para programación de macros, estoy intentando hacer lo máximo que pueda mediante formulas en excel y emitir comandos sencillos en la macro con la minima programacion posible.
    Tengo dos hojas "hoja de control" y "valoracion u.o." En esta ultima hoja es donde hago formulas en excel que me sirvan para la macro. La "hoja de control" es una hoja con datos en la que hay que calcular los subtotales (pero la fila de subtotales no siempre se calcula en la misma fila, sino que varia en función de datos de la hoja "valoracion u.o."


    Tengo la siguiente macro:

    Sub Macro2()
    '
    ' Totalizar hoja de control Macro
    '

    Sheets("valoracion u.o.").Select
    CeldaTotales = Range("J5").Value
    Subtotales = "=" & Range("J6").Value
    Sheets("Hoja de Control").Select
    Range(CeldaTotales).Select
    Range(CeldaTotales).Formula = Subtotales
    Range(CeldaTotales).Select

    End Sub

    En J5 le tengo puesto B76, con lo que CeldaTotales es b76
    En J6 le tengo puesto en formato texto SUMA(B5:B76), con lo que Subtotales es "=SUMA(B5:B76)"

    El caso es que despues de ejecutar la macro la celda B76 aparece como si tuviera un error de nombre, pero si pincho intro en esa celda ya si que calcula la formula.

    ¿Como puedo hacerlo para incorporar esto a mi macro?

    Otra duda para manejarme mejor con los rangos.

    Si quiero usar variables dentro de un rango ¿como se deberia escribir en estos dos ejemplos?:
    Variable 1 = B76
    Variable 2 = C76
    Ejemplo 1
    Quiero seleccionar el rango de B5 a la Variable 1:
    Range ("B76:variable1").Select
    Quiero seleccionar el rango de la Variable 1 a la Variable 2:
    Range (variable1:variable2).Select

    ¿Así estaría bien?.
    Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!

  2. #2 Arriba
    Super Moderador
    Me Conecto Desde
    Users Country Flag mjrofra va por un camino distinguido Avatar de mjrofra
    Fecha de Ingreso
    05/2009
    Versión Excel
    Excel 2002
    Mensajes
    2,330
    Gracias
    18
    Agradecido 209 veces en 188 posts

    Predeterminado Re: Pulsar intro y actualizar el valor de la celda

    Hola jaimecruz

    Cita Iniciado por jaimecruz Ver Mensaje
    ...El caso es que despues de ejecutar la macro la celda B76 aparece como si tuviera un error de nombre, pero si pincho intro en esa celda ya si que calcula la formula.

    ¿Como puedo hacerlo para incorporar esto a mi macro?
    creo que el problema está en que estás usando ".formula". En VBA la fórmula se escribe en inglés, por eso cuando la pasas a Excel no la reconoce a menos que vayas y la reingreses manualmente presionando Enter. Dos posibles soluciones (si ese es el error):

    1-. Usa ".formulalocal" en lugar de ".formula", algo así:

    Código:
    Range(CeldaTotales).FormulaLocal = Subtotales
    2-. Usa en la cadena de texto la fórmula en inglés "=sum(b5:b76)" y usas ".formula como lo vienes haciendo. Incluso, si usas "=sum(b5:b76) puedes, si quieres, prescindir el ".formula"... con "sum(b5:b76)" en la celda J6, la macro podría usar esto:

    Código:
    Range(CeldaTotales) = Subtotales
    y recuerda que en VBA no es necesario seleccionar un objeto para trabajar con él, creo que podrías reescribir tu macro así:

    Si estás usando "sum(b5:b76)" en J6:

    Código:
    Sub Macro2()
    
        With Sheets("valoracion u.o.")
            Sheets("Hoja de Control").Range(.Range("J5")) = "=" & .Range("J6")
        End With
    
    End Sub
    Si estás usando "suma(b5:b76)" en J6:

    Código:
    Sub Macro2()
    
        With Sheets("valoracion u.o.")
            Sheets("Hoja de Control").Range(.Range("J5")).FormulaLocal = "=" & .Range("J6")
        End With
    
    End Sub

    Cita Iniciado por jaimecruz Ver Mensaje
    ...Si quiero usar variables dentro de un rango ¿como se deberia escribir en estos dos ejemplos?:
    Variable 1 = B76
    Variable 2 = C76
    Ejemplo 1
    Quiero seleccionar el rango de B5 a la Variable 1:
    Range ("B76:variable1").Select
    Quiero seleccionar el rango de la Variable 1 a la Variable 2:
    Range (variable1:variable2).Select
    creo que debería ser algo así:

    para seleccionar el rango b5 a la variable1 (siendo la variable1 la cadena de texto b76):

    Código:
    range("b5:" & variable1).select
    y para seleccionar el rango de la Variable 1 a la Variable 2:

    Código:
    Range (variable1 & ":" & variable2).Select
    prueba esta macro a ver si te ayuda a aclarar un poco:

    Código:
    Sub Prueba()
    
    variable1 = "B76"
    variable2 = "C76"
    
    Range("b5:" & variable1).Select
    MsgBox "Se ha seleccionado el rango B5:" & variable1
    
    Range(variable1 & ":" & variable2).Select
    MsgBox "Se ha seleccionado el rango " & variable1 & ":" & variable2
    
    End Sub
    Última edición por mjrofra; 13-03-2010 a las 17:37
    Mauricio
    Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!

  3. #3 Arriba
    Usuario registrado
    Me Conecto Desde
    Users Country Flag jaimecruz va por un camino distinguido
    Fecha de Ingreso
    11/2008
    Versión Excel
    Excel 2007
    Mensajes
    39
    Gracias
    0
    Agradecido 1 vez en 1 post

    Predeterminado Re: Pulsar intro y actualizar el valor de la celda

    Mauricio, te agradezco enormemente toda tu ayuda. Las dos soluciones que me aportas funcionan perfectamente y la explicación que me has dado del uso de variables en un rango la he probado con la macro que me enviabas y va también de lujo.
    Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!

Tema Cerrado

Temas Similares

  1. Respuestas: 3
    Último Mensaje: 13-08-2009, 15:34
  2. Actualizar valores de Celda
    Por hugg en el foro Macros y programación VBA
    Respuestas: 4
    Último Mensaje: 31-07-2009, 12:32
  3. Respuestas: 7
    Último Mensaje: 05-06-2009, 03:00
  4. [SOLUCIONADO] Quitar el aviso de actualizar o no actualizar
    Por elseba1 en el foro Temas resueltos
    Respuestas: 4
    Último Mensaje: 13-05-2009, 04:09
  5. Respuestas: 8
    Último Mensaje: 11-11-2008, 02:37

Marcadores

Permisos de Publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes