Saltar al contenido

Funcion contar desde una hoja datos de otra


eugeniocol

Recommended Posts

Hola.

Lo de crear el resumen en una nueva hoja es sencillamente porque creo que resulta mas facil visualizar el conteo.

El boton actualizar es el que lanza la macro.

El poner el at.madrid era para hacer una prueba, no arroja resultados porque no hay confrontacion con el barcelona estando este en una columna naranja.

Prueba a poner equipos y le das a actualizar haber si no falla la macro y los resultados arrojados son los correctos.

Un saludo.

Enlace a comentario
Compartir con otras webs

Voy por partes.

1º El poner el at.madrid era para hacer una prueba, no arroja resultados porque no hay confrontacion con el Barcelona estando este en una columna naranja.

FUNCIONA por lo menos da datos

2º Despues de acoplar la macro a mi libro cambiando los rangos correspondientes, veo en la hoja3 que estan de nuevo todos los equipos, tal cual estan en la hoja 1 de resumen (que su motivo tendra ) en la celda A1 de la Hoja 3 me da 0,solo cambie al rango que quiero, no se si esto es importante

= SUMAPRODUCTO(($CB$3:$CB$43='CONSULTA RESUMEN'!$H$85)*FILA(A3:A43))

Y en la Hoja 3 la formula en A1 con este rango CB3:CB43, veo que no abarca todos los datos de la hoja???? Que acaban en DC

4º Ahora después de que esta macro acabe del todo funcionando, veo que para seguir el resumen de las temporadas anteriores resumido a una,tendría que hacer otros tantos de bloques de columnas o sea tal cual hay en una temporada 44 bloques de columnas, para obtener los resultados de todos contra todos puffff y claro otra macro.

No se podría con una macro, con la base de datos que es la que ya hay, de las temporadas 2009-10 hasta 2012-13

Ejemplos: en un solo bloque,botón,ect… pero para poder obtener el resultado de todos con todos, en cualquier momento, ejemplo quiero ver el reumen (que ya se tiene en la base de datos hoja1) AT.Madrid-Valencia o Barcelona-R.Madrid ect…

Y por ultimo, si tienes un hueco abusando de tu gran amabilidad, puedes echar un vistazo a una pregunta que tengo en este enlace https://www.ayudaexcel.com/foro/excel-general-6/guardar-datos-diferentes-celda-se-queden-fijos-otras-celdas-28462/#post137035 y que esta a falta de alguna simplez, para que me acabe de funcionar como yo necesito.

Un saludo.

Enlace a comentario
Compartir con otras webs

Hola.

Vamos haber si podemos solucionarlo pero centrandonos en preguntas y respuestas concretas, ya que sino me pierdo.

La macro que te puse te devuelve los valores correctos?. Si es afirmativo plantea tu segunda cuestion y si es posible con un pequeño ejemplo subido en un excel para trabajar en él.

Saludos.

Enlace a comentario
Compartir con otras webs

Hola.

La hoja3 recoge los valores de la hoja resumen ya que el tratar con vinculos (hoja resumen) estos pueden dar resultados no esperados, de hay que la macro lo primero que hace es copiar los datos de la hoja resumen y pegarlos en la hoja3 como valores para que no haya ningun problema.

En la celda A1 de la hoja resumen hay una formula que aunque la elimines no pasa nada ya que cuando se lance la macro volvera a aparecer. Si quieres no verla puedes poner en la ultima linea del codigo algo asi:

Hoja3.Range("A1") = ""

Te he hecho un desplegable en cada celda del rango de la tabla donde poder elegir equipos, no se si van por hay los tiros.

Un saludo.

http://dl.dropbox.com/u/59516831/EXCEL/1.xls

Enlace a comentario
Compartir con otras webs

Exacto, esto es lo que quiero en un principio.

Al lanzar la macro me da error 13 ¿?? En la columna M de equipos e añadido algunos que veía que me faltaban.

En las columnas A y H mediante los filtros desplegables trato de emular la quiniela de esta semana, pero en los filtros después de añadir equipos, el ultimo que puse Alcorcón ya no me lo muestra (no se cómo meter mano a esta configuración y antes de jod…. No toco nada)

Referente a la Hoja 3 para adaptarla a mi libro, copie y pegue de este libro al mio, está bien a si????

Subo libro.

https://www.dropbox.com/sh/w0xdbd7q4hem93a/asWZGKkOwl

Salud2.

Enlace a comentario
Compartir con otras webs

