Saltar al contenido

Macros y programación VBA

Temas sobre la automatización de Excel utilizando macros y VBA. Errores de VBA. ¿No consigues que tus macros hagan lo que necesitas?

  1. Started by Miguel63,

    Buenas tardes, Estoy intentando hacer un presupuesto en Exel he buscado en el foro y no he encontrado nada, he intentado hacer con sumar.si.conjunto pero no he sido capaz de solucionarlo. Lo que estoy intentando hacer es que de la hoja BD en la columna E(Ingreso) reste la columna D(gasto) y traslado a la hoja Gastos el resultado a columna B(gastos/Ingresos), cuando seleccione la fecha correspondiente dela hoja gastos columna B1. EspPresupuestos.xlsmero que me podáis ayudar Muchas gracias.

    • 0

      Reacciones de usuarios

    • 3 respuestas
    • 2.2k visitas
  2. Started by gux70,

    Hola a todos. Hace unos días en los que una hoja con Macrors que tengo empezaban a fallarme los botones con los que se incian ciertas macros. Al mirar veo que todo el código que estába dentro de la hoja ha desaparecido y por eso no lanzaba los formularios al hacer click en los botones. lo curioso es que mirándolo bien, "no sé ni quien o qué ni como" lo que ha pasado es que esa hoja ha camabiado de nombre y la hoja original (Hoja1) aparece con el mismo formato que Thisworkbook y es una hoja que no puedo ni modificar ni nada (no existe pero tiene las macros). La nueva hoja es igual que la original pero sin macros. Me estoy volviendo loco, lo mismo es un…

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 667 visitas
  3. Hola , amigos de excel como se puede separar un codigo de 10 digitos en celda de 2 de 2 . tengo miles de codigos que tengo que separar para poder filtrar ya que en cada 2 digitos hace referencia a una marca o familia etc. . no se si me explico bien , pero le dejo un ejemplo de como quedaría en el archivo que adjunto . A B C D E F CATO025926 CA TO 02 59 26 CATO095921 CA TO 09 59 21 CATO055922 CA TO 05 59 22 MUCHAS GRACIAS POR SU GENTIL AYUDA. SEPARAR CODIGO.xlsm

    • 0

      Reacciones de usuarios

    • 4 respuestas
    • 1k visitas
  4. Started by xinortiz,

    Buenos dias Acudo nuevamente a ustedes para solicitar su ayuda, tengo un registro de asistentes (hoja RMATRICULA) del cual filtro 2 columnas con los valores de los ComboBox y luego lo copio y pego en la hoja LISTA, y claro para ello antes elimino filas y datos de un pegado anterior - "hasta allí todo bien". Problema: Lo que intento hacer luego es que después de pegar los datos filtrados, dos filas después del ultimo registro de la Hoja LISTAS me agregue el texto "INVITADOS" y después de ello se agregue 3 filas mas en blanco en la hoja EJEMPLO esta la muestra de como debe quedar la tabla espero su ayuda muchas gracias prueba.xlsm

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 776 visitas
  5. Started by jik,

    Hola. Estoy declarando una variable de una ruta al abrir un libro para después utilizarla en varios módulos. La pruebo con MsgBox y la variable queda bien declarada pero al tratar de utilizarla en otro módulo su valor (también probado con una msgbox) queda en blanco. ¿por qué me pasa esto? No soy muy experto por lo cual agradezco una explicación relativamente simple. Muchas gracias A continuación la declaración cuando se abre el libro: Option Explicit Public ImpPredeter As String Public RutaData As String ----------------------------------------------------------------------------------------- Private Sub Workbook_Open() Application.ScreenUpdating …

    • 0

      Reacciones de usuarios

    • 5 respuestas
    • 2.2k visitas
  6. Started by jik,

    Hola a todos, Tengo un lista box que me carga la información de una tabla de 13 columnas de las cuales me interesan sólo 5 de ellas: la 1, 4, 9, 11 y 13 por lo cual oculto las que no tienen con ancho 0. El listbox carga los datos sin problema. El buscador funciona bien también pero cuando la columna es la 10 o mayor de .list es menor que 10. Va marcado en azul y negritas donde está el problema. ¿cómo puedo solucionarlo? Private Sub UserForm_Initialize() 'se definen características del Listbox (columnas, ancho, títulos) With LstBusqueda .ColumnCount = 13 .ColumnHeads = True .ColumnWidths = "60;0;0;160;0;0;0;0;240;0;100;0;100…

    • 0

      Reacciones de usuarios

    • 1 respuesta
    • 1.5k visitas
    • 1 seguidor
  7. Buenas tardes gracias por este espacio. Solicito su ayuda para una macro que imprima solo las celdas que contienen datos. Tengo un botón que me ayuda a realizar un filtro avanzado y me trae los datos que quiero buscar, pero al realizar en el otro botón la impresión para paso a PDF me las convierte todas y solo quiero que se muestre en el PDF las que se consultaron. Tengo el siguiente código en el botón de impresión. pplication.ScreenUpdating = False If MsgBox("¿Desea Convertir a PDF?", vbQuestion + vbYesNo) = vbYes Then Dim HResumen As Worksheet Dim Ruta As String Dim Titulo As String Set HResumen = Worksheets("Resumen") …

    • 0

      Reacciones de usuarios

    • 1 respuesta
    • 611 visitas
  8. Started by Pako_Jones,

    Buenas, me pasa una cosa extrañísima y pruebo aqui a ver si le ha pasado a alguien más y sobre todo si hay alguna solución: la hoja de cálculo en cuestión tiene un combo box para poder visualizar diferentes cuentas de resultados en la pestaña cta. Es un fichero que tenemos en red, que usan diferentes usuarios. Pues bien, cuando desconectas el portátil de la red, con el fichero abierto (para ir a alguna reunión fuera de tu sitio) hay un momento, que al navegar por las opciones el combo, en este se distorsiona la fuente de las opciones y no puedes ver nada (adjunto imagen). Si estas conectado en red, NUNCA pasa. Nos pasa en diferentes ordenadores. Es verdad que …

    • 0

      Reacciones de usuarios

    • 10 respuestas
    • 2k visitas
  9. Started by jotaeme,

    Estimada(o) Junto con saluda y quizás sea básico para algunos, no logro agregar una hoja al final de la última que exista, estoy escribiendo .... actual ---> variable string que contiene el texto con el cual se nombrará la nueva hoja Worksheets.Add(after:=Worksheets(Worksheets.Count)).Name = actual .... error 1004---me indica gracias de antemano

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 617 visitas
  10. Buenas tardes, Escribo para ver quien me puede ayudar, quiero hacer una macro que me permita enviar un email de Excel a Outlook con las siguientes características: - Archivo adjunto : que selecciones ciertos archivos que ya he adjuntado en un rango de celdas en forma de link. -Que el cuerpo del email sea un rango de celdas especifico que conteniente formato condicional. He encontrado una macro en una pagina de la web que ahora no recuerdo, pero el problema que tengo con esta macro es que no me adjunta los archivos y el otro problema es que el cuerpo del email me sale el rango de celdas visibles pero no salen las celdas que contienen formato con…

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 554 visitas
  11. Buenos días a todos; Hoy traigo una consulta que no sé si ha vosotros os ha ocurrido y que no logro saber el porque. Tengo un formulario que contiene un listView y también tiene unos textBox y un botón que al pulsarlo me filtra los datos según el criterio de los valores de dichos textBox. Lo que no acabo de entender es lo siguiente, si le doy al filtro la primera vez se ejecuta todo correctamente pero en cambio si no cierro el formulario e intento hacer otro filtro lo hace bien pero me repite los encabezados a la derecha. A alguno se le ocurre algo de porque sucede esto. Adjunto enlace de un video y también macro: ListView Saludos …

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 1.2k visitas
  12. Started by fredycayo,

    Un saludos a todos Uds. les escribo para pedirles su ayuda, tengo 1 archivos Excel con varias columnas y quisiera que los resultados se calculen al pie de cada columnas E,F,I,J . Y la columna K se calcule con la macro. Desde ya muchas gracias por su valioso tiempo. Adjunto Resultados.xlsm

    • 0

      Reacciones de usuarios

    • 3 respuestas
    • 1k visitas
    • 1 seguidor
  13. Buenas tardes!A través del presente requiero de su valioso apoyo para saber como utilizar la Referencia XML V6.0 Ya que el siguiente código me funciona correctamente con la versión 3.0, y me gustaría saber como actualizar para que funcione de la misma manera. Codigo XML v3.0 Option Explicit 'Variables de Lectura de archivos XML Private DocumentoXML As MSXML2.DOMDocument Private ListaNodos As MSXML2.IXMLDOMNodeList Private Nodo As MSXML2.IXMLDOMNode Function CargaXML(RutaXML As String) Set DocumentoXML = New DOMDocument DocumentoXML.Load (RutaXML) End Function Function Comprobante(Ruta As String, Dato As String) CargarXML (Ruta) Set ListaNodos =…

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 4.8k visitas
  14. Started by faroca20,

    Buenas tardes gracias por este espacio. Solicito su ayuda para una macro que imprima solo las celdas que contienen datos. Tengo un botón que me ayuda a realizar un filtro avanzado y me trae los datos que quiero buscar, pero al realizar en el otro botón la impresión para paso a PDF me las convierte todas y solo quiero que se muestre en el PDF las que se consultaron. Tengo el siguiente código en el botón de impresión. pplication.ScreenUpdating = False If MsgBox("¿Desea Convertir a PDF?", vbQuestion + vbYesNo) = vbYes Then Dim HResumen As Worksheet Dim Ruta As String Dim Titulo As String Set HResumen = Worksheets("Resumen") …

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 893 visitas
  15. Started by renato13,

    Buenas tardes amigos de "AyudaExcel" me podrian ayudar introduciendo un código para que aparezca un MsgBox que diga "No se encontro el dato" a no haber el dato en un código de busqueda que tengo no se donde colocarlo e probado unas opciones pero no mismo ya se que para ustedes será algo fácil pero para los que estamos iniciando se nos hace un poco dificil. Gracias por su ayuda amigos y una buena tarde Adjunto el código que tengo de busqueda en el cual quiero insertar el MsgBox Private Sub Buscar_Click() If cboLote.ListIndex > -1 Then Lote = cboLote Set celda = Base_Datos.Columns("A").Find(What:=Lote, LookAt:=xlWhole) If N…

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 1.1k visitas
  16. Started by jik,

    Hola a todos, Tengo la siguiente macro para ir completando una tabla a partir de valores definidos en el módulo y llamados Cant1, Cant2, Cant3.......hasta el 100 Dim i, k As Byte Dim a As String For i = 1 To 100 k = 3 * (i - 1) 'para ir saltando de a 3 columnas a = "Cant" & i 'cantidad % de componente a ingresar en tabla If a = "" Then Exit For Else Cells(FilaIngreso, 1 + k).Value = a End If Next i El bucle como tal funciona pero en lugar de ponerme los valores antes definidos de Cant1, Cant2....etc, me pone el texto "Cant1", "Cant2", etc Cómo hago para que me de de el valor y …

    • 0

      Reacciones de usuarios

    • 1 respuesta
    • 566 visitas
  17. Buenas noche amigos de Excel Ayuda quisiera que me ayuden completando mi amplicación con la ayuda de ustedes e creado una aplicación que ingresa datos para analizar en varios perìodos, los datos estan en un hoja BBDD, mi objetivo es que al analizar los productos cada periodo y culminarlos quiero pintarlos de acuerdo a dos criteros "suspendido" o "culminado" utilizando el buscador yo digito el "Lote" y doy clik en la lupa y busca el producto pero quiero que al ubicar el "Producto1, Produco2 etc" al selecionar uno de los dos botones de opción "verde o rojo" se pinten automaticamente en la base de datos BBDD todas las filas que buscó. Les agradezco por darme un tiempo e…

    • 0

      Reacciones de usuarios

    • 4 respuestas
    • 947 visitas
  18. Started by jik,

    Hola a todos. Tengo un bucle donde el nombre del la variable de la cual necesito obtener el valor va cambiando de Cant1....a....Cant10 (he simplificado el ejemplo que sigue). Los valores de estas variables Cant1.. fueron definidos antes para todo el módulo. Dim i As Byte Dim a As String For i = 1 To 10 a = "Cant" & i Cells(Fila, 1).Value = a Next i El bucle como tal funciona pero tengo el problema que en lugar de ponerme el valor de Cant1, Cant2 (definidos antes) me escribe el texto "cant1", "cant2". Como obtengo el valor de Cant1 a Cant10? Gracias

    • 0

      Reacciones de usuarios

    • 6 respuestas
    • 2.1k visitas
  19. Hola, quiero crear un boton en la Hoja Grafica el cual se enlace con la macro de guardar archivo en la carpeta donde esta el archivo pero me salta el siguiente error. Alguien me puede ayudar, gracias. GRAFICA_TEMPERATURAS_CAMARAS_1_T10-12_v01.xlsm

    • 0

      Reacciones de usuarios

    • 6 respuestas
    • 949 visitas
  20. Started by jik,

    Hola a todos. Me gustaría me ayuden con lo siguiente. Quiero hacer una macro que borre el contenido de 10 combobox cuyo nombre es CbxComp1.....al....CbxComp10. Una forma de hacerlo es obviamente la que sigue (y me funciona): CbxComp1.Value = "" CbxComp2.Value = "" CbxComp3.Value = "" CbxComp4.Value = "" CbxComp5.Value = "" CbxComp6.Value = "" CbxComp7.Value = "" CbxComp8.Value = "" CbxComp9.Value = "" CbxComp10.Value = "" El tema es que quiero hacerlo con un bucle porque voy otras situaciones similares pero con más comboxes. He probado lo siguiente pero no me funciona (no soy experto): Dim i …

    • 0

      Reacciones de usuarios

    • 6 respuestas
    • 2.1k visitas
  21. Started by Benito Bartolomé,

    Buenos días a todos; -Tengo creada una macro que hace una consulta Sql sobre una tabla Access con un Where donde le pongo los parámetros de fecha. Ahora estoy intentado cambiar los parámetros de fecha (DD/MM/AAAA) por solo año (AAAA). Lo que he añadido a mayores al formulario son dos SpinButton que insertan los años en cuestión. Private Sub btn_Buscar_Click(): On Error Resume Next Dim vConsulta, where As String Dim Fecha1, Fecha2 As Date '<<<Dim Año As Variant Dim i As Integer Conectar Application.ScreenUpdating = False Application.DisplayAlerts = False vConsulta = "sql_Resumen" Fecha1 = Format(Me.TextBox100, "DD/MM/YYYY") '<<<<&l…

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 1.9k visitas
  22. Recurro a ustedes con la siguiente duda. Estoy haciendo un complemento, pero tengo un problema. Necesito que el formulario activo detecte el cambio de hoja, para que se ejecute una macro. Existe alguna forma de realizar esto ¿? Gracias de antemano

    • 0

      Reacciones de usuarios

    • 9 respuestas
    • 2.3k visitas
  23. Started by Pako_Jones,

    muy buenas, se que es una tonteria pero no logro dar con el problema. es una macro sencilla para calcular el numero de meses transcurridos desde una fecha, y lo que pretendo es asignar la celda donde está la fecha incial a una variable, pero me da error de tipos muchas gracias Option Explicit Sub DifMeses() ' ' calcula diferencia de meses entre fechas ' Dim Fecha1 As Date Fecha1 = Range(InputBox("donde está la fecha inicial", "Cálculo meses")) ActiveCell.FormulaR1C1 = _ "=DATEDIF(RIGHT(Fecha1,2)&""/""&MID(Fecha1,5,2)&""/""&LEFT(Fecha1,4),TODAY(),""m"")" End Sub

    • 0

      Reacciones de usuarios

    • 10 respuestas
    • 1.7k visitas
  24. Tengo una hoja de excel que es una tabla. ¿Cómo puedo copiar mas líneas desde otra hoja de forma que aumente el tamaño de la tabla en la hoja de destino? Me estoy volviendo loco y no sé cómo hacerlo...

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 1k visitas
  25. Buenos días y mes a todos; Estoy intentando armar una macro que sobre unos datos me genera un gráfico. Lo que me gustaría configurar es el poder cambiar los nombres de las etiquetas que aparecen en la leyenda y que se generan predeterminadamente y también si es posible añadir un filtro. Adjunto macro de ejemplo. Saludos a todos. MGráfico.xlsm

    • 0

      Reacciones de usuarios

    • 3 respuestas
    • 1.2k visitas

Información básica de protección de datos

  • Responsable: Sergio Andrés Celemín
  • Finalidad: Moderar y responder comentarios de usuarios. Recuerda que la información que facilites es pública, y los datos que incluyas los leerá cualquier visitante de esta web, así como el avatar que poseas.
  • Legitimación: Consentimiento del interesado.
  • Destinatarios : Hetzner Online GmbH.
  • Duración: Mientras se conserve este post o hilo en la comunidad, o decidas eliminar el comentario.
  • Derechos: Puedes ejercitar en cualquier momento tus derechos de acceso, rectificación, supresión, oposición y demás derechos legalmente establecidos a través del email [email protected]

Información adicional: Encontrarás más información en la política de privacidad.