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

    Buenas noches Estimados, llevo ya tiempo tratando de hacer esto y necesito que me den una mano el siguiente codigo me busca un archivo en windows mi problema es q necesito que lo guarde, no se cual es la propiedad para guardar cuando cierre mi formulario. Private Sub cmdGetFile_Click() Dim fd As FileDialog Dim ffs As FileDialogFilters Set fd = Application.FileDialog(msoFileDialogOpen) With fd Set ffs = .Filters With ffs .clear .add "Pictures", "*.jpg" End With .AllowMultiSelect = False If .show = False Then Exit Sub Image1.Picture = .SelectedItems(1) End With Exit Sub End Sub Gracias por la ayuda Prueba.zip

    • 0

      Reacciones de usuarios

    • 1 respuesta
    • 697 visitas
  2. Hola, A ver si alguien me puede ayudar. ¿Esto que planteo es posible? Estoy intentando almacenar el último nombre de la hoja de un libro en una variable para que cuando cree una hoja nueva se me actualicen las fórmulas de mi hoja principal automáticamente a través de la función SUMA. Para ello: Almaceno el nombre de la última hoja en esta variable: Sub Variable() Dim Variable1 As String Variable1 = ActiveWorkbook.Worksheets(Worksheets.Count).Name ActiveWorkbook.Names.Add Name:="ultimahoja", RefersToR1C1:=Variable1 End Sub Y luego lo intento usar de esta manera: =SUMA('semana del 01-01-20:ultimahoja'!A1) Pero …

    • 0

      Reacciones de usuarios

    • 16 respuestas
    • 5.9k visitas
    • 1 seguidor
  3. Started by uchipad,

    Bueno resulta que tengo hechas unas macros en Office 2003 y nos han traído nuevos ordenadores. En estos ordenadores nuevos solo está instalado el Office 2010. Estas macros contienen elementos ListView y Toolbar que no se pueden cargar con el nuevo office 2010, por lo que ya me he informado que los Common Controls no son compatibles con Windows 64 bits y office 2010. Necesito una alternativa, podríais ayudarme? hay algún elemento parecido que no sea un listbox?, algo como una tabla que pueda tener columnas?

    • 0

      Reacciones de usuarios

    • 13 respuestas
    • 5.9k visitas
  4. Started by JavierAdrian,

    Hola: Queria saber si es posible generar una macro que me ajuste los altos de fila según esta necesidad: a. autoajuste b. si el alto que resulta de lo anterior es menor a 50 autoajustar a 30 Bueno eso seria Gracias

    • 0

      Reacciones de usuarios

    • 5 respuestas
    • 1.3k visitas
  5. Started by juanmafly,

    Sigo con mi formación de macros en VBA y estoy atascado tengo tres tablas una de alumnos que se tienen que examinar la fecha y el aula, otra con el dia que hay examenes a realizar con su fecha y aula con los puntos a sacar, y otra con los alumnos que los han realizado con su fecha y aula que lo han realizado, busco una macro que cruce las tres tablas y me de como resultado en otra o en la misma hoja los alumnos que aun no han realizado el examen. gracias por adelantado examen.zip

    • 0

      Reacciones de usuarios

    • 5 respuestas
    • 652 visitas
  6. Started by Josep,

    Saludos a todos. Muy brevemente me presento como una persona ya jubilada que me entretiene y distrae programar macros en VBA para Excel. El problema que trato de consultar en este post es el siguiente: En una macro dentro de un formulario intento acceder a una tabla en una hoja de su correspondiente libro , y no tengo problema alguno. El problema aparece cuando ejecuto la misma macro pero el libro activo -que no contiene ninguna hoja con la tabla que se intenta accesar- es otro diferente. Entonces obtengo el error siguiente : "Error en el metodo 'Select' del objeto 'Worsheet'. Creo que se produce porque el libro activoal ser otro, y no ppoder encontrar la Hoja …

    • 0

      Reacciones de usuarios

    • 6 respuestas
    • 674 visitas
    • 1 seguidor
  7. Started by EDUARD1580,

    buen dia amigos del foro como estan, amigos por favor me ayudan con este problema que tengo,con el buscador de ecel me falta los sigiente: envio el ejemplo: en la hoja 1 (datos )tenemos la informacion y en la hoja 2 (busqueda) tenemos lo la busqueda de la hoja 1(datos) peroooo lo que no e podido hacer que al digitar en el conteo de la hoja 2 (busqueda) me saldo al codigo correspondiente, si busco el codigo 1212 al digitar 30 me salgo automatico en la hoja 1(datos) y si busco otro codigo que al digitar se coloque en la casilla y fila correspondiente espero que me ayuden plisssssss¡¡

    • 0

      Reacciones de usuarios

    • 9 respuestas
    • 843 visitas
  8. Started by satanrodrigo,

    Hola mi nombre es Rodrigo Domino bastente bien casi todo de excel 2010, pero mi talon de aquiles son las Macros. Me gustaría aprender desde la base hasta alcanzar el nivel super-sayayin. Es por este motivo, que he creado este topic. -Donde puede encontrar buenos manuales de Macros que comiencen desde la base -Donde puedo encontrar ejercicios resueltos de macros? Espero me puedan ayudar. Saludos desde el fin del Mundo. PD: Si este topic no pertenece a este apartado por favor mover.

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 686 visitas
  9. Estimados Buscando encontré una macro para comparar dos Hojas de un archivo excel y generar otra hoja con las diferencias, la cual me ayuda en algo para lo que necesito. Sin embargo quisiera ver la posibilidad de que me puedan ayudar ampliando un poco más la misma. Las hojas de trabajo siempre tendrán las mismas columnas. Mi parametro de comparación serán los datos de la primera columna, pero entre hojas de trabajo no necesariamente estarán en la misma fila. Una vez que se encuentra la información de una celda de la primera columna de una hoja en cualquier fila de la primera columna de la otra, inicie una comparación columna a columna de la fila de esa hoja, con la f…

    • 0

      Reacciones de usuarios

    • 7 respuestas
    • 2.8k visitas
  10. Started by ROBAYIN,

    Buenas Noches para todos y todas Requiero una vez mas de la bonda y sabiduría de cada uno de ustedes, la cual consiste en aumentar a un useform unos campos para digitar información a hoy tenemos 18 y se debe ampliar a 30 campos; adjunto archivo para validar el requerimiento. por la atencion y ayuda quedo altamete agradecido Bendiciones gracias Copia de Actualización.xlsm

    • 0

      Reacciones de usuarios

    • 1 respuesta
    • 566 visitas
  11. Hola adjunto una simulación de como aumentar un formulario arriba, abajo, derecha e izquierda por medio de unos botones. Es lo que se me ha ocurrido, no se si vosotros sabéis de alguna otra opción ¿? También preguntar si es posible hacer esto mismo con las teclas del propio teclado ¿?. Lo que si es importante es que siempre haya un procedimiento para recuperar tamaño y posición inicial. Saludos a todos y todas. MTamaño.xlsm

    • 0

      Reacciones de usuarios

    • 4 respuestas
    • 371 visitas
    • 1 seguidor
  12. Started by jhon fredy,

    hola expertos como puedo resaltar las celdas que van de "ah: by" tomando el código instalado en el libro gracias AnalisisCifras.xlsm

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 611 visitas
  13. Started by lursaildi,

    Gracias a Macro Antonio que me creo una macro, quisiera seguir evolucionándola pero mis conocimientos de macros es muy pobre, quisiera mejorarla que la celda que está cortada diagonalmente vuelva a su estado sin borro la celda donde pone Din_Astm y si lo pone que el 50 lo coloque según el ejemplo y si pone cualquier dato diferente la celda de referencia sea ASTM, DIN, API el dato que ponga este centrado a la celda como el ejemplo y en la celda de la columna R también la corte diagonalmente como el ejemplo. Si pone API_ASTM corte diagonalmente la celda de la columna P y si borro los datos de API_ASTM deje la celda en estado original. …

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 987 visitas
  14. Started by jhon fredy,

    hola buenas tardes , tengo el siguiente codigo y me gustaria ampliar el rango ,que cambie de columna B a columna A,B,C para poder analizar dichos datos Sub Aleato() borrar_anteriores With Application .ScreenUpdating = False .DisplayAlerts = False '-- ufila99 = 1 + Sheet99.Cells(Rows.Count, 1).End(xlUp).Row tf = Sheets("estadisticas").UsedRange.Rows.Count tc = Sheets("estadisticas").UsedRange.Columns.Count '-- For x = 1 To 20 Do: f = Int((tf * Rnd) + 1) c = Int((tc * Rnd) + 1) Loop Until Sheets("estadisticas").Cells(f, c) <> "" Sheets("analisis").Range("B" & x) = CDbl(Sheets("est…

    • 0

      Reacciones de usuarios

    • 1 respuesta
    • 648 visitas
  15. Started by anjatone,

    Perdón por si no me expreso en los términos correctos, pero es que soy novato en esto de los foros. Necesito una macro que de la Hoja "Altas" Rango C4:J4 copie, mediante Pegado especial "Sólo valores", en la Hoja "Datos" el contenido de ese rango en la Primera celda vacía de la Columna "A". Luego volver a Hoja "Altas" borrar contenido de C4:J4 y quedarse en C4, listo para la siguiente entrada y así sucesivamente. ¿Es posible esto?. Gracias por vuestra ayuda.

    • 0

      Reacciones de usuarios

    • 1 respuesta
    • 666 visitas
  16. Hola a todos! tengo una consulta que pareciera ser imposible... vengo investigando hace mas de un mes y no encuentro la forma de resolverlo.... Tengo una rutina que me crea una serie de shapes rectangulares como si fueran boton de un indice... la rutina recorre cada hoja, y crea en la hoja1 un shape por cada hoja que encuentre en el libro, ... logre que le ponga el nombre de cada hoja como texto al shape... pero lo que necesito agregar el action para cada shape, , ejemplo: si existe una hoja "X" creo el shape con texto "X" en la hoja 1. y el action debe ser : ir a la hoja X , si esta oculta, mostrarla. For Each Worksheet In ThisWorkbook.Wor…

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 860 visitas
  17. Buenas Foro. En un rango de celdas variable en columna A tengo rutas y nombres de archivos para adjuntar a un correo. Con .Attachments.Add adjunto un archivo y mi pregunta es como podria adjuntar los que tengo en el rango A con algun bucle o algo?

    • 0

      Reacciones de usuarios

    • 6 respuestas
    • 740 visitas
    • 2 seguidores
  18. Started by celim,

    Hola amiagos, escribo para que laguno de ustedes que son unos genios puedan ayudarm. mi problema es que no puedo añadir un campo calculado a una tabla dinamica ,este campo esta en función a un dato que es variable ,que es el número de ha. en la Hoja3 del libro que adjunto esta el modelo de tabla que busco obtener con al ejecución del código ,codigo que dicho sea de paso crea una tabla dinamica incompleta en la Hoja "Infor". Gracias desde ya por su apoyo Saludos desde Perú. TD_campoCalcu.zip

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 735 visitas
  19. Invitado Wiru
    Started by Invitado Wiru ,

    Hola a todos. Sé que es una tontería pero no doy con la solución. ¿Alguien me ayuda un poco? Necesito proteger varias celdas por macro. La macro que he hecho es esta: Private Sub Worksheet_Change(ByVal Target As Range) If [b19*C19*E19*B20*C20*E20] <> 0 Then ActiveSheet.Unprotect Password:="cuad" Range("B3:B6").Locked = False ActiveSheet.Protect Password:="cuad" ElseIf [b19*C19*E19*B20*C20*E20] = 0 Then ActiveSheet.Unprotect Password:="cuad" Range("B3:B6").Locked = True ActiveSheet.Protect Password:="cuad" If [A23] = "Sólidos" Then ActiveSheet.Unprotect Password:="cuad" Range("B23").Locked = True ActiveSheet.Protect Password:="cuad" ElseIf [A23] <&…

    • 0

      Reacciones de usuarios

    • 1 respuesta
    • 681 visitas
  20. Hola, En un libro, en una hoja, tengo información muy extensa, de todo tipo, de muchas ciudades pero tengo que solicitar un nuevo dato a cada una de ellas y para ello necesito crear una hoja personalizada con su nombre donde incluiré la información relevante que necesitan para poderme dar ese dato que les reclamo. Estoy utilizando una tabla dinámica. El campo ciudad lo he puesto en el campo filtro y utilizo esta macro: Sub InsHoja() Dim MyName As String Sheets("BaseDatos").Select MyName = Range("I10").Value Sheets.Add After:=Sheets(Sheets.Count) Sheets(Sheets.Count).Select Sheets(Sheets.Count).Name = MyName End Sub[[/CODE] Funciona muy bien pero claro pri…

    • 0

      Reacciones de usuarios

    • 4 respuestas
    • 659 visitas
  21. Started by fdbchp,

    En el documento zip adjuntado he conseguido poner en el commandbutton ENVIAR un código para enviar un mail desde mi cuenta de gmail pero no sé bien como incorporar la transaccion adjuntar archivos y si debería añadir algún cuadro de texto en el formulario para adjuntar la ruta del archivo o si puede aparecer como opcion ¿Pueden ayudarme? enviar email.zip

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 924 visitas
  22. Started by modulovar,

    hola ¿que tal? Tengo el siguiente libro donde almaceno unos articulos y el stock correspondiente. Os lo cuento haciendo referencia al ejemplo que os paso He creado un userform para hacer recuento de stock seleccionando los articulos que tengo desde una combobox, hasta ahí perfecto, el problemas es que me gustaría añadir estos datos al textbox, ir sumando los stock y mostrar esta suma por la label de la derecha. Se os ocurre como hacerlo? Gracias por vuestra ayuda lista Art.zip

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 589 visitas
  23. Hola a todos La cuestión que os presento es la siguiente: Por una parte, tengo unos códigos en la columna A y en la columna B sus datos correspondientes. Por otra parte tengo, en la misma Hoja, dos celdas la E2 con un nuevo código y la F2 con su correspondiente valor. La pregunta es cómo se puede hacer para que si éste nuevo código es distinto a los contenidos en la columna A , se añada dicho código y su valor en las primeraS celdas vacías de las columnas A y B respectivamente. Libro.zip

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 778 visitas
  24. Started by delvalle,

    Buenas compañeros, si me ayudáis con los siguiente, lo agradecería mucho. El funcionamiento del libro es el que sigue: La hoja2 es donde se guardan los registros, éstos provienen de dos hojas distintas. De una vienen los datos a los que llamo Movimientos en Cuenta que sería en este caso la hoja1 y la otra hoja la he omitido porque no interviene. Los datos que provienen de la hoja1, en el campo Id siempre debe de aparecer 0 (000000), independientemente del número de registros. Se debe de llenar el campo Id (siempre 0 como he dicho), el campo Nombre (que sería el Concepto - hoja1), el campo F. Fin (que es la Fecha - hoja1) y R. Neto (que es el Importe - hoja1), el rest…

    • 0

      Reacciones de usuarios

    • 3 respuestas
    • 822 visitas
  25. A ver si me podéis echar un mano, Necesito importar una serie de datos en orden de un fichero .txt automáticamente. Los datos están separados por espacios aunque el formato del txt se podría modificar si fuera necesario, y cada dato separado por espacios debe ir en celdas contiguas. Ejemplo: [B]Datos del txt[/B]: 24/02/2012 14:39 2406,500000 [B]En excel[/B]:[B] En A1[/B]: 24/02/2012 [B]En B1[/B]: 14:39 [B]En[/B] [B]C1[/B]: 2406,500000 [/CODE] Aparte de ésto luego tengo que arrastrar unas fórmulas manualmente ¿Se podría hacer también un arrastre automático de ciertas celdas? Adjunto dos ficheros, un .txt con el formato de los datos y un .xls con lo que neces…

    • 0

      Reacciones de usuarios

    • 4 respuestas
    • 1.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.