la mancro no falla en un principio, voy a adaptar estas hojas a mi libro y comprobar si los resultados del resumen estan bien,pero para hacerlo bien y no meter la pata tengo 2 dudas.

Referente a la Hoja 3 para adaptarla a mi libro, copie y pegue de este libro al mio, está bien a si????

Esta ya configurada la hoja consulta, para poder meter y cambiar cuantos equipos quiera ???

salud2.

Enlace a comentario
Compartir con otras webs

Hola.

En tu libro crea una hoja y comprueba que en el editor vba esta reflejado como hoja3, sino en las propiedades de la hoja puedes poner el nombre (hoja3) y luego en la celda B1 de esta hoja pega esta formula:

=+SI(ESERROR(A1);0;A1)

La hoja consulta esta configurada para el rango A4:A17 y B4:G17. Si quieres ampliarlo en el codigo tendrias que modificar estas lineas y adaptarlas al nuevo rango:

Range("B4:G17") = ""
For Each cel In Range("A4:A17")

Los valores de la lista desplegable estan:

Para MS Excel 2003 vas a la Barra de herramientas/ Insertar/ Nombre/ Definir.

Desde hay tambien puedes ampliar el rango por si necesitas incluir mas equipos.

Haz pruebas y si te falla algo comenta que con gusto intentare ayudarte.

Un saludo.

Enlace a comentario
Compartir con otras webs

lo que acabo de hacer en la macro es adaptarla a mi libro de esta manera, las hojas 3 ponerle 20 y la hoja 1(19) que es la que veo que corresponde en el libro,lanzo la macro desde el boton actualizar y se abre una ventana para buscar el libro que lo encuentro y por mas que selecciono las hojas que pueden ser nada no va ?? El libro este ultimo la Hoja del final sirve para algo ??? salud2.

Enlace a comentario
Compartir con otras webs

hay algun otro medio privado para subirlo que no sea por aqui ??? a dato creo importatnte yo uso excel 2010 no 2003.

salud2.

- - - - - Mensaje combinado - - - - -

bueno no tengo manera de que al lanzar la macro funcione,por mas que trasteo ahora me da este error

Hoja3.Range("A1").Formula = "= sumproduct((" & ref1 & ":" & ref2 & "=Consulta!" & cel2 & ")*row(A" & fil & ":A" & ul1 & "))"

y por mas que miro veo que todo esta bien pufff

salud2.

Enlace a comentario
Compartir con otras webs

Hola.

El contestar de forma privada no es la manera mas correcta a seguir en un foro, pero si tienes datos que no quieres que sean vistos por los demas usuarios mandame un enlace por privado y luego cuando este solucionado el asunto publicamos el codigo para si algun compañero que este siguiendo este hilo o lo vaya a seguir, pueda adaptarlo a sus necesidades.

Un saludo.

Enlace a comentario
Compartir con otras webs

Hola eugenio.

He estado revisando el libro que me mandaste y pasa una cosa curiosa que quizás tenga que ver con los vínculos de donde obtienes los datos.El caso es que la linea que te da error se produce porque debes de tener algún libro con el nombre de CONSULTA por lo que la formula al tener un nombre de hoja con el mismo nombre del libro da error porque no encuentra el dato en ese libro.

Yo he cambiado el nombre de la hoja consulta por otro (consultas) y en la macro he hecho igual y corre bien.

Inténtalo y comenta.

Un saludo.

Enlace a comentario
Compartir con otras webs

jeje.compi hasta hay llego, ya lo hice antes de preguntar trasteo hasta donde se, le puse Consultas, Consultas Quinielas ect... y no me va

subo pantallazo

https://www.dropbox.com/sh/3uxciatlu4yqh8t/OA1POvN2aa

saludos.

- - - - - Mensaje combinado - - - - -

esta claro que el problema esta en al hoj, pero en su momento ya la elimine, claro quizas el copia y pego del libro que hicistes el tema sea el problema y tenga que configurar la hoja yo desde 0

otro pantallazo

https://www.dropbox.com/sh/68zv788ad1y39s6/0cYDxYAYUk

salud2.

Enlace a comentario
Compartir con otras webs

Hola.

He intentado bajarme el archivo que me mandaste por mp y ha sido eliminado. La idea era mandartelo tal como lo he probado yo y funcionando la macro, pero si tú ya has seguido los paso que te comente en mi anterior post, te seguira dando error.

