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 Gerardo Arevalo,

    Hola a todos! Ahora les traigo una nueva consulta, gracias a todos los que ayudaron o leyeron mi post anterior, muy agradecido, por la gran ayuda y apoyo que eh recibido en este foro. La nueva consulta es la siguiente: Tengo un libro que anteriormente tenia varios hipervinculos a otros libros, pero ahora esos libros ya no existen, entonces cada vez que abro mi libro me aparece el anuncio de Este libro contiene uno o mas vinculos que no se pueden actualizar. es algo enfadoso que aparesca cada que abro mi archivo, tengo una macro que hace unas busquedas entre libros y extrae la informacion al libro ORIGEN (pero cada vez que le doy con el boton para que me ejecute la macr…

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 2.8k visitas
  2. Started by JIMMYRUNA,

    Antes que todo un saludo para todos los miembros del foro. Me parece que "Unir dos lineas mediante un conector" es complicado o no se puede hacer, sería maravillo si alguien del foro me pueda sacar de esta duda. Intente hacerlo con el siguiente código: Sub UnirDosLineasConConector() ActiveSheet.Shapes.AddConnector(msoConnectorStraight, 60, 15, 120, 15).Select Horizontal02 = Selection.ShapeRange.Name ActiveSheet.Shapes.AddConnector(msoConnectorStraight, 180, 30, 240, 30).Select Horizontal05 = Selection.ShapeRange.Name ActiveSheet.Shapes.Range(Array(Horizontal02, Horizontal05)).Select Set Conector = ActiveSheet.Shapes.AddConnector(msoConnectorCurve, 0…

    • 0

      Reacciones de usuarios

    • 3 respuestas
    • 2.8k visitas
  3. saludos cordiales como indica el titulo deseo hacer una condicional if que me compare si una variable esta dentro de un array de esta forma if tipo=array(1,2,3) then "la condicion dada" es decir si el tipo va del 1-3 que se ejecute la condicion, pero no me sale .agradezco su amable ayuda al respecto de esta duda.gracias

    • 0

      Reacciones de usuarios

    • 6 respuestas
    • 2.8k visitas
  4. Buenas? A ver si me explico tengo una instrucción que me crea un txt (bueno en este caso un .bat) desde una macro de excel para para insertar el contenido que tengo en una celda en el .bat , pero este me lo genera en codificación ansi por defecto y cuando voy a ejecutarlo no me pilla correctamente los acentos ni la ñ por eso necesitaría darle formato utf8 cuando sea generado el .bat ¿alguna idea de como puedo hacerlo ? ' Declaramos los datos de en que celda se encuentra la ruta del .bat a crear Nombre_archivo = Range("E2").Value Letra = Range("A2").Value N_Carpeta = Range("C2").Value N_Terminada = Range("D2").Value 'Crea…

    • 0

      Reacciones de usuarios

    • 8 respuestas
    • 2.8k visitas
    • 2 seguidores
  5. Started by jreynosa,

    Buen dia Gente.. Alguna Sugerencia ya que cuando selecciono una fila en excel doy clic en el boton "enviar datos" los manda excelente. pero suele pasar que por equivocacion vuelvamos a seleccionar esa fila y damos clic y lo que quiero es que ya no los envia repetidos. Espero su Aporte. Anexo Codigo. Private Sub CommandButton1_Click() Dim sql As String Dim cn As Object Dim rst As Object Dim PP As Long rowCursor = Activecell.Row sql = "Insert Into Reporte(Cliente, Dim, Tipo, Mate, NoRodillo, Cond, HoraCromado, RA, Picos, Temp, ReversaA, ReversaT, CromadoA, CromadoT, Volts, CondA, RAB, PicosA, Celda ) " & _ "VALUES ('" & Cells(rowCursor, 1) & "'…

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 2.8k visitas
  6. Hola amigos de AE. tengo un problema con una macro que antes funcionaba bien. La macro es para eliminar la hoja activa. Hay 2 msgbox para confirmar la decisión de eliminar. Antes funcionaba bien pero ahora me da un error y cierra excel. En el archivo anexo. la macro funciona bien Y las 4 figuras que incluyo en el archivo corresponden al mensaje que me da en el archivo original. Alguna idea de cual puede ser el problema u otro comando que haga la misma operación. Gracias!1 eliminar hoja.xlsm

    • 0

      Reacciones de usuarios

    • 9 respuestas
    • 2.8k visitas
  7. Started by Jair26,

    Buenos días, Lo que tengo que hacer es desarrollar una macros en Excel en Visual Basic Aplication que haga la siguiente función: Yo tengo dos archivos que son parecido, es decir, tienen la misma cantidad de hojas, el mismo formato, las mismas tablas. El primero, que es el original, es modificado en algunos datos de algunas celdas en varias hojas del libro y ahí se crea el segundo archivo. Entonces, lo que quiero es que al activar la macros, en el segundo archivo se resalten en NEGRILLA las diferencias con respecto al archivo original y que además se le agregue un número uno así (˂1˃) en la columna "A" de la fila que se efectuó el cambio. Agradezco mucho la ayuda y espe…

    • 0

      Reacciones de usuarios

    • 5 respuestas
    • 2.8k visitas
  8. hola a todos, Primero que todo espero que se encuentren muy bien, bueno yendo al grano necesito ayuda en este pequeño problema, tengo un Combobox y en este se puede escribir, puede escribirse independiente de los valores que esté tenga en la lista. Ya logre controlar si el Combobox se deja vació, ahora necesito controlar este pequeño error. les pongo el código que use para controlar si se deja vació, así me entienden mejor xD Nota: CbbMes (ComboBox) if CbbMes.Value = "" then Msg "Debe seleccionar un mes", vbCritical, "Error" CbbMes.SetFocus Exit Sub End if

    • 0

      Reacciones de usuarios

    • 4 respuestas
    • 2.8k visitas
  9. Started by kappo23,

    Tengo una hoja excel donde necesito que se queden guardados de forma permanente unos valores de una matriz que depende de otra celda y no consigo hacerlo. Os envío un archivo a modo de ejemplo. Los valores de las celdas de una matriz, pongamos de A4 a A9, dependen de si en A2 hay un 1 un 2 un 3... y esos valores cada semana van variando. Necesito que cuando A2 sea 1, los valores de la matriz (A4:A9) se guarden de forma permanente en las celdas, pongamos C4:C9. Cuando A2=2, los valores de la matriz (A4:A9), que seran diferentes de los que había siendo A2=1, se guarden de forma permanente en las celdas, D4: D9y así sucesivamente Creo que así queda más o menos claro Mu…

    • 0

      Reacciones de usuarios

    • 3 respuestas
    • 2.8k visitas
  10. Started by Carloslg,

    Buenos días, antes de nada agradecer la ayuda desinteresada de los miembros de este magnífico foro. Me estoy iniciando en esto de las macros y me ha salido un problemilla que paso a contarles: Tengo un libro en excel 2007, dentro del cual tengo diferentes pestañas que corresponden a diferentes productos. La macro en cuestión que estoy usando, tiene como función, imprimir la hoja seleccionada y transformarla de .xls a .PDF guardandome el archivo según un nombre especifico que va variando en funcion del dia, la hora y diferentes datos que coje de una celda en concreto y con una ruta tambien variable en función de una celda, con lo que consigo que todos los usuarios gua…

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 2.7k visitas
  11. Started by elenatoled,

    Estimados, tengo una planilla en excel 2003, a la cual quiero ponerle una especie de semaforo bajo las siguientes condiciones (info incluida en el adjunto): Si en la columna L (que indica dias desde el inicio) el valor es mayor a 30, en la columna A se debe mostrar un circulo rojo Si en la columna L el valor esta entre 15 y 30, en la columna A se debe mostrar un circulo amarillo Si en la columna L el valor es menor a 15 o en la columna N el estado es cerrada, se debe mostrar un circulo verde... Probe de muchas formas (en 2007 lo puedo hacer muyy facil!!), pero no me es posible llegar al resultado deseado en 2003...se que debe ser una macro,pero no tengo claro como …

    • 0

      Reacciones de usuarios

    • 4 respuestas
    • 2.7k visitas
  12. Hola, Tengo una consulta, resulta que he logrado crear una lista desplegable dependiente, el problema ahora, es que necesito que esa misma acción se repita las celdas siguientes, la acción fue creada en VBA para la celda K8 relacionada con AJ8,pero lo que ahora necesito es que el evento de K8 suceda también en K9, K10 y demás (hasta K47) y AJ8, AH9 y demás; probé con copiar el código de VBA:... Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address <> "$K$8" Then Exit Sub ActiveSheet.Unprotect Select Case Target.Value Case Is = "Actualización guía comercial" rgo = "_730_53" Case Is = "Elaboración guia comercial" rgo = "_730_53" Case Is = "Pe…

    • 0

      Reacciones de usuarios

    • 6 respuestas
    • 2.7k visitas
  13. Estimada Red, Primero quiero agradecer, porque cada vez que necesito alguna ayuda de este tipo, siempre hay alguien de buena voluntad que me responde. No soy experta en VBA, pero me encanta hacer trabajos como este. Les cuento, estoy trabajando en un archivo, donde tengo un formulario que permite hacer búsqueda de información en una tabla, utilizando filtros avanzados, tomando como criterios de búsqueda, los campos que el usuario seleccione de una serie de combobox, y mostrando el resultado en un listbox dentro del mismo formulario. He tratado de hacerlo, busqué la manera de poder filtrar, copiar y mostrar los datos en el listbox. Esto último lo hace, pero el archivo s…

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 2.7k visitas
  14. Started by Jordi8,

    Buenas a todos, Soy nuevo al foro, y un usuario "medio" de excel. Llevo unos días intentando vía formulas encontrar la manera de realizar una exportación por posiciones. Navegando he encontrado que lo mejor es via una macro pero no encuentro la forma de resolverlo ya que es necesario de un usuario avanzado en tema macros. 1. El tema en ejemplo es, tengo que exportar diferentes excels por posición así: Cuenta Saldo 100 3005,50 2121 -646,94 ... a un txt con esto: 2. Posición Longitud 1 12 Cuenta 13 11 Saldos positivos: 9 enteros + 2 decimales Saldos negat…

    • 0

      Reacciones de usuarios

    • 3 respuestas
    • 2.7k visitas
  15. Started by 5luis,

    Buenas tardes, perfecto la macro que me ha ayudado Riddle : Sub Imprimir_Vistaprevia_seleccion() 'preparar la hoja para la impresión With ActiveSheet.PageSetup .Orientation = xlLandscape 'xlPortrait es vertical xlLandscape es horizontal .PaperSize = xlPaperA5 'formato A5 .BlackAndWhite = False 'incluir colores o no .FitToPagesWide = 1 'reduce el tamaño de la hoja (ancho) .FitToPagesTall = 1 'reduce el tamaño de la hoja (alto) .CenterHorizontally = 1 'centrar horizontalmente .CenterVertically = 1 'centrar verticalmente End With Selection.PrintPreview End Sub una vez configurada en tamaño, doy a imprimir y perfecto. Pero necesito la alternativa de guardarlo…

    • 0

      Reacciones de usuarios

    • 6 respuestas
    • 2.7k visitas
  16. Started by GustavoH,

    Hola : Encontré esta macro en internet que funciona bien pero deseo modificarla para que no me repita los números cada 6 celdas. Alguien me puede ayudar ? Gracias Sub Saca10alAzar() x = 6 Randomize For i = 5 To 43 Range("B" + Trim(Str(i))).Value = Int((x * Rnd()) + 1) Next End Sub

    • 0

      Reacciones de usuarios

    • 4 respuestas
    • 2.7k visitas
  17. Started by nickmartinez,

    Saludos Compañeros recientemente cree una ribbon la cual funciona muy bien,pero al correr el archivo en otras pc donde se elimino office 2010 me arroja el siguiente error al iniciar excel :System Error &H8000FFFF (-21474181113) catastrophic error y luego Out of memory,se que el problema es al querer cargar la ribbon y que es por haber tenido antes office 2010 por que justamente en las 2 pc que me ha dado error han tenido office 2010 se elimino y se instalo el 2016,quiero preguntar si conocen la forma de solucionar este error sin necesidad de formatear la pc,gracias se los agradezco mucho si me pueden orientar. Me baje un desinstalador de office limpie los registros p…

    • 0

      Reacciones de usuarios

    • 5 respuestas
    • 2.7k visitas
  18. Started by jgrc93,

    Buenos días requiero ayuda con lo siguiente: para poder identifica la ultima celda con datos utilizo el siguiente código: x= ThisWorkbook.Worksheets("Simulación ingresos M").Range("A" & Rows.Count).End(xlUp).Row + 1 en la hoja de simulación ingresos m se encuentra una tabla a la cual le voy agregando registros a partir de otra hoja, por algún motivo la primera fila de la tabla ( donde se encuentra la formulación) el código no lo tomo como la primera fila vacía teniendo como consecuencia que siempre me queda la primera fila vacía. como puedo arreglar este problema?, quedaría agradecido con la ayuda No me permite adjuntar el archivo , adjunto …

    • 0

      Reacciones de usuarios

    • 5 respuestas
    • 2.7k visitas
    • 1 seguidor
  19. Que tal amigos del foro anexo un archivo en el que se puede hacer la busqueda del archivo por coincidencias del nombre, mi duda es si se puede hacer la busqueda tambien por autor aunque no ponga el nombre del archivo o poniendo ambos (autor y nombre del archivo), la otra hace mucho me acuerdo que alguna vez vi que se puede hacer la busqueda por condicionantes esto es que si no lo encontraba en c:, lo buscaba en D:, en esos tiempos A: (que ya no existe en algunas maquinas), etc. con la finalidad de no escribir toda la ruta. Espero poder darme a entender y ante todo un saludo buscar archivos.xls

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 2.7k visitas
  20. Estimados Estoy trabajando en un formulario con cuadro combinado, el cual ya sé como desplegar una lista de valores. Mi duda es la siguiente como puedo bloquear cualquier texto que se escriba dentro del cuadro combinado (comboBox), que no corresponda a los valores de la lista seleccionada. Cualquier duda estaré atento a sus comentarios. Desde ya, muchas gracias por su ayuda. Driver IT V2.rar

    • 0

      Reacciones de usuarios

    • 1 respuesta
    • 2.7k visitas
  21. Hola a todos! Tengo unos codigos para asignar un formato numerico a un textbox de un tema que no logro encontrar ahora y otro de un tema que comencé (https://www.ayudaexcel.com/foro/macros-programacion-vba-10/anadir-borrar-cambiar-valor-combobox-celdas-23260/#post114925) que sirve para evitar introducir caracteres especiales. Los he combinado a lo bruto, pero quería conseguir más cosas, a ver si me podéis ayudar con esto. Adjunto el código hasta ahora: Private Sub CuadroTexto1_Change() Dim Texto, Entero, Decimall If Len(CuadroTexto1) = 0 Then Exit Sub Texto = CuadroTexto1 Texto = Replace(Texto, Application.ThousandsSeparator, "") p = InStr(Texto, Application.Deci…

    • 0

      Reacciones de usuarios

    • 3 respuestas
    • 2.7k visitas
  22. Started by helenaberdasco,

    Buenos días, Soy principiante y tengo mil dudas. Agradezco en primer lugar toda la ayuda. He creado un conbobox y lo he rellenado con una lista utilizando las propiedades indicando el nombre de la lista en listfillrange y funciona. Pero si quisiera realizarlo con código teniendo en cuenta que la lista va aumentando y no quiero que incluya espacios vacíos de la columna F que es donde tengo la lista, ¿me podríais decir como puedo hacerlo? Gracias

    • 0

      Reacciones de usuarios

    • 13 respuestas
    • 2.7k visitas
  23. Necesito enviar al libro2 hoja banco a través de una consulta sql todos los pagos de los meses de enero a marzo mayores a 0 de la tabla Rel de igual forma a libro2 hoja pagos de la tabla Pagos de los meses enero a marzo los impuestos mayores a 0 Como hago para consultar las tablas y moverme los los recordset con un solo do while y no repetir el do wile por cada consulta que haga. Gracias de antemano. 'Conexion sqL = Select fecha, pagado, debe from [Rel] where beetwin fecha #1/1/2020# and #31/3/2020# and debe >0 orden por fecha 'Abrir sql 'Para Hoja Banco With Libro.Hoja Uf = .Range("A1000").End(xlUp).Row + 1 Z = 0 Do while Rst.eof …

    • 0

      Reacciones de usuarios

    • 4 respuestas
    • 2.7k visitas
    • 1 seguidor
  24. Started by Alex_edm,

    Hola: Tengo un Combobox que despliega una lista de porcentajes que coge de otra página del propio archivo. Las celdas de las que lee los datos, tienen formato porcentaje y los valores de muestran así: 5%, 10%, 15%... Al desplegar el combobox, los datos del deplegable tambien aparecen en el formato pocentaje tipo 5%, 10%, 15%... pero en la celda en la que escribe ese combobox, los datos se muestras en el formato 0.05, 0.10, 0.15...y me gustaría que aparecieran en el formato original tipo 5%, 10%... He intnetado cambiar el fomrato con el siguiente código pero no me funciona: Private Sub ComboBox5_Change() Tol_AV_in = ActiveSheet.Range("I16").Value Tol_AV…

    • 0

      Reacciones de usuarios

    • 7 respuestas
    • 2.7k visitas
    • 1 seguidor
  25. Started by guerodiaz,

    Hola amigos del foro tengo la siguiente macro Private Sub Worksheet_Change(ByVal Target As Range) If Target.Cells.Count > 1 Then Exit Sub If IsNumeric(Target) And Target.Address = "$AM$4" Then Select Case Target.Value Case 1, 2, 3, 4, 5, 6, 7 ActiveSheet.Unprotect Range("h11").Select Target.Locked = True Target.FormulaHidden = True ActiveSheet.Protect Case 9 ActiveSheet.Unprotect Range("h11").Select Target.Locked = False Target.FormulaHidden = False ActiveSheet.Protect End Select End If End Sub pero al seleccionar cualquiera de los case me mar…

    • 0

      Reacciones de usuarios

    • 3 respuestas
    • 2.7k 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.