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

    amigo gracias ayudaexcel por dejarme forma parte de su equipo amigos quería q me colaboren como introducir una clave tengo el usuario al ejecutar la macro pero quiero añadir una clave a cada usuario la siguiente sentencia la tengo especificada de la siguiente manera Private Sub CommandButton1_Click() If Usuario = "" Then MsgBox "Seleccione un usuario": Exit Sub MsgBox "Bienvenido " & Usuario Sheets(2).[b49].Value = Usuario Unload Me End Sub Private Sub UserForm_Activate() Usuario.AddItem "pedro" Usuario.AddItem "mario" End Sub

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 613 visitas
  2. Started by josegomez,

    Tengo un archivo el cual Macro Antonio me hizo favor de ayudarme. En dicho archivo de excel tengo un userform con imagenes BMP. Las cuales se insertan dependiendo de la imagen que escogas Para que funcione, las imagenes tienen que estar en la misma carpeta en donde esta mi archivo. este es el codigo Lo que quiero hacer es que el userform me funcione en cualquier libro de excel. Independientemente de donde guarde mis imagenes. De antemano muchas gracias. Nueva carpeta.rar

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 745 visitas
  3. Started by javicor,

    Buenas tardes queridos genios, hoy les pido su colaboracion para resolver lo siguiente tengo un código que toma una foto a un rango de la hoja y me lo sube a un control imagen de un formulario, y esto lo hago por un botón de comando. en la hoja 1 tengo cuatro rangos con un nombre cada uno. lo que quiero es utilizar un combobox que muestre los nombres de los rangos y los asuma en la macro, y a la medida que voy seleccionando me suba la foto del rango al control imagen.. Anexo archivo. Les agradezco su colaboración. pruebas rango-a-imagen.zip

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 605 visitas
  4. Saludos amigos del foro, tengo un archivo que al abrirlo y luego mostrar el userform esta todo bien pero al cerrar con unload me se muestran junto al archivo otras dos hojas. Sospecho que debido a que le aplique un codigo para minimizar y maximizar el userform este esta haciendo algo como eso pero no estoy seguro, pongo el codigo de min-max: Option Explicit Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long Declare Function FindWindow…

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 727 visitas
  5. Started by [email protected],

    Buen Día Comunidad, Espero me puedan apoyar, tengo la siguiente macro que me habre un link mediante un ribbon a través del navegador internet explorer y funciona, solo que quiero en caso de tener abierto, lo habra sobre el que ya se encuentra abierto, en una nueva pestaña, Sub ejemplo(Matriz As IRibbonControl) Set WebUrl = CreateObject("InternetExplorer.Application") WebUrl.Navigate "https://ayudaexcel.com" WebUrl.Visible = True End Sub Quedo al pendiente y agradezco de su apoyo,

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 10k visitas
  6. Started by Benito Bartolomé,

    Hola a todos; Estoy intentando vaciar el contenido del portapapeles y no logro hacerlo. He usado esta instrucción y no me va. Desconozco otro método alternativo. Probé con la grabadora pero lo único que puedo conseguir es ocultar la ventana del portapapeles. Un saludo a todos. Libro1.xlsm

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 4.5k visitas
    • 2 seguidores
  7. Started by samyri,

    Hola a todos: Veran, necesito desarrollar una sub-rutina que simplifique una fracción, dado su numerador y denominador, pero no se como hacerlo. Desde ya muchas gracias a cualquier ayuda.

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 1.5k visitas
  8. Started by luisafhc,

    Buen día, Soy nueva en el foro y además no tengo mucha experiencia en el manejo de macros. Estoy creando un código para asignar un valor específico. Para asignar dicho valor, primero se tiene que cumplir la condición que una fecha esté entre dos fechas. El código desarrollado hasta el momento es el siguiente: [/B]ActiveSheet.Range("BN" & Fila).FormulaR1C1 = "=DATE(MID(RC[-49],1,4),MID(RC[-49],5,2),MID(RC[-49],7,2))" 'Esta es la fecha a evaluar Desembdate = ActiveSheet.Range("BN" & Fila).Value If ActiveSheet.Range("F" & Fila).Value = "EMPRESARIAL" Then If ActiveSheet.Range("BK" & Fila).Value = "DTF" Then If ActiveSheet.Range("R" & Fila).Value =…

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 1.9k visitas
  9. Hola, soy nuevo en el foro espero estar haciendo esta publicación correctamente Intentare explicarme lo mas claro posible Son dos cuestiones, la primera: Quisiera saber como hago para que al introducir un valor en una celda me vaya dando el valor en la celda de al lado, o en otra y de igual manera pueda seguir haciéndolo, por ejemplo: en la celda C3 introduzco el valor 2 y quiero que ese valor aparezca en la celda D3, pero que si vuelvo a introducir en C3 otro valor, por ejemplo el 4, en la D3 me aparezca la suma de los valores, es decir 6 y asi consecutivamente. Esa es una parte del primer problema, también quisiera que esto aplique para parte de las filas que yo eli…

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 572 visitas
  10. Started by landeropedro,

    Hola a todos buen día Estoy trabajando en un proyecto de almacén, deseo reducir datos repetidos Sucede que cada articulo tiene un código en particular, si este articulo no existe se procede a crear un código nuevo, cuando el inventario es muy grande es difícil diferenciar si el articulo existe o no, ya que en veces hay descripciones similares pero no iguales Por lo cual solicito su ayuda, les dejo el ejemplo adjunto Ejemplo.xls

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 849 visitas
  11. Started by jhon fredy,

    hola expertos como puedo modificar el principio de este codigo con la idea de transpasar no solamente los dato de la columa B sino tambien los datos de la columna A,B,C Sub zero() Dim ultimaCeldaDatos As String 'hallar la ultima celda con datos de la columna B de la hoja estadistica ultimaCeldaDatos = Sheets("analisis").Cells(Rows.Count, 2).End(xlUp).Row 'copiando datos de columna B Sheets("analisis").Range("b5:b" & ultimaCeldaDatos).Copy Sheets("archivo").Select 'posicionando en la celda donde pegare los datos en la hoja archivo Sheets("archivo").Cells(2, Columns.Count).End(xlToLeft).Offset(0, 2).Select Selection.PasteSpecial Application.CutCopyMode = False …

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 718 visitas
  12. Started by Pirtrafilla,

    Hola a todos. Quería saber si hay manera de imprimir un PDF con una macro Excel. De momento y buscando he encontrado la manera de ver el pdf en un webbrowser y tambien verlo con FollowHyperlink. La ruta del archivo la tengo en un textbox de un formulario y me gustaría que la macro buscara el archivo y lo imprimiera., pero no consigo hacerlo. ¿Es posible? Gracias.

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 10.7k visitas
  13. Started by Adrián Escalante G.,

    Buenos días les agradezco de antemano si me pueden ayudar, hice este macro para ingresar la formula de SUBTOTALES me parece que lo escribe bien pero da un error y no lo encuentro, apelo a ustedes si ven el error o alguna otra opción que pueda utilizar.Mil gracias Consulta.xlsm

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 1.3k visitas
  14. Started by Luis Aquino,

    Hola cracks!! Estoy tratando de generar una macro que calcule el promedio de mis datos, pero en vez de que sea un rango fijo de X2:X8431 sea hasta el ultimo valor que tenga la columna X es decir que pueda variar ya que a veces son mas datos o a veces menos, les dejo el código que tengo actualmente con rango fijo. Range("X2").Select ActiveCell.FormulaR1C1 = "=AVERAGE(R[2]C:R[8431]C)" He tratado con este pero no funciona: Dim last_row As Integer last_row = Cells(Rows.Count, "C").End(xlUp).Row - 1 Range("X2").Select ActiveCell.FormulaR1C1 = "=AVERAGE(R[2]C:R[last_row]C)" Les agradezco mucho su ayuda si tienen alguna id…

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 1.5k visitas
  15. Hola buenas tardes. Trabajo constantemente con varios archivos que deben ser movidos de una carpeta a otra. Estoy tratando de lograr que desde excel con un botón me abra el explorador y estando ahí poder seleccionar los archivos de mi interés y después de seleccionarlo que los copie. 2. ahora abrir el explorador y ubicar la carpeta (destino) en donde quiero colocar los archivos copiados. todo esto desde el explorador. Ya he logrado hacer el proceso de seleccionar los archivos, copiarlos y seleccionar la carpeta donde quiero que las pegue. El problema es que solo me pega un archivo. Me pueden ayudar con la parte de la estructura para que se p…

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 720 visitas
    • 1 seguidor
  16. Started by fabianbaste,

    extraer datos de hojas separadas y cargarlas en resumen estoy tratando de automatizar esta planillas trabajo con ella a diario y no se como hacerlo mas eficiente alguien con mas conocimientos podria darme una mano. explico el trabajo consiste en cargar los viajes aqui la primera de las complicaciones ya que al cierre de cada dia tengo que en forma manual separar los viajes por movil y hacer el cierre de la caja en forma manual, lo que no se camo hacer es que esto se procese de forma automatica con una funcion de cerrar dia y los datos se carguen en hojas separadas, viajes, recaudacion, comision. si no fui muy claro me dicen asi lo podemos sacar. muchas gracias por su …

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 907 visitas
  17. Started by jjpprr,

    Hola amigos de ayuda excel, necesito su ayuda con un tema que puede resultar simple pero que no e podido encontrar solucion. Tengo un problema al hacer una seleccion en un combo de una pagina web a traves de una macro de excel, el problema de este combo es que posee un onchange para cargar el segundo combobox. el codigo que utilizo funciona correctamente con los text pero e buscado de distintas formas y no e podido que me carge el segundo combox. Set ie = CreateObject("InternetExplorer.application") ie.Visible = True ie.Navigate ("https://www.paginaweb.com") Do If ie.ReadyState = 4 Then ie.Visible = True …

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 817 visitas
  18. Started by rhacko,

    Buenas a todos, he estado buscando por el foro, y no encuentro o no se encontrar nada referente a lo que quiero hacer. Mi idea es que al ejecutar el macro, me envíe un mail con 2 rangos de diferentes hojas en el cuerpo del mail, visualizando todos los elementos que hay dentro de esos rangos, por ejemplo fotos, colores, etc. En un principio he encontrado la solución de un solo rango gracias a los códigos de "Ron de Bruin", pero no consigo que me mande 2 rangos en el cuerpo. El código de " Ron de Bruin" es este: Sub Send_Range_Or_Whole_Worksheet_with_MailEnvelope() Dim AWorksheet As Worksheet Dim Sendrng As Range Dim rng As Range On Error GoTo Stop…

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 1.1k visitas
  19. hola les explico mi situacion, hice un formulario de captura de datos, pero en mi trabajo me pusieron trabas para poderlo implementar dado que piensan que se vuelve un cuello de botella a la hora de que 30 usuarios quieren usar la misma computadora, muchos de ellos para adelantar su trabajo lo realizan primeramente en su maquina y despues llegan al libro de captura y solo copian y pegan los datos, yo considero que cuando hacen eso tambien copian las alteraciones que pudiera tener sus archivos de excel; como no podemos contar todavia con un sistema mas versatil se esta usando excel de mientras lo implementan: quise salvaguuardar un "poco" la informacion con respecto a los…

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 704 visitas
  20. Started by ejum56,

    Buenos días A todos Hice esta hoja pequeña macro para elaboración de cheques en una impresora epson L220 normal la intención de esta es para no hacer los cheques manuales si no en una impresora cualquiera, como verán en la macro esta una hoja que se llama cheque si le dan imprimir se emprime únicamente la información del cheque y si le dan generar hace una copia del cheque asignando como nombre el numero de cheque en referencia ahora si se posicionan en la nueva copia que se genera para vaucher y le dan imprimir imprime todo el vaucher hasta aquí esta bien pero lo que deseo es que me ayuden hacerle cambios, en la macro esta la hoja 1 esta la información de algunas…

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 5.5k visitas
  21. Hola Compañeros. He realizado búsquedas pero no doy con la propiedad que me permita lo siguiente. Tengo un Userform con 2 ComboBox (uno pide un número y el otro el usuario asociado a ese número) y un Button (Aceptar). Me gustaría que al seleccionar el número del ComboBox 1 se mostrara automáticamente el usuario en el ComboBox 2. Lo he intentado con Additem, pero lo que consigo es que se agregue nuevamente el usuario a la lista, lo que querría es que lo muestre en el ComboBox. ¿Con qué propiedad podría hacer esto? Agradezco su ayuda de antemano, gracias.

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 1.2k visitas
  22. Buenas tardes grupo Recuro a usted a ver si alguno me puede ayudar con un problema que tengo. Tengo mi configuración regional en español (los campos numericos el searador de desimales esta con una coma "," ). el problema surge cuando quiero enviar datos al SQL que esta en ingles que el separador de desimales esta con un punto "." llevo semanas intentando con varias alternativas y ninguna me funciona todas dan error [microsoft][ODBC SQL Server Driver][SQL Server]error converting data type varchar to numeric Algunas de las alternativas que he probado son las siguientes. Sql = Sql & "'" & Format(ActiveCell.Offset(0, 8), "[en-US]…

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 1.7k visitas
  23. Started by Jorge23951,

    Hola, necesito crear de alguna manera que los datos ingresados en una celda vuelvan a ser ingresados y si no es el mismo que se ingreso la primera ves genere error hasta que sea el mismo ingresado anteriormente

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 479 visitas
  24. Started by aletamez89,

    Hola, tengo la siguiente Macro que lo que hace es copiar las deudas de un cliente en especifico Dado en el Rango Criterios, pero el problema es que me esta copiando absolutamente todos los datos no solo los que corresponden a este Cliente. Podrian ayudarme? No tengo mucho conocimiento en esto. Ya les adjunte el archivo para que me puedan ayudar Ejemplo.zip

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 830 visitas
  25. Nuevamente es un gusto saludarles. Otra vez consultando, tengo un UserForm dentro del cual se encuentran cuatro secciones: Depósitos Banarios, Tarjetas de Crédito, etc., en cada sección se puede grabar la cantidad de registros que sean necesarios. El formulario funciona así, ejemplo: Al abrir el formulario ingreso la fecha y el código de la tienda, luego en la sección depósitos bancarios ingreso mis datos los cuales al presionar el botón “Añadir Registro” los carga a la hoja de Excel en las columnas de la “I” a la “O” tomando como referencia la columna “H”, la misma operación realizo con las demás secciones, una vez ingresada toda la información necesaria le doy enter e…

    • 0

      Reacciones de usuarios

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