La verdad es que no se si puede ser por la version de excel que usas, lo ultimo que se me ocurre es que me lo vuelvas a mandar e intento adaptar la hoja resumen a la macro sin necesidad de hacer una copia de esa hoja.

Un saludo.

Edito:

Prueba esta macro y elimina la hoja3:

Sub n()
Dim ul As String
Dim rng As Range
Dim cel As Range
Dim cel1 As Variant
Application.ScreenUpdating = False
Range("B4:G17") = ""
For Each cel In Range("A4:A17")
cel1 = cel.Offset(, 7)
cel2 = cel.Offset(, 7).Address
Set rng = Hoja1.Range("A1:CV500").Find(cel, LookAt:=1, LookIn:=xlValues, SearchOrder:=xlColumns)
If Not rng Is Nothing Then
cuen = rng.Address
Do
If rng.Offset(, 1) = "" Then
ul = Cells(2, rng.Offset(, 2).End(xlDown).Column).Address
Else
co = rng.Column
ul = rng.End(xlDown).Address
fil = rng.Row
ul1 = rng.End(xlDown).Row
ref1 = rng.Offset(, 7).Address
ref2 = rng.Offset(, 7).End(xlDown).Address
colu = rng.Column
Hoja1.Range("A1").Formula = "= sumproduct((" & ref1 & ":" & ref2 & "=Consulta!" & cel2 & ")*row(A" & fil & ":A" & ul1 & "))"
vlr = Hoja1.Range("B1")
If vlr <> o Then
cel.Offset(, 1) = cel.Offset(, 1) + Hoja1.Range(Cells(vlr, colu + 1).Address)
cel.Offset(, 2) = cel.Offset(, 2) + Hoja1.Range(Cells(vlr, colu + 2).Address)
cel.Offset(, 3) = cel.Offset(, 3) + Hoja1.Range(Cells(vlr, colu + 3).Address)
cel.Offset(, 4) = cel.Offset(, 4) + Hoja1.Range(Cells(vlr, colu + 4).Address)
cel.Offset(, 5) = cel.Offset(, 5) + Hoja1.Range(Cells(vlr, colu + 5).Address)
cel.Offset(, 6) = cel.Offset(, 6) + Hoja1.Range(Cells(vlr, colu + 6).Address)
End If
End If
Set rng = Hoja1.Range("A1:CV500").FindNext(Range(ul))
Loop While rng.Address <> cuen
End If
Next
Application.ScreenUpdating = True
Application.CutCopyMode = False
End Sub

Y en la hoja resumen en la celda B1 pon esta formula:

=+SI(ESERROR(A1);0;A1)

Espero que ahora te funcione.

Enlace a comentario
Compartir con otras webs

tienes un mp.

salud2.

- - - - - Mensaje combinado - - - - -

novedad despues de hacer limpieza de registro de windows,cambio el nombre a la hoja y la macro anterior a quiniela resumen, noda el error anetrior pero no coje datos en el resumen

Con la macro ultima cambio tambien el nombre a la hoja y la macro y parece todo ok.

otro mp.

salud2.

Enlace a comentario
Compartir con otras webs

Hola.

He intentado bajarme el archivo que me mandaste por mp y ha sido eliminado. La idea era mandartelo tal como lo he probado yo y funcionando la macro, pero si tú ya has seguido los paso que te comente en mi anterior post, te seguira dando error.

La verdad es que no se si puede ser por la version de excel que usas, lo ultimo que se me ocurre es que me lo vuelvas a mandar e intento adaptar la hoja resumen a la macro sin necesidad de hacer una copia de esa hoja.

Un saludo.

Edito:

Prueba esta macro y elimina la hoja3:

