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 jesuspg,

    Hola compañeros, Tengo un error con la fórmula Find. Quiero buscar una clave externa contenida en otra tabla. Concretamente busco la clave externa número 1, sin embargo me muestra por pantalla la información referente a la clave externa número 11. En realidad, yo busco la clave externa número 1, y me devuelve el primer registro con un 1 que encuentra en la otra tabla. Quiero que me devuelva el resultado exacto conforme a la clave externa número 1, no 11, ni 111, ni 1111,... Lo muestro en el vídeo y creo que se entenderá mejor: Uso esta fórmula: Dim celda As Range, rango As Range Set celda = ActiveCell Set rango = ThisWorkbook.Sheets("LOCALIDADES").…

    • 0

      Reacciones de usuarios

    • 8 respuestas
    • 1.4k visitas
  2. Buenos días, expertos por favor me pueden dar una mano con una macro donde me debe mostrar un mensaje si la boleta fue impresa con anterioridad, para que me diga por lo menos se esta duplicando con la impresión de dicha boleta algo así, de lo contrario que me imprima normalmente, por favor los agradecería un montón. Adjunto el archivo Planilla-de-remuneraciones-y-boletas-de-pago-1-1.xlsm

    • 0

      Reacciones de usuarios

    • 9 respuestas
    • 886 visitas
    • 2 seguidores
  3. Buenas Noches Soy nuevo en esto de las macros y quisiera solicitar su apoyo con el archivo que adjunto en donde de la hoja llamada Siniestros requiero seleccionar el monto de siniestro mayor de la columna "Monto Siniestro M.N. "pero en esta búsqueda del monto mayor no debo tomar las claves de riesgo 105,106,107,113 y 114 que aparecen en la columna de "Riesgo" y al final debo en una celda colocar la siguiente leyenda "aumentar costo en el riesgo ____________" ahi debo colocar el nombre de la seccion que aparece en la columna de Seccion de acuerdo al riesgo que resulte con el mayor monto, todo esto sera posible hacerlo por que e investigado pero no he logrado que haga…

    • 0

      Reacciones de usuarios

    • 13 respuestas
    • 888 visitas
    • 2 seguidores
  4. Started by egaleano,

    Buenas tardes; estimada comunidad, agradezco me ayuden con este caso. Tengo una serie de textbox que cargan un listbox; los tengo condicionados para que, al dar clic en el boton de carga, me muestre un error si hay algo vacío; el problema es que la informacion se cargue al listbos solo cuando los 5 datos esten completos, pero lo que escribi sigue derecho y graba sin importar si todos estan completos. Private Sub CommandButton14_Click() 'cargar informacion ref bancaria a listbox 'validar que los campos esten completos If TextBox34 = Empty Then MsgBox "FALTA NOMBRE DE BENEFICIARIO", vbCritical TextBox34.SetFocus El…

    • 0

      Reacciones de usuarios

    • 5 respuestas
    • 1.5k visitas
    • 2 seguidores
  5. Buenos días compañeros !! Podrían ayudarme, tengo una duda con un formulario. En el apartado de BUSCAR, tengo un buscador inteligente, pero sólo me busca por algunos campos. Me gustaría poder buscar cualquier coincidencia en todo el documento, ya sea por números, letras, etc... Muchas gracias compañeros Pruebas14032022.xlsm

    • 0

      Reacciones de usuarios

    • 7 respuestas
    • 659 visitas
    • 1 seguidor
  6. Started by egaleano,

    Buenos dias Estoy trabajando un formulario en el que hay 4 option button; la idea es que al dar clic en un boton valide que por lo menos un optionbutton este seleccionado pero no lo logro. Private Sub CommandButton1_Click() If OptionButton1.Value = False & OptionButton2.Value = False & OptionButton3.Value = False & OptionButton4.Value = False Then MsgBox "SELECCIONE UN TIPO DE PROVEEDOR", vbCritical End if Exit sub

    • 0

      Reacciones de usuarios

    • 3 respuestas
    • 1.1k visitas
    • 1 seguidor
  7. Started by jesuspg,

    Hola de nuevo compañeros, ¿Cómo puedo hacer para mostrar toda la información contenida dentro de un array en un sólo cuadro MsgBox? Tengo el siguiente código de pruebas con dos opciones disponibles, pero ninguna de las dos funciona: Sub pruebas() ' Declaramos las variables... Dim miArray() As Variant miArray = Range(Cells(2, 1), Cells(2, 8)) ' Opción 1: ' MsgBox Join(miArray(1, 3), vbCr) ' Opción 2: For i = 0 To UBound(miArray) msgString = miArray(i) & vbCr Next i ' Mostramos el contenido del array... MsgBox "Los valores del Array son los siguientes: " & vbCr & msgString End Sub

    • 0

      Reacciones de usuarios

    • 4 respuestas
    • 3.3k visitas
  8. Hola compañeros, necesito solucionar el siguiente problema: "Tengo dos tablas de ejemplo, una se llama TABLA y la otra RESULTADOS. Cada una de ellas contiene su propia clave primaria. Tabla TABLA Tabla RESULTADOS El problema que quiero solucionar es que cada vez que un usuario haga click en una de las celda del campo FK TABLA, se le muestre toda la información detallada de ese registro en concreto, tal y como se muestra en la siguiente imagen. Video DEMO Espero que con el vídeo anterior se vea claramente lo que quiero conseguir. Este es el código que utilizo. Private Sub…

    • 0

      Reacciones de usuarios

    • 11 respuestas
    • 2.5k visitas
    • 1 seguidor
  9. Buenas tardes compañeros: Llevo tiempo atascado en dos cuestiones con un inventario y no doy con la solución, por si me pudiesen ayudar. Tengo 3 apartados : Alta (Funciona perfectamente), Buscar y Modificar. 1. En el campo buscar me busca en todo el documento, hasta aquí todo correcto. Pero me gustaría que me mostrase solo los siguientes campos. TxtLdap, txtUsuarioAD, TxtNombreyApellidos, TxtCrijaSob, TxtCrijaPor, TxtLineaFija, TxtLineaMovil. Aquí tengo un botón modificar que es para el siguiente paso. 2. En el UserForm Modificar me gustaría que me devolviese todos los valores introducidos en el Alta y poder modificarlos, pero me da un error …

    • 0

      Reacciones de usuarios

    • 16 respuestas
    • 1.4k visitas
    • 1 seguidor
  10. Cordial saludo, gracias a todos por sus aportes... Deseo impedir que los usuarios de mi aplicación tengan acceso a las opciones de excel, en el ID de VBA, en This WorkBook, tengo varias opciones para no permitir el acceso, adjunto código; pero si tecleo el comando abreviado Ctrl + P (Imprimir), se abre el menú que permite hacer modificaciones en opciones avanzadas, Compartir, Publicar, Información del archivo, que pueden ser modificados desde esa ventana. Lo que deseo es Cancelar todas esas opciones y dejar "Libre", solamente la opción de "Imprimir", que no encuentro por ningún lado... Por favor requiero su ayuda... Private Sub Workbook_Activate() ' Evita copia…

    • 0

      Reacciones de usuarios

    • 1 respuesta
    • 1.6k visitas
    • 1 seguidor
  11. Cordial saludo, y agradecimiento de antemano por su ayuda. Tengo el siguiente código para imprimir varias hojas desde un Form, pero presenta error : ' error 21470224773 (8007007b) Option Explicit Private Sub CBRegistro_Click() Dim b As Boolean Dim Ruta As String Dim Nombre As String Dim paso2 As Boolean Nombre = UCase(InputBox("IMPRIMIR INFORME - ID DE ACCESO - Guardar una copia de los Registros de la Prueba ejecutada")) paso2 = False Select Case Nombre Case "PRIMERO" If UCase(InputBox("Introduce tu clave de acceso")) = "PRIMERO2020*" Then paso2 = True Case "CLAVEDOS" If UCase(InputBox("Introduce tu clave de acceso…

    • 0

      Reacciones de usuarios

    • 10 respuestas
    • 1.2k visitas
    • 1 seguidor
  12. Hola cumpas de nuevo, estoy bloqueada ante un paso en mi archivo en la hoja RazonSocial, cargue un cuadro de lista en funcion de los clientes que tengo de ejemplo, no encuentro la forma de hacer que al seleccionar alguno o varios de ellos me los carge en mi rango G14:Nx... En un userform seria un listobox pero queria ver la forma de no usar en este proyecto un userform sino directamente los controles de excel. el otro punto que tampoco encontre es lograr que el texto que escriba en la celda combinada RazonSocial.Range("C13:E14"), me filtre por coindicidencias similares los datos que me carga en el cuadro de lista de abajo... la verdad que no est…

    • 0

      Reacciones de usuarios

    • 6 respuestas
    • 599 visitas
  13. Hola a todos! les comparto un archivo en el que estoy trabajando , lo modifique en base a un archivo que encontre aqui en el foro. Tengo en la Hoja 4 unos boton de check, que hasta ahora solo configure uno.... la idea que al seleccionar la primera opcion "Menos de $1.000" , me filtre los datos de la hoja 1, y me los pegue en la misma hoja 4 a partir del rango Hoja4 (G14:N) El archivo de base que tome como ejemplo, me pega los datos correctamente en la hoja 3, pero cuando lo modifico para que me los ponga en la hoja 4 en el rango que tengo para agregar los datos, me los arroja en cualquier lado... me podrian ayudar por favor si mal no recuerdo e…

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 547 visitas
  14. Buenos dias quisiera que me ayuden en un pequeño proyecto quiero que en un textbox al digitar 25 automaticamente se pongra el "ºC" quedando "25ºC" y digitando otro valor como 46 automáticamente se ponga el "%HR" quedando "46%HR" claro separado por un "/" tambien que se ponga automaticamente, no se si me hice entender finalmente quedaría digitando 25 y 45 asi en el un textbox "25ºC / 46%HR". Muchas gracias por su ayuda

    • 0

      Reacciones de usuarios

    • 1 respuesta
    • 506 visitas
    • 1 seguidor
  15. Started by jesuspg,

    Hola a todos, Este formulario no ejecuta el código... Hay algo que me da errores!! Agradezco cualquier aporte. Muchas gracias. PRUEBAS.xlsm

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 712 visitas
    • 1 seguidor
  16. Hola a todos; Adjunto una macro con un formulario y varios botones que abren un determinado formulario. Al abrir el formulario este lo hace con un ancho predeterminado y al hacer clic en un determinado botón este se encoje en el ancho. ¿Cómo puedo hacer para que el formulario "principal" recupere el ancho cada vez que cierro los formularios secundarios? -Quería evitar usar una macro para cerrar el formulario. Adjunto macro con el ejemplo. Saludos. MWith.xlsm

    • 0

      Reacciones de usuarios

    • 1 respuesta
    • 1.4k visitas
  17. Started by jmzamora,

    Buenas tardes compañero. He encontrado un ejemplo de formulario el cual me gustaría adaptar al mío. Mi pregunta es la siguiente. Cuando generas un registro aleatoriamente empieza a generar desde el número 500, 501, 502...etc ¿En vez de que empiece a generar por números podría empezar a generar letras y números? Me explico, por ejemplo: HT-001, HT-002, HT-003.... Muchas gracias siempre por vuestras ayudas y vuestras ideas. Si alguien pudiese ayudarme se lo agradecería, SALUDOS CONSECUTIVO PERSONALIZADO.xlsm

    • 0

      Reacciones de usuarios

    • 8 respuestas
    • 4.1k visitas
    • 1 seguidor
  18. Started by jesuspg,

    Hola, me gustaría ocultar la cinta de opciones tan sólo en mi libro activo. Se me ocurren las siguientes ideas, pero no me funcionan: Sub OcultarRibbon1() If ThisWorkbook.Activate = True Then Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"", False)" End Sub Sub OcultarRibbon2() Application.ThisWorkbook.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"", False)" End Sub Agradecería cualquier ayuda. Gracias.

    • 0

      Reacciones de usuarios

    • 6 respuestas
    • 3k visitas
    • 2 seguidores
  19. Started by beto2269,

    buen dia recurro a su experticia para conocer un código el cual no e podido entender unas líneas y seguir en mi proceso de aprendizaje y lógica ya que al cambiar de fila me genera error y quiero que el combo registre desde A1 y no de A31 en A31 despues de cerrado el formulario me genera error 1004 es decir que hace linea a linea lo marcado en rojo que es donde me esta generando el error o si esta en la salida para el registro en la hoja gracias ... Dim lr As Long, i As Long, fin As Long, cont As Long, n As LongDim pre As String''ValidacionesIf ComboBox1 = "" Or ComboBox1.ListIndex = -1 ThenMsgBox ("Se requiere que seleccione un nombre para insertar un codigo"…

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 511 visitas
    • 1 seguidor
  20. Buenos días, expertos necesito una ayuda por el momento en la hoja llamado 1 que cuando pulso clic en cualquiera de los botones de opción de los platos u otros que se encuentran en la parte inferior se me agreguen en el cuadro de lista como por ejemplo la cantidad, plato, precio y otros, y si vuelvo a presionar clic en el mismo botón que agregue solo se aumenten la cantidad mas no debe agregarse un nuevo registro; por favor me pueden ayudar y espero lo pueden entender mi problema es un poco complicado para mi. Adjunto el archivo MEJORA-2.0.xlsm

    • 0

      Reacciones de usuarios

    • 6 respuestas
    • 1.4k visitas
    • 1 seguidor
  21. Started by ndepablo,

    Buenos días, ¿Alguien sabría decirme porque al poner una / en una celda evita que corra la macro ? Al rellenar la columna B con una dirección cualquiera, crea una pestaña con el nombre de la celda. Por ejemplo calle San Juan, pero si pongo c/ San Juan no crea la pestaña Gracias de antemano. PD: Este archivo lo estoy construyendo con la ayuda de este foro Gracias! Un saludo Estado Certificaciones y Anexos FORO.xlsm

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 538 visitas
    • 1 seguidor
  22. No consigo que se ponga la fecha en el formato deseado a no ser que cuando cierro el formulario presione F2 + ENTER que tampoco se hacerlo automáticamente después de la inserción. AYUDA formato deseado 27-feb-22 Consumo Total 2022_MASTER_fecha.xlsm

    • 0

      Reacciones de usuarios

    • 1 respuesta
    • 533 visitas
    • 1 seguidor
  23. Tengo un archivo que no puedo subir pk contiene muchisimos datos y no procede pero os paso lo que pueda de capturas para que en el TextBox aparezca la fecha de hoy al darle userform.show

    • 0

      Reacciones de usuarios

    • 3 respuestas
    • 1.6k visitas
  24. Started by jesuspg,

    Hola compañeros de nuevo, Tengo un problema con la siguiente fórmula: Function VentaConDescuento(ByVal fkProducto As Range, ByVal fkPedido, ByVal descuento As Range) As Double ' Limpiamos los errores anteriores... Err.Clear ' Tratamos los errores... ' On Error resume next ' Declaramos las variables... Dim productos As Range, pedidos As Range Set productos = ThisWorkbook.Sheets("PRODUCTOS").Cells(1, 1).CurrentRegion Set pedidos = ThisWorkbook.Sheets("PEDIDOS").Cells(1, 1).CurrentRegion Dim precioCompra As Double, precioVenta As Double precioCompra = Application.VLookup(fkProducto, productos, 5, False) precioVenta = Application.…

    • 0

      Reacciones de usuarios

    • 3 respuestas
    • 644 visitas
  25. Hola Foristas, buenos días. Espero se encuentren bien de salud. Hace algún tiempo realicé un Proyecto para mi esposa sobre las Pre-Nóminas. Este funciona correctamente gracias en gran medida a ustedes que me ayudaron, dándome solución a algunos temas que expuse, pero ahora me está surgiendo otro, que quizás no me di cuenta en ese momento. Dentro del FrmPreNominas yo creé un código para exportar a otra hoja las nóminas según su denominación, o sea, en el Formulario hay un Frame (Depurar) que tiene los nombres de todas las Pre-Nóminas posibles (dentro del Sistema) y al dar Clic, lo que hace es que según el Tipo de Pre-Nómina lo exporta a la Hoja con el mismo nombr…

    • 0

      Reacciones de usuarios

    • 10 respuestas
    • 921 visitas
    • 2 seguidores

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.