Saltar al contenido

macro, para rescatar (copiar) valor de una celda de hoja1 y duplicarla en hoja 2


Floyd

Recommended Posts

Estimados, muy buenas noches.

Les cuento que tengo problemas con una macro que realice lo siguiente:

en un libro, tengo cuatro hojas "Valor", "Mesa", "Silla 1" y "Silla 2". En la primera de estas, realizo el calculo final, donde en la columna "Valor agregado" irìa el valor total. El asunto es, que las demas hojas me proporcionan la cifra del "valor agregado" luego de realizar ciertos calculos. (obviamente la planilla es enorme y solo adjuntare una idea basica para ser mas conciso y aplicar sus enseñanzas en la planilla real). otro dilema, es que las hojas adjuntas estan con formulas que dependen del valor que se encuentra en la hoja "valor" (columna "Valor inicial").

Ahora bien, dependera del tipo de producto, el calculo que se realizara y la hoja que utilizaremos, pues bien, las hojas "Mesa", "Silla 1" y "Silla 2", poseen diferentes tipos de calculos (engorrosos, planilla ya existente la cual tuve que trabajar por obligaciòn con ellas, una idea simplificada es la que se entrega en el archivo adjunto). Entonces, lo que pretendo es: Con el valor que se entrega en "Valor inicial"(dinamico, es decir que es modificable) se calcule el VAlor total que iria en la columna "valor agregado", teniendo presente que se debera direccionar la hoja correcta de calculo y rescatar de esta ultima el valor "total" que iria en la primera hoja.

Estare muy agradecido, con quien pueda ayudarme, por lo que me han dicho es algo sencillo, pero recien estoy partiendo en vba y de verdad que lo he intentado, y en archivo adjunto, es lo ultimo que he intentado hacer.

muchas gracias

ejemplo.rar

Enlace a comentario
Compartir con otras webs

Invitado Cacho R

Para comprender mejor tu necesidad se me ocurre re-preguntar lo siguiente:

¿Qué pasaría si en la celda C4 de la hoja Silla 1 colocas "= Valor!E6", y en la celda F5 de la hoja Valor colocases "= 'Silla 1'!D8"?

¿Ello no te resolvería el problema sin ninguna necesidad de utilizar macros?...

Saludos, Cacho R.

Enlace a comentario
Compartir con otras webs

Primero antes que cualquier cosa, te doy las gracias por contestar.

mira, quizas no te percataste, pero las hojas Mesa, Silla 1 y Silla 2 dependen de un valor de la Primera hoja "Valor Inicial", para realizar

su calculo. Pues bien, lo complicado es, cuando ese valor cambia, pues es dinamico, es decir, si cambiamos el valor de Valor inicial, ya sea en cualquier tipo de producto, la hoja correcta, debera realizar el calculo y devolver el valor. Me entiendes??

Enlace a comentario
Compartir con otras webs

Invitado Cacho R

Efectivamente: por ello te propuse lo que te propuse...

¿O acaso E6 no es el valor inicial de Silla 1 trasladado a la hoja respectiva?

Te diría que analices un "poquito" mejor lo propuesto.

Saludos, Cacho R.

Enlace a comentario
Compartir con otras webs

Esta bien, ya entendi, pero como resuelvo las condiciones??

Si el producto es Mesa, vaya a Hoja "Mesa", calcule y presenteme el valor.

Si el producto es Silla 1, vala a hoja "Silla 1", calcule y presenteme el valor.

Si el producto es Silla 2, vaya a hoja "Silla 2", calcule y presenteme el valor.

Es decir, representado en sintaxis Si, seria: SI(x1="Mesa";Hoja"Mesa";SI(X2="Silla1";X3="Cafe");Hoja"Silla1";Hoja"Silla2")), quizas asi, me puedas ayudar y me entiendas.

Enlace a comentario
Compartir con otras webs

disculpa Cacho R, si te hice perder el tiempo, de verdad, Admito quiza no fue un buen ejemplo para representar el problema, pero si me lo permites y aùn te encuentras aqui, tratare de enviarte la planilla real, para que veas a que me refiero realmente.

nuevamente te pido mil disculpas.

Floyd