Sub n()
Dim ul As String
Dim rng As Range
Dim cel As Range
Dim cel1 As Variant
Application.ScreenUpdating = False
Range("B4:G17") = ""
For Each cel In Range("A4:A17")
cel1 = cel.Offset(, 7)
cel2 = cel.Offset(, 7).Address
Set rng = Hoja1.Range("A1:CV500").Find(cel, LookAt:=1, LookIn:=xlValues, SearchOrder:=xlColumns)
If Not rng Is Nothing Then
cuen = rng.Address
Do
If rng.Offset(, 1) = "" Then
ul = Cells(2, rng.Offset(, 2).End(xlDown).Column).Address
Else
co = rng.Column
ul = rng.End(xlDown).Address
fil = rng.Row
ul1 = rng.End(xlDown).Row
ref1 = rng.Offset(, 7).Address
ref2 = rng.Offset(, 7).End(xlDown).Address
colu = rng.Column
Hoja1.Range("A1").Formula = "= sumproduct((" & ref1 & ":" & ref2 & "=Consulta!" & cel2 & ")*row(A" & fil & ":A" & ul1 & "))"
vlr = Hoja1.Range("B1")
If vlr <> o Then
cel.Offset(, 1) = cel.Offset(, 1) + Hoja1.Range(Cells(vlr, colu + 1).Address)
cel.Offset(, 2) = cel.Offset(, 2) + Hoja1.Range(Cells(vlr, colu + 2).Address)
cel.Offset(, 3) = cel.Offset(, 3) + Hoja1.Range(Cells(vlr, colu + 3).Address)
cel.Offset(, 4) = cel.Offset(, 4) + Hoja1.Range(Cells(vlr, colu + 4).Address)
cel.Offset(, 5) = cel.Offset(, 5) + Hoja1.Range(Cells(vlr, colu + 5).Address)
cel.Offset(, 6) = cel.Offset(, 6) + Hoja1.Range(Cells(vlr, colu + 6).Address)
End If
End If
Set rng = Hoja1.Range("A1:CV500").FindNext(Range(ul))
Loop While rng.Address <> cuen
End If
Next
Application.ScreenUpdating = True
Application.CutCopyMode = False
End Sub

Y en la hoja resumen en la celda B1 pon esta formula:

=+SI(ESERROR(A1);0;A1)

Espero que ahora te funcione.

buzon lleno no puedo madarte un mp

salud2.

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

    • Si  no me he liado con los paréntesis: Private Sub Worksheet_Change(ByVal Target As Range) Application.ScreenUpdating = False Application.Calculation = xlManual Application.EnableEvents = False If Not Intersect(Target, Range("$L$5:$Y$9")) Is Nothing Then Range("E22") = WorksheetFunction.Sum(Range("E4:E21")) Range("E23") = WorksheetFunction.Sum(Range("E4:E19")) Range("E24") = Range("E23") - WorksheetFunction.Sum(Range("I4:I7")) Range("I22") = WorksheetFunction.Sum(Range("I4:I21")) Range("I4") = Range("E23") * 0.1 Range("I5") = Range("EN10") * Range("EN11") Range("I6") = Range("E23") * 0.0127 Range("I7") = Range("E23") * 0.006 Range("I25") = Range("E22") - Range("I22") Range("I12") = Range("E24") * 0.03 Range("C7") = Range("EQ8") - Range("EQ9") + Range("EN13") + Range("EN14") + Range("EN15") + Range("EN16") Range("C9") = Range("EQ9") + Range("EN17") + Range("EN18") + Range("EN19") Range("E7") = Range("E4") / Range("C4") * 7 / 44 * 1.5 * Range("C7") Range("E8") = Range("E4") / Range("C4") * 7 / 44 * 0.3 * Range("C8") Range("E9") = Range("E4") / Range("C4") * 7 / 44 * 1.3 * 1.5 * Range("C9") End If Application.Calculation = xlAutomatic Application.ScreenUpdating = True Application.EnableEvents = True End Sub  
    • Hola de nuevo a ambos, @daren, tu archivo lleva excesivos datos, que creo no son necesarios para la información final que buscas. Te subo otro archivo, simplificado al máximo, que, si lo he entendido bien, con esta fórmula simplificada: =CONTAR.SI('Casos de Prueba'!I:I;"OK")*('Casos de Prueba'!I1="Resultados Ciclo "&COLUMNA(A5)) se calcularía el primer dato, que se encuentra en la columna I. Copiando la fórmula a la derecha las celdas que necesites, se completaría el rango.  Tu fórmula la coloco en D7, y esta nueva en D9, que como ves (si, repito, he interpretado bien lo que buscas), da los mismos resultados. ---------------------------------------------------------------- En cuanto a: Aquí tienes, en el mismo archivo (Hoja 3) lo que devuelve tu fórmula cuando hay un determinado dato en A1 y en B2. No llego a entender qué es lo que quieres exactamente.  Tal vez con una pequeña explicación de lo que esperas obtener, sea suficiente para poner el hilo a la aguja. ? ----------------------------------------------------------------- En el caso de que falte por añadir o evaluar alguna otra variable o parámetro (en tu primer post hablabas sólo de 'OK' y ahora veo que en el archivo figuran además 'KO' y 'BLOCK'), por favor, intenta emular el ejemplo del archivo que estoy subiendo; añade EXCLUSIVAMENTE esos datos en la hoja allá donde proceda, explicando dónde o cómo deben contarse o sumarse. Mejor trabajar siempre con datos anónimos y reducidos. Desconozco si en tu archivo alguno de esos datos puede considerarse confidencial, pero seguro que no interesan a nadie. Mucho mejor obviarlos. Saludos, Plantilla V3 (B).xlsx
    • buenas noches, quisiera saber si puedo mejorar mi macros que se encuentra en el evento change de la hoja de calculo de Excel, son códigos de cálculos básicos, además si me pudieran ayudar a reducir el código o darme algún tip para reducirlo yo mismo estaría muy agradecido.  de ante mano muchas gracias     Private Sub Worksheet_Change(ByVal Target As Range)     Application.ScreenUpdating = False     Application.Calculation = xlManual     Application.EnableEvents = False              If Not Intersect(Target, Range("$L$5:$Y$9")) Is Nothing Then             Sub todo()          Range("E22") = WorksheetFunction.Sum(Range("E4:E21"))     Range("E23") = WorksheetFunction.Sum(Range("E4:E19"))     Range("E24") = WorksheetFunction.Sum(Range("E23") - WorksheetFunction.Sum(Range("I4:I7")))     Range("i22") = WorksheetFunction.Sum(Range("I4:I21"))     Range("I4") = Range("E23") * 0.1     Range("I6") = Range("E23") * 0.0127     Range("I5") = Range("EN10") * Range("EN11")     Range("I7") = Range("E23") * 0.006     Range("I25") = Range("E22") - Range("I22")     Range("I12") = Range("E24") * 0.03     Range("C7") = WorksheetFunction.Sum(Range("EQ8") - (Range("EQ9"))) + Range("EN13") + Range("EN14") + Range("EN15") + Range("EN16")     'Range("E7") = WorksheetFunction.Sum(Range("C7") * ((Range("E4") * 0.0077777)))     Range("C9") = Range("EQ9") + Range("EN17") + Range("EN18") + Range("EN19")     'Range("E9") = WorksheetFunction.Sum(((((Range("E4") / Range("C4")) * 7) / 45) * 1.3) * 1.5) * Range("C9")     'Range("E8") = WorksheetFunction.Sum(((((Range("E4") / Range("C4")) * 7) / 45) * 0.3)) * (Range("C8"))     Range("E9") = WorksheetFunction.Sum(((((Range("E4") / Range("C4")) * 7) / 44) * 1.3) * 1.5) * Range("C9")     Range("E8") = WorksheetFunction.Sum(((((Range("E4") / Range("C4")) * 7) / 44) * 0.3)) * (Range("C8"))     Range("E7") = WorksheetFunction.Sum((((Range("E4") / Range("C4")) * 7) / 44) * 1.5) * Range("C7")          End Sub              End If                  Application.Calculation = xlAutomatic     Application.ScreenUpdating = True     Application.EnableEvents = True     End Sub
    • Buenas perdonad la espera adjunto el fichero Excel y explico mas detallado lo que me solicitan: Lo que me solicitan es que esos CP de la pestaña Casos de prueba los cuales tienen formulas para que cuando se copien y peguen junto a sus pasos el CP se va autoincrementando a 1,2,3 etc...., pero si copias ese CP bien solo con el primer paso o con todos sus  pasos y lo insertas entre dos CP no continua con la numeración, como se ve en la foto al hacer eso el CP insertado continua con la numeración CP2 y el de abajo pone también CP2 no se incrementa ni ese ni el valor de CU que hay a la derecha que también es incremental. Necesitaría que continuara con esa numeración aun insertándolo entre medio de 2 tanto el CP como el CU de la derecha. También me solicitan que el campo Ciclo 1 de la pestaña Resumen es auto incremental cuando copias y pegas va sumando 1, pero en las formulas referentes a Ok KO Y bloqueo al copiar y pegar se mantiene la misma formula , la idea es que cuando copies y pegues la fila donde están los ciclos se autoincremente Ciclo a 1,2,3,4 etc... y la formula de los campos OK,KO y Bloqueos se incremente también pasando de la columna I a la J  luego a la k etc... y que en Resultados Ciclo el numero de la formula también se incremente Resultados Ciclo 1 , 2 ,3 etc... que cambie la columna a la vez que el numero de Resultados Ciclo. Gracias por adelantado un saludo. Plantilla v3 Pruebas.xlsx  
    • 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
  • 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.