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. ¡Buenas tardes! Quiero que una matriz contenga los datos de una lista de 147 filas y 3 columnas.. El caso es que si utilizo for each matriz in selection, se me guarda cada celda tres veces cuando intento usar este bucle para tal fin: Worksheets("listacamioneskm").Select Sheets("listacamioneskm").Cells(1, 1).Select Selection.CurrentRegion.Select For Each matriz In Selection For indicematrizfila = 0 To 146 Step 1 For indicematrizcolum = 0 To 2 Step 1 listacamioneskm(indicematrizfila, indicematrizcolum) = matriz.Value indicematrizcolum = indicematrizcolu…

    • 0

      Reacciones de usuarios

    • 38 respuestas
    • 4.4k visitas
    • 1 seguidor
  2. Started by federtuc,

    Buenas, estoy teniendo problemas con la funcion split, cuando intento pasar datos de listbox1 a un listbox2 Intento con estas lineas Lineas = Split(ListBox1.List(x, 1), ", ") Lineas1 = Split(ListBox1.List(x, 2), ", ") For i = 0 To UBound(Lineas) For x = 0 To UBound(Lineas1) ListBox2.AddItem ListBox1.List(x) ListBox2.List(ListBox2.List(x,1) = Lineas(i) ListBox2.List(ListBox2.List(x,2) = Lineas1(x) Next i Next x

    • 0

      Reacciones de usuarios

    • 3 respuestas
    • 1.5k visitas
  3. buenas noches consejeros de macros vuelvo a necesitar ayuda, es posible cargar un formulario con listbox con datos de una hoja oculta he estado buscando pero no encuentro el código de antemano muchas gracias por la ayuda PRUEBA4.1.xlsm

    • 0

      Reacciones de usuarios

    • 5 respuestas
    • 1.6k visitas
  4. Started by lphant,

    Buenas tardes; Estoy intentando sacar por vba la fecha de captura o la fecha que aparece en un explorador ( Windows ) de unas fotos pero no lo consigo. Los datos que saco son: La fecha de creación. ( .DateCreated ) La fecha de modificación. ( .DateLastModified. ) La fecha del ultimo acceso. ( DateLastAccessed ) y ninguna de esas fechas es ( adjunto pantallazo en el Excel adjunto de las fechas que salen en el explorador ). alguien sabe como lo puedo sacar??. muchísimas gracias. Libro2.xlsx

    • 0

      Reacciones de usuarios

    • 5 respuestas
    • 3.4k visitas
  5. Buenos dias Tengo un problema con mi código que no acabo de conseguir realizar que me filtre por los dos datos requeridos. A continuación explico las partes del código txt_equipo: se cargan los datos al realizar la búsqueda en el cbo_not, estos datos son iguales que la columna 1 del tabla equipos cbo_tarea_prin: los datos los recoge de la hoja7 . este combo lo tengo como evento clik , estos datos están en la columna 2 de la tabla equipos Lo que necesito es que en el cbo_tarea_prin me aparezcan los datos de la columna 2 que concuerden con los de la columna 1 y que después me los muestre en el listbox1. Espero puedan ayudarme. Gracias …

    • 0

      Reacciones de usuarios

    • 10 respuestas
    • 2k visitas
  6. Started by Janlui,

    Saludos a todos, esperando se encuentren bien. Tengo un plano autocad abierto donde tengo activas o abiertas algunas capas donde quiero que haga la consulta, La cuestion es que necesito extraer la información de la longitud de cada linea o polilinea que se encuentre en ese Plano. Información a extraer: Nombre de la Capa, Tipo (Linea o Polilinea X1, Y1, X2,Y2 Referente a la Polilinea, en la columna de Tipo solo la pondra en principio de la polilinea. Espero su colaboración. gracias. (México)

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 1.1k visitas
  7. Buenas tardes! Quiero comparar el valor contenido en la variable "vehiculo" con los valores de una lista de 24 elementos, que he almacenado usando FOR EACH, en la matriz "listacalidad" (variable y matriz de tipo String). ¿Alguien sabe cómo puedo resumir el siguiente código? (He buscado por internet y en este foro, y en la documentación de Microsoft y no he localizado ninguna reseña a cómo puedo indicar el total de índices..) If vehiculo = listacalidad(0) Or vehiculo = listacalidad(1) Or vehiculo = listacalidad(2) Or vehiculo = listacalidad(3) Or vehiculo = listacalidad(4) Or vehiculo = listacalidad(5) Or vehiculo = listacalidad(6) Or vehiculo = listacalidad…

    • 0

      Reacciones de usuarios

    • 4 respuestas
    • 882 visitas
    • 1 seguidor
  8. Started by enrsolgon2,

    Buenas tardes. Tengo un ListBox creado con un rango actual seleccionado de RowSource = 'Hoja'!'A1:C20 Dicho rango es una base de datos que irá aumentando en filas, como puedo hacer que dicho rango se adapte a la ultima fila con valores?? Por ejemplo si la ultima es la fila es la 25 que el rango sea 'Hoja'!'A1:C25 y así sucesivamente. Si pongo un rango muy grande me aparecen muchas filas vacias en el ListBox y queria evitarlo. Gracias Esta lista

    • 0

      Reacciones de usuarios

    • 6 respuestas
    • 2.9k visitas
  9. Started by Enid86,

    Buenas!! ? A ver quién puede ayudarme, tengo un libro con más de 100 hojas y quiero que se borre el contenido de todas, menos de dos hojas concretas ("GS" y "Macros") a partir de la celda A3. Me parece que debería ser muy sencillo, pero el código me da error 13 no coinciden los tipos (línea 5? Sub Botón4_Haga_clic_en() Dim hoja As Worksheet For Each hoja In Application.Worksheets If hoja.Name <> "GS" Or "Macros" Then hoja.Range("A3:G6000").Clear End If Next hoja End Sub He probado declarando las hojas que quiero proteger como worksheet y comparando con If hoja.Name <&g…

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 720 visitas
  10. Started by howling,

    buenas noches amigos de la programacion me podrian ayudar con el siguiente codigo en el evento change, este codigo que esta mas abajo me deja en las columnas "J" e "I" fecha y hora respectiva mente pero cuando envio los datos a la hoja consolidad me deja en las 2 primeras celdas debajo de los titulos hora y fecha escritas. he intentado de varias formas sacarlo pero no me resulta nada podrian ayudarme porfavor este es el codigo If Not Application.Intersect(Target, Range("A:E")) Is Nothing Then Range("J" & Target.Row) = Date Range("I" & Target.Row) = Format(Now, "hh:mm") End If y aqui dejo el archivo si lo nesecitan de ante ma…

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 1.5k visitas
  11. Started by NoWi,

    Buenas a todos. Estoy intentando aplicar formato condicional a un rango de celdas que cumplan con una fórmula. El formato que quiero aplicar quiero copiarlo de otra celda, pero el objeto no me deja pegar de esa forma. Alguna idea? With Range(A2:A6).FormatConditions.Add(xlExpression, , "Formula1") Range("C3").Copy .PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False Application.CutCopyMode = False End With Modificar cada parámetro a mano si que me deja, pero querría que pillara el formato completo de la celda, para no tener que meter todas las opciones. (Pongo sólo 3 en el ejemplo) With Range("A1:A5").FormatC…

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 835 visitas
    • 1 seguidor
  12. Started by ArmandoR,

    Buenas noches compañeros, adjunto fichero excel que he modificado en función de mis necesidades. En su momento fue colgado en este foro por Antoni (un grandísimo trabajo) y yo he intentado amoldarlo para que se adapte a lo que necesito dentro de la gestión de proyectos. Mi pregunta es si es posible que las barras que se generan puedan incluir además el estado de progreso que se representa en la columna I Muchas gracias TOR_PRUEBA_2.xlsm

    • 0

      Reacciones de usuarios

    • 6 respuestas
    • 1.5k visitas
  13. Started by juan Ignacio,

    Estimados, Junto con saludar y esperando que se encuentren bien, tengo el siguiente problema, necesito traer el código que se encuentra en la columna C9 a la B9 con la extensión (Dos últimos caracteres) que se encuentra en la columna V9 siempre y cuando cumpla las condiciones que se encuentran en las columnas W9 - X9 - Y9. Adjunto archivo para su revisión donde hay una formula pero algo le falta para que cumpla las condiciones. Gracias por todo !! Juan Ignacio. CONDICION_PAYER (2).xlsx

    • 0

      Reacciones de usuarios

    • 9 respuestas
    • 1.6k visitas
    • 1 seguidor
  14. Started by suprema,

    Hola amigos, estoy buscando la forma de colocar el mismo código que se encuentra en el archivo 1 y pasarlo al archivo 2 ya que necesito que se me oculten las filas al momento de imprimir, creen que me puedan ayudar por favor, no entiendo muy bien ese código, o si saben de una macro que me ayude con eso, quiero es ocultar las filas que no tengan información con un botón al momento de imprimir, y cuando termine otro botón para mostrarla tal cual esta en el archivo 1. Pido perdón por que se que hay otros foros con el mismo tema pero no encuentro ninguno que se adapte a mi problema. 1.xlsm 2.xlsm

    • 0

      Reacciones de usuarios

    • 1 respuesta
    • 797 visitas
  15. Started by mp5,

    Hola a todos, He creado un código con select case y falta alguna instrucción para que me funcione correctamente. El problema es que si pongo por ejemplo en la columna A1 el numero 1, A2 el numero 2, A3 el numero 3 y quiero que en la columna B1 me ponga el dato que corresponde con el numero de caso me lo hace bien solo la primera vez, cuando pasa a la columna B2 me pone el dato de la columna B1 y así sucesivamente. Pongo el código que tengo. Gracias por la ayuda. Sub Numeros_por_datos() Dim Num As Integer Dim Datos As String Num = ActiveCell ActiveCell.Offset(rowoffset:=0, columnOffset:=1).Select ENTRADA: 'Comprueba que la celda y columna A tenga da…

    • 0

      Reacciones de usuarios

    • 3 respuestas
    • 558 visitas
  16. Hola a todos, estoy dándole vueltas y vueltas y no veo por donde meterle mano. Lo que pretendo es distribuir un texto de forma homogénea dentro de un textbox miltiline, es decir que una vez digitado todo el texto pulsemos Enter y el contenido del mismo quede distribuido tal cual se muestra en el formulario incluido en el archivo adjunto. El Textbox tiene en este caso un límite de 30 caracteres por linea. Alineado Textbox.xlsm

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 2.5k visitas
  17. Started by Janlui,

    Hola a todos. Estoy intentando extraer información de las longitudes de las Lineas y Polilineas: 1. El archivo autocad deberá estar abierto 2. En excel me pondrá por cada fila o renglón la información Columna A: Nombre de la Capa Columna B: Número de lineas (En el caso de las Polilineas) si es una linea recta dirá 1 Columna C La suma o total Longitud de cada linea Gracias por su atención y un saludo desde México.

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 839 visitas
  18. Hola buenas tardes, soy nuevo en el grupo y en crear macros en excel , he estado aprendiendo a programar vba en las redes. Actualmente le estoy desarrollando un control de clientes y trabajos al negocio de mi hija y poco a poco le he estado creando formularios, aca les dejo el formulario que estoy desarrollando para visualizar los clientes y el trabajo que amerita cada uno así como sus costos. En la visualización en el listbox no he podido encontrar que me traiga el mismo formato que tiene cada columna en la hoja de calculo. Les agradezco la ayuda que me puedan aportar. Gracias Private Sub Combobox1_Change() Dim vtotal As Currency Dim i As…

    • 0

      Reacciones de usuarios

    • 4 respuestas
    • 7.4k visitas
    • 1 seguidor
  19. Hola amigos de Ayuda Excel, quiero hacerles una consulta. He estado trabajando en un proyecto el cual he culminado y contado con la gran ayuda de ustedes. El archivo pretendo distribuirlo a nivel mundial (iniciando en países de lengua español). Está en idioma español (archivo/hojas/fórmulas/macros) Fue hecho en Windows 7 y Excel 2013 (español). Lo he probado en otro equipo que tiene Windows 10 y Excel 2019 y funciona bien. La consulta es: - Que consideraciones debo tener para que el archivo funcione en cualquier país. - Debería hacer varias versiones según alguna característica de un país X, cuáles serían los aspectos que cambiar. Gracias!!

    • 0

      Reacciones de usuarios

    • 3 respuestas
    • 928 visitas
  20. Started by pildo,

    Hola a todos me gustaría automatizar una función con un formulario, de tal manera que cuando le meta un variable, me la introduzca en una fórmula y la pegue en una celda en particular. La variable será una fecha, para que haga la siguiente fórmula: =SUMAR.SI.CONJUNTO(DIARIO[HORAS VUELO];DIARIO[FECHA];"<="&FECHA(AÑO($A$2);MES($A$2);DIA($A$2));DIARIO[AVION];73) en negritas y subrayado he puesto lo que la variable modificará. Esta variable la meteré en un textbox de un formulario. La fecha que meta en este textbox será la que busque la fórmula que acabo de poner... Para cada avión le pondré una fórmula similar, pero c…

    • 0

      Reacciones de usuarios

    • 7 respuestas
    • 1.9k visitas
  21. Buenos días, Tengo un fichero Excel, con su macro, desde el que envio correos con adjunto de forma masiva. Pero necesito que los accesos directos de los pdf me los traiga automáticamente. ó bien modificar el botón de la columna G, para poder pegar copiar y pegar todas las rutas correspondientes a los archivos, que he sacado en otro Excel con otra macro. Por favor podeís ayudarme. Gracias envio masivo prueba 2.xlsm

    • 0

      Reacciones de usuarios

    • 9 respuestas
    • 959 visitas
  22. Hola soy nuevo en la programación en vba, tengo un libro compartido en el que al abrirlo se auto ejecuta un macro que hace que el libro se guarde a los 10 mins. de haberlo abierto, este se ejecuta como bucle. Pero tengo un problema, y es que a pesar de que yo cierre el libro de excel, este se vuelve a abrir y ejecutar el macro. Quise usar la opción "Exit Sub" pero no supe cómo programarlo, agradeceré mucho su apoyo. Mis macros para efectuar la tarea son los siguientes: Sub Auto_Open() Hora = Now + TimeValue("00:10:00") Application.OnTime Hora, "Guardar" End Sub Sub guardar() ThisWorkbook.Save Auto_Open End Sub

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 1.9k visitas
  23. Ayuda por favor con un problema necesito que a una celda determinada de una hoja se muestre el resultado de otra celda de una hoja diferente y si esa celda este vacia que busque en otra celda que propondremos en la misma hoja como tendría que ser la formula por favor

    • 0

      Reacciones de usuarios

    • 1 respuesta
    • 546 visitas
  24. Buenas, Tengo una macro, la cual me envía los correos y su adjunto, pero a la hora de adjuntar el archivo, tengo que ir uno por uno. Hay un botón que me lleva a la carpeta y selecciono el pdf, luego en la casilla de alado se escribe la ruta del archivo. Como podría hacer para traerme cada documento a la persona que corresponde con macro? Copio la macro '***Macro Para enviar correos Sub correo() 'Por.Dante Amor col = Range("H1").Column For i = 2 To Range("B" & Rows.Count).End(xlUp).Row Set dam = CreateObject("outlook.application").createitem(0) dam.To = Range("B" & i) 'Destinatarios dam.CC = Range("C" & i) 'Co…

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 3.4k visitas
  25. Buen día gente, lo que quisiera hacer es que en una celda especifica que tengo, la cual una formula devuelve un numero de 5 cifras, quisiera que las dos primeras cifras sean un poco más pequeñas que las otras tres restantes, subo un captura de pantalla porque excel no me deja hacerlo ni manualmente, al salir de la celda se pierde el cambio. Quizás sea imposible pero con preguntar no se pierde nada (excepto tiempo de ustedes para responderme, jaja el cual agradezco y estimo) Saludos Jose

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 876 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.