Enlace a comentario
Compartir con otras webs

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

  • 96 ¿Te parecen útiles los tips de las funciones? (ver tema completo)

    1. 1. ¿Te parecen útiles los tips de las funciones?


      • No
      • Ni me he fijado en ellos

  • Ayúdanos a mejorar la comunidad

    • Donaciones recibidas este mes: 0.00 EUR
      Objetivo: 130.00 EUR
  • Archivos

  • Estadísticas de descargas

    • Archivos
      177
    • Comentarios
      90
    • Revisiones
      27

  • Crear macros Excel

  • Mensajes

    • Saludos amigos espero estén bien Estoy intentando hacer un formulario que me convierta unidades de masa sin embargo  en el mejor de los casos solo he podido lograr la conversión de una unidad a la vez en los TextBox 1, 3, 5, 7, 9, 11 y 13 y cuando lo logro el resultado que se copia  en la celda no se corresponde con el obtenido originalmente en el Textbox del Formulario (frmconv)  ejemplo al convertir 1900 Kg a Lb el resultado en el TextBox1 =4188,78298142 sin embargo al guardar el resultado lo que se copia en la Celda  "F11" es  418.878.298.142,00, adicionalmente el resultado de la conversión no se visualiza inmediatamente por lo que debo de hacer click en los TextBox 1, 3, 5, 7, 9, 11 y 13  para ver el resultado. Mucho les sabre agradecer la ayuda que me puedan brindar. PRUEBA.xlsm
    • Saludos a ambos. Copiar y pegar por sí solas, no tengo el conocimiento de que sirvan como "evento" para actualizar las referencias que buscas hacer, en la forma que lo quieres hacer, ó la fórmula como la quieres hacer. Te recomiendo abrir un tema similar en Macros, es posible que algún Maestro te de alguna idea. Por otro lado, si debe ser con funciones, entonces tendías que interactuar con COLUMNA() y FILA() para que al pegar el destino "sepa" donde está ubicado e intentar cambiar la referencia. =INDIRECTO(CARACTER(COLUMNA()+64)&FILA()) Algo como eso se podría usar para obtener el código ASCII de la letra de la columna (donde 65 es el código para “A”), y FILA() devuelve el número de la fila. La función CARACTER() convierte el código ASCII en una letra. Luego, INDIRECTO() toma la cadena resultante (por ejemplo, “A1”, “B2”, etc.) y la usa como una referencia de celda. En ese caso, una posible idea de editar tu ejemplo sería: =SI(INDIRECTO("'Casos de Prueba'!"&CARACTER(COLUMNA()+64)&"1")="Resultados Ciclo 1"; SI(CONTAR.SI(INDIRECTO("'Casos de Prueba'!"&CARACTER(COLUMNA()+64)&":"&CARACTER(COLUMNA()+64)); "OK")=0; 0; CONTAR.SI(INDIRECTO("'Casos de Prueba'!"&CARACTER(COLUMNA()+64)&":"&CARACTER(COLUMNA()+64)); "OK")); 0)   Enfatizo que es una idea, es muy probable que haya que editar. Así como esta su tema, la recomendación del maestro toma relevancia porque especular o deducir no es lo adecuado para intentar ayudar en este tipo de consultas. Por esta causa de mi parte por ejemplo no puedo aportar algo adicional.
    • En el ejemplo te he puesto 1 segundo para no hacer largo el gif, cámbialo a tu necesidad
    • Sub RecorrerRangoC() Set hoja = ActiveSheet Set rango = hoja.Range("C2:C" & hoja.Cells(hoja.Rows.Count, "C").End(xlUp).Row) If rango.Cells.Count = 0 Then MsgBox "No hay datos en la columna C.", vbExclamation Exit Sub End If For Each celda In rango.SpecialCells(xlCellTypeVisible) celda.Select Application.Wait Now + TimeValue("00:00:01") Next celda End Sub Prueba y comenta
    • Gracias   Al final funciona con esta formula. =SI.ERROR(C5*BUSCARV(A$2;TablaReparto[#Todo];COINCIDIR(D5;TablaReparto[#Encabezados];));C5) En la celda C5 he puesto la OT. Es similar a lo que me das como solución. ¡Muchas gracias por la ayuda!  
  • Visualizado recientemente

    • No hay usuarios registrado para ver esta página.
×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.