Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation since 09/16/2020 in all areas

  1. Hola Esas fallas no están relacionadas a la versión del VBA o de Window (7, 10, etc.) sino a: - Uso de objetos ActiveX no compatibles entre ediciones de Office (32 o 64 bits, ojo, bits del Office, no importa lo de Windows). - Uso de objetos ActiveX compatible pero no registrados/instalados entre distintas PC. Recuerden que las librerías y objetos ActiveX (o similares), no "viajan" con los archivos de Excel. - "Llamadas" a funciones de la API de Windows solo para 32 bits. - Uso de propiedades y/u objetos de Excel "nuevas". Recuerden que las versiones más recientes de E
    4 points
  2. Hola @paikerr lo trabajo sin problemas en Office 365 y también lo he probado en versiones 2013,2016,2019 sin problemas. Saludos.
    3 points
  3. Sub Buscar_dato() Dim encontrado As Range '-- If [C4] = "" Then MsgBox "Introduzca un Número a buscar", vbInformation, "Número vacío" Exit Sub End If '-- [C6:C12] = "" With Sheets("BD") Set encontrado = .Columns("B").Find(What:=[C4], LookAt:=xlWhole) 'xlWhole Busca exacto If Not encontrado Is Nothing Then [C6] = .Cells(encontrado.Row, "C") 'Nombre [C8] = .Cells(encontrado.Row, "D") 'CEDULA [C10] = .Cells(encontrado.Row, "E") 'ESTACIÓN [C12] = .Cells(encontrado.Row, "F") 'BOMBERO Range("A1") = True 'Desactiva el Che
    2 points
  4. Hola @wess (y demás concurrencia) Adjunto otra alternativa con Tabla dinámica, pero utilizando el modelo de datos de power pivot y funciones DAX Te mostrara la suma del mes filtrado y el acumulado Saludos a todos! Filtrar producto con acumulado mensual DAX_GP.xlsx
    2 points
  5. hola wess (y Christian) De tu explicación entiendo una cosa, entiendo que Christian se basó en eso para resolver tu tema. Pero de tu ejemplo, no entiendo nada.. por ejemplo, en Resultado Esperado, de donde sale el productob en Marzo 61 y de Enero a Diciembre 437 si en tu tabla de Datos el productob tiene un único movimiento en Marzo y es 437, entonces, de donde sale 61?? y del resto ya mejor ni digo nada.. 😵 saludos Silvia
    2 points
  6. Hola @darkstars9976, prueba este código y me comentas. Sub Copia_recetas() Dim Rng$, x# Dim rept As Range Dim celda With Sheets("BD_Recetas") Rng = .Range("D1") x = 9 For Each celda In Sheets("Proy.-Comer").Range(Rng) If celda <> "" Then Set rept = .Range("C9:C43").Find(celda, , , xlWhole) If rept Is Nothing Then _ .Cells(x, "C") = celda: x = x + 1 End If Next End With
    2 points
  7. Hola! Casi te puedo asegurar que esos "fallos" no tienen que ver con que VBA sea "volátil" o que unos días amanece de buen o mal humor Lo que debes considerar que puede ser seguramente problemas de la PC de tu compañero, y no explícitamente Excel, además que Office 365 mantiene actualizaciones permanentes al igual que Windows 10, que pasa por constantes actualizaciones, y si estas no se registran, automáticamente crean conflictos que ni MS se molesta a veces en aclarar, solo te hablan de "parchos" y ya!, entonces esto lo esta sufriendo tu amigo [y tu ] Lo que menciona Abraham lo
    2 points
  8. Inténtalo en una sola linea: Sub MsgBox() CreateObject("WScript.Shell").Popup "Hello", 1, "Se cierra en 1 segundo" End Sub Saludos
    2 points
  9. lo mismo que te sugería "allá"... esta sola instrucción muestra el msgbox y se (auto)cierra a los 3 segundos (o los que indiques): createobject("wscript.shell").popup "mensaje con tiempo limite", 3, "titulo" las preguntas son: - que botones quieres mostrar ? - que acciones se siguen según lo que responda (o no) el usuario ? - algún otro detalle "en el tintero" ?
    2 points
  10. ¡Hola a ambos! Otra opción en el adjunto. La fórmula que propongo no requiere CSE (Ctrl + Shift + Enter), así aparezca con llaves - por tener yo Microsoft 365, al hacer la fórmula, en otras versiones en ocasiones aparecen llaves cuando no es necesario ponerlas - . Nota: Te comento que, si quisieras, pudieses sacar el resultado con Filtro Avanzado (no es limitante el querer tener el resultado en otra hoja diferente a la base). ¡Bendiciones! Buscador.xlsx
    2 points
  11. Otra opción sin columna auxiliar usando fórmulas matriciales (se ingresan con la combinación de teclas Ctrl + Shift + Enter en vez de sólo presionar Enter). Saludos! Buscador2.xlsx
    2 points
  12. Hola @zero! Adjunto una opción usando una columna auxiliar. Tuve que mover la columna ID que tenias oculta en tu tabla. Saludos! Buscador.xlsx
    2 points
  13. Hola Antoni, con tu permiso quiero decirle a paikerr que para que se le quede el formulario tal cual lo solicita que modifique ...... Private Sub tbContacto_Change() tbCodigo.Enabled = True tbCodigo.BackColor = tbContacto.BackColor tbNombreFiscal.Enabled = True tbNombreFiscal.BackColor = tbContacto.BackColor '-- If tbContacto.ListIndex = 1 Then tbCodigo.Enabled = False tbCodigo.BackColor = Me.BackColor tbNombreFiscal.Enabled = True <<<<<<<<<<<<<<<<<<<<< por False tb
    2 points
  14. Hola @Serch! Adjunto una alternativa empleando una columna auxiliar! Saludos! Ejemplo busqueda de valor correspondiente para cada semana.xlsx
    1 point
  15. Eso depende de la configuración anti SPAM del receptor del mensaje.
    1 point
  16. Antoni

    prorrateo

    Como no subas un archivo Excel con un ejemplo de lo que quieres conseguir, no vas a conseguir ayuda.
    1 point
  17. Private Sub LlenarListBox() For x = 2 To Range("A" & Rows.Count).End(xlUp).Row B = Split(Range("B" & x), "-") C = Split(Range("C" & x), "-") D = Split(Range("D" & x), "-") With ListBox1 For y = 0 To UBound(B) .AddItem Range("A" & x) .List(.ListCount - 1, 1) = B(y) .List(.ListCount - 1, 2) = C(y) .List(.ListCount - 1, 3) = D(y) Next End With Next End Sub Llama a este procedimiento para llenar el ListBox.
    1 point
  18. Exactamente es un problema, pero así están hechas las cosas en las empresas... 🤪 Exactamente es un problema, pero así están hechas las cosas en Microsoft...
    1 point
  19. @diegolg, sobre la cinta de opciones existe documentación incluso cursos completos en Youtube. Yo estoy buscando (todavía sin éxito), referencias para modificar el backstage.
    1 point
  20. Apenas empece a utilizar el UI Editor, la verdad no es muy complicado. lo trabaje en office 2013 y 2019, y no he tenido ningún problema. Saludos,
    1 point
  21. Cada vez que añadas/modifiques en la columna A, se copiarán los datos correspondientes de la hoja N1. Trabajo.1.xlsb
    1 point
  22. Antoni

    PROBLEMA ARRAY

    Directamente de la ayuda de vba: Función Array() Nada más que añadir. .
    1 point
  23. Hola JSDJSD, revise el archivo que enviastes el cual estubo estupendo 😃, justo lo que necesitaba ya que todo lo hacia de forma manual y por la cantidad de registros que trabajo me costaba mucho hacer la comparacion, solo tube que adaptar solo unas 2 cositas como nombres de hoja y rangos y quedo estupendo lo e adaptado a mi archivo principal...👍, saludos y muchas gracias por el aporte Tema solucionado. Saludos: Julio Lima-Peru
    1 point
  24. Oh que interesante, ahí me enseñas como se hace 😊 gracias Gerson.
    1 point
  25. Antoni, Muchisimas gracias. Es exactamente lo que necesitaba. Saludos, Ignacio
    1 point
  26. Prueba a ver si es eso. Abre el adjunto y pulsa sobre el rectángulo azul. Modelo2.xlsm
    1 point
  27. Adjunto otra opción, saludos, Silvia Tabla dinamica sq.xlsx
    1 point
  28. Hola AlexanderS, justo lo que que necesitaba, la solución esta super, Declaro el tema como solucionado. Muchas gracias y mil Bendiciones desde Colombia
    1 point
  29. Hola Sil, sí entendí perfectamente, yo también lo vi pero pensé "en el archivo excel de wess todo va a estar más claro" y por suerte así fue! De nada Wess! Creo que el problema sigue siendo el mismo, al filtrar los datos no es posible emplear campos calculados para mostrar el total acumulado, o al menos yo no se hacerlo
    1 point
  30. Buenas tardes Alexander, Perfecto. De hecho si que necesito decir para algunas celdas individualmente que tipo de fuente aparezca (Ucas; Lcase; PROPER). Hasta tu respuesta ire probando. Gracias. Saludos,
    1 point
  31. MI ESTIMADO @AlexanderS, ES JUSTO LO QUE QUERÍA, DE VERDAD NO LO HUBIESE PODIDO HACER DE ESA MANERA TAN SIMPLE COMO TU LO HAS HECHO, Y SE ME OCURRIÓ POR AHÍ AGREGAR UNA LINEA PARA BORRAR EL CONTENIDO ANTES DE OBTENER LAS NUEVAS RECETAS...... Sub Copia_recetas() Dim Rng$, x# Dim rept As Range Dim celda With Sheets("BD_Recetas") Rng = .Range("D1") Range("C9:C43").ClearContents - AGREGUE ESTA LINEA x = 9 For Each celda In Sheets("Proy.-Comer").Range(Rng) If celda <> "" Then Set rept = .Ran
    1 point
  32. @RadioViraje73, correcto la instrucción copiara los datos en columnas contiguas, entonces tienes algunas opciones: 1 utilizar un ciclo while para leer cada columna de tu tabla individualmente o 2 realizar una consulta a por cada columna para poder utilizar el .CopyFromRecordset, algo como esto: Columnas = Array("FECHA", "PAGADO", "DEBE") For Each param In Columnas Sql = Replace("SELECT ? FROM [Datos$] where (FECHA BETWEEN #1/1/2020# and #31/3/2020#) and DEBE >0", "?", param) Rst.Open Sql, cn, 3, 3 Select Case param Case Is = "FECHA": Sheets("Resultado").Range("A2").CopyFromRecordset
    1 point
  33. ... y ya que estamos... ¿conocéis algún curso, formación o vídeo donde se enseñe a modificar la cinta con ese programa?
    1 point
  34. Hola @RadioViraje73, no es necesario recorrer con un ciclo while un recordset, puedes copiar los datos directamente a la hoja de excel con la instrucción .CopyFromRecordset Sheets("Hoja1").Range("A2").CopyFromRecordset Rst Saludos
    1 point
  35. Hola @wess! De acuerdo a las normas del foro, debes adjuntar un archivo de excel (no una imagen). Igualmente, creo que no es posible filtrar una columna de una tabla dinámica mientras la otra permanece sin filtro, por lo que si se aplica el filtro por mes no se podría obtener el total acumulado del año en otra columna. Adjunto una opción usando formulación y rangos con nombre. Saludos! Tabla dinamica.xlsx
    1 point
  36. Si no me da tiempo mañana, el sábado te subo algo.
    1 point
  37. @jomunozta, tal como dice Cristian, recuerda que las fechas y horas en realidad son números con decimales y bueno por la forma de excel de tratar operaciones con números flotantes obtendrás un resultado con decimales. Puedes limitar el numero de decimales que debe devolver el resultado a 2 así el 7.99999999999 se convertirá en un 8.00. Y en este otro caso el resultado sera 1.50 Después es solo cuestión de evaluar esos decimales sin mayores a 0. Saludos
    1 point
  38. Hola @Galactico, en ese caso debes buscar como utilizar los ciclos while, te adjunto un código que recorre un rango de celdas colocando un número aleatorio y con el while indico que la instrucción debe repetirse hasta que el número que entrega sea mayor a 50. Sub aleatoreo() Dim c As Range For Each c In Range("A1:A7") num = 0 While num < 50 ' El ciclo while se repite si num es menor a 50 num = Int((100 * Rnd) + 1) 'Generamos un número aleatorio Wend c = num Next End Sub Saludos.
    1 point
  39. jbalvarez

    Obtener descuentos

    estimados gracias por su ayuda... Trabajando en el tema, llegué a algo parecido a lo que indica Cristian: INDICE($J2:$Q2;COINCIDIR(Z2;$J2:$Q2;1)) Tema cerrado!!
    1 point
  40. Hola @garbage! Debes adjuntar el archivo de excel sobre el que trabajaste para poder ayudarte, igual me parece curioso que, googleando tu consulta para poder responderte con más detalle, esta es la primera página que aparece y tiene tu mismo archivo! Al margen de eso, tengo entendido que la función de detener si es verdad no afecta a versiones nuevas de excel, solo se mantuvo por compatibilidad con las versiones viejas (anteriores a 2007) que no permitían aplicar varias reglas simultaneamente. Según microsoft: El orden en el que se evalúan las reglas de formato condicional (su preced
    1 point
  41. @paikerr Me parece recordar que trabaja desde la versión 2007 Saludos
    1 point
  42. Pues macros que dejan de funcionar en las líneas más inverosímiles (Seets().Activate), incluso te cuento un caso personal... En el curro, yo tengo Windows 7 y Office 2010. Mi compañero de "banco" Windows 10 y Office 360. Ambos utilizamos un programilla de albaranes que cree para no complicarnos mucho la vida con el ERP. Pues hay días que, sin ninguna explicación, a el le deja de funcionar. En ese momento le digo que lo cierre y lo abro yo... Y funciona perfectamente Nada, pues que cierre, vuelva a abrir a ver si va... Tampoco. Ni reiniciando el PC. Nada de nada. Pues si te pones a de
    1 point
  43. ¡Hola a ambos! Lamento ser "aguafiestas", pero la fórmula propuesta por @Cristian 1985 no funciona del todo bien cuando estamos trabajando con tablas. El tema está en que se están usando rangos expandibles (del tipo D$2:D2), donde en tablas, cuando se ingresa un nuevo registro en la parte inferior, descoloca las fórmulas en su última referencia. Para ello (y si se quiere seguir usando este tipo de referencias), se puede modificar la fórmula propuesta por la siguiente: =SI(D2=D3;"";PROMEDIO.SI(D$2:[@FECHA];D2;F$2:[@[TEMPERATURA EXTERIOR (OC)]])) Por otro lado, ya te explicaron
    1 point
  44. @tierra_pampa, SOLUCINADO!!! Muchas gracias.
    1 point
  45. ¡Hola a todos! Usando funciones Microsoft 365 (como LET, SECUENCIA) en combinación de algunas funciones "de siempre" también podemos obtener el resultado. Uso el archivo proporcionado por @Luis Caballero (Saludos) ¡Bendiciones! errores en cadenas.xlsm
    1 point
  46. Puedes probar a contraer todo el campo meta (botón derecho encima de la tabla) , entonces te dará los totales. Espero que te sirva.
    1 point
  47. Hola @Persal95 Una posible solución, Espero que sea de utilidad. Nos comentas.EJEMPLO AYUDA EXCEL 1.1.xlsx
    1 point


  • Newsletter

    Want to keep up to date with all our latest news and information?
    Sign Up
×
×
  • Create New...

Important Information

Privacy Policy