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

    Estoy haciendo una macro y al colocar esta formula =COINCIDIR(DERECHA(C8,1),Tabla!$F$2:$F$6,0) me sale error pero no entiendo porqueee alguien porfavor que me responda

    • 0

      Reacciones de usuarios

    • 4 respuestas
    • 650 visitas
  2. Estimados amigos del foro, aquí nuevamente haciéndoles una consulta en relación a poder identificar el genero y especie según se cumplen las caracteristicas alli puestas. Solo le he atinado a que me resulte una, el poco conocimiento no me da mas, por eso acudo a ustedes para saber como se podría resolver este tema. Agradezco su gentil apoyo Subo un archivo para que lo vean Clasificar.xlsm

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 780 visitas
  3. Started by home can,

    Hola, Tengo un libro que uso como base de datos en un hotel. En la Hoja1 registro todos los datos relativos a reservas, entradas, salidas, facturación, etc., y en diferentes hojas resumo algunos datos de la BD conforme a determinados criterios para obtener distintos tipos de estadísticas. Inicialmente usé fórmulas para los resúmenes, pero el proceso de cálculo ralentizaba el funcionamiento del libro, por ejemplo al abrirlo. Entonces decidí grabar las fórmulas en una macro en combinación con el evento Worksheet_SelectionChange(ByVal Target As Range), lo cual agilizó considerablemente el proceso pero me obliga a clickar/seleccionar la fecha en el calendario para que l…

    • 0

      Reacciones de usuarios

    • 12 respuestas
    • 3.5k visitas
  4. Hola a todos y muy buenos días. navegando por internet me he encontrado con un curioso generador de calendarios, y lo he estado modificando y adaptando para poder crear mis organigramas, sin embargo he intentado mil y una maneras de combinar y centrar las celdas en el proceso pero siempre me sale un error de codigo 1004 (Y diferentes explicaciones) pero no me sale ni a la de 3. ¿Se os ocurre alguna manera de conseguirlo? Aquí os dejor los archivos, uno es como funciona ahora y el final es el resultado que busco. PD: He intentado subir el archivo de varias maneras pero no me permite subirlo, aquí os dejo un enlace de mega con las dos documentos en un zip …

    • 0

      Reacciones de usuarios

    • 5 respuestas
    • 1.2k visitas
  5. Buenas noches amigos de ayudaexcelforo, tengo un pequeño problema con un procedimiento y no logro encontrar el error, les escribo para ver la posibilidad de que me tiendan la mano. Les explico: Tengo un formulario para escanear códigos y traer de ese código información a textboxs y de ahí ir agregando información a un listbox y posterior a eso a una tabla en excel, todo esto me funciona bien en el primer registro, pero cuando quiero agregar mas registros al listbox ya no me hace el vaciado de información y no encuentro el porque. Es decir cuando agrego el primero registro me vacía la información en el listbox, pero cuando quiero agregar el segundo regist…

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 656 visitas
  6. Buenas tardes foro, mi consulta es la siguiente:tengo un archivo con tres pestañas y la macro funciona bien con pocos registros, el detalle es que en una de las hojas con la que se alimenta el reporte, tiene mas de 5000 registros y no funciona únicamente jala la información de dos columnas del reporte, si elimino registros y dejo pocos, funciona perfectamente. Me gustaría saber si tengo algo mal en la macro o estoy limitando el rango, se que para mejor ayuda debo subir un archivo, pero voy a intentar subir el archivo nuevamente, porque ya le elimine registros y hojas solo deje unos registros como prueba pero aun así no me permite subirlo, dejo la macro e intentare…

    • 0

      Reacciones de usuarios

    • 19 respuestas
    • 2.6k visitas
  7. Buenas tardes tengo una base de datos y deseo que se visualize el ultimo codigo al momento de guardar la info, sabiendo que el tipo de dato en la base de datos es nvarchar como hago para que sea asi: Fact-0001,Fact -0002,Fact -0003,etc etc Set rst = New ADODB.Recordset rst.ActiveConnection = con rst.Source = "Select Max(Codigo_nota) As Maximo From Tabla" rst.Open If rst.Fields(0) > 0 Then For i = 1 To rst.Fields("Maximo") + 1 Next endif con.Close If Not rst Is Nothing Then Set rst = Nothing If Not con Is Nothing Then Set con = Nothing

    • 0

      Reacciones de usuarios

    • 9 respuestas
    • 6.8k visitas
  8. Started by alvaro_garcia,

    Buenas tardes, vuelvo a escribir para comentaros un problema. Tengo una petición pro REST API que me trae unos valores, y necesito que calcular el % de cada uno de estos valores, me estoy descargando el total y el valor de cada celda, asi que simplemente seria calcular el procentaje por cada una de las celdas, pero no consigo hacer funcionar el for, si uso formular de excel, me fallan en ocasiones, asi que estoy implementado el uso de una macro.Os pongo lo que estoy intentando y me falla: Sub calcular() Set rng = Sheets("AAA").Range("G11:G40") ' Rango donde se descargan los valores individuales Set percent_total = Sheets("AAA").Range("G10")' celd…

    • 0

      Reacciones de usuarios

    • 4 respuestas
    • 3.2k visitas
  9. Started by yordin,

    Buenos días amigos Escribo nuevamente a petición de una consulta o ayuda, manejo una base de datos la cual es usada por varios usuarios novatos en la empresa, a esta base le quiero adaptar una macro que guarde una copia del mismo archivo al momento de aperturar y al momento de cerrarlo, debe tener dos condiciones como indique al momento de su apertura este guarde una copia con su "nombre original, el dia y la escritura de apertura", y lo mismo al momento de cerrar. estos en una ruta especifica, esto por si algun cambio guardado debo reversar saber cual archivo usar. Private Sub Workbook_Open() ThisWorkbook.SaveCopyAs "Z:\Relacion laboral\GUARDERIA\copia-apertu…

    • 0

      Reacciones de usuarios

    • 4 respuestas
    • 1.2k visitas
  10. Started by yordin,

    Buenos dias. nuevamente yo por aca con una consulta o petición de ayuda, es lo siguiente, en mi lugar de trabajo tengo un archivo o base de datos en Excel el cual tengo adaptado con varias macros y Userform para la emisión de constancias de trabajo, pero queria adaptarle una macro que verifique dicha constancia no halla sido emitida en los últimos 20 dias como podria hacer. Estoy usando una macro que me verifica que el dato no este repetido es la siguiente: Sub VALIDAR() Application.ScreenUpdating = False Application.Calculation = xlCalculationManual Application.EnableEvents = False ActiveSheet.DisplayPageBreaks = False Set H1 = Sheets…

    • 0

      Reacciones de usuarios

    • 5 respuestas
    • 4.7k visitas
  11. Hola Amigos, soy nuevo aquí pero aprendo un montón de sus respuestas. Queria consultarles si pueden ayudarme con el siguiente tema. Deseo traspasar un rango de datos de una columna definida, de varios archivos, que se van nombrando de distinta manera, y traspasarlos a un excel común, uno al lado del otro (de acuerdo a un numero de reporte correlativo) para lograr hacer un estadistico con dichos datos. Adicionalmente a esto, vale comentar que la columna de donde saco la informacion (de cada reporte con distinto nombre), es una columna que tiene una formula y que debo colocar en el estadistico como valor absoluto. Desde ya les agradezco.

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 594 visitas
  12. Buenos dias a todos, Tengo una macro la cual hace lo siguiente: 1. Selecciona registros de la fila 321 a la 470 y los copia desde la fila 500 en adelante, esto con el fin de poderlos trabajar. 2. Rutina para borrar los registros en blanco, o sea tomar los registros de la posición 500 a la 649. Problema: No me borra los registros o filas en blanco, ya que no se como definir el rango y me lo pueda tomar la rutina que tengo. Relaciono la Macro: Sub Macro4() ' ' Macro4 Macro ' ' Desabilita los campos de Nombre Px y Tratamiento Application.EnableEvents = False Application.ScreenUpdating = False ActiveSheet.Unprotect Cells.…

    • 0

      Reacciones de usuarios

    • 16 respuestas
    • 3.5k visitas
  13. Started by ramonvar,

    Hola buen día.. Necesito una macro que me haga lo siguiente Tengo un textbox5 dentro de un formulario cuyo contenido lo arroja en la hoja activa, al darle aceptar, este contenido del textbox5, se completa al seleccionar en un listbox que extrae de una base de datos (Hoja27), es decir de otra hoja...hasta ahi todo funciona...pero como puedo hacer para que al ser diferente el contenido del textbox5 pueda yo corregir en este, y me lo pueda reemplazar en la base de Datos?...cuyos datos se encuentran el la columna F a partir de la fila 2 de la hoja27 ActiveCell.Offset(0, 1).Select ActiveCell = TextBox5--------------------- 'Esto si funciona sin problemas en…

    • 0

      Reacciones de usuarios

    • 1 respuesta
    • 715 visitas
  14. Hola muy buenas, nose si este es el lugar, la verdad pero es que tengo un csv que esta en formato libro de excell que me pasa mi proveedor y quisiera que aparecieran tambien las urls de las imagenes y otras cosas de interes para subirlo a unas webs comerciales pero lo que ocurre es que me dan una informacion de como acceder a una API que tienen ellos para hacerlo, el tema es que no entiendo muy bien que es lo que tengo que hacer para "llamar" o algo asi dicen a esa accion, tengo que poner ese tipo de link que me dan en la API en el recuadro de el articulo el cual quiero la imagen y la descripcion? Por ejemplo para las especificaciones me dice esto: …

    • 0

      Reacciones de usuarios

    • 1 respuesta
    • 605 visitas
  15. Started by artmandu,

    Hola Saludos a Todos!!!! Tengo un problema trabajando con texto, estoy usando un textbox y lo que necesito es que si el texto ingresado en este es mayor de determinado numero de caracteres sea repartido en diferentes filas en la hoja de excel, por mas que busco la manera de hacerlo no consigo hacerlo, espero me puedan ayudar el numero de caracteres máximo es de 42 por fila muchas gracias de antemano Saludos Cordiales Arturo

    • 0

      Reacciones de usuarios

    • 4 respuestas
    • 717 visitas
  16. Hola buen día.. Necesito una macro que me haga lo siguiente Tengo un textbox dentro de un formulario cuyo contenido lo arroja en la hoja activa, al darle aceptar, este contenido del textbox, se completa al seleccionar en un listbox que extrae de una base de datos, es decir de otra hoja...hasta ahi todo funciona...pero como hacer para que al ser diferente el contenido del textbox pueda yo escribir en este, y me lo pueda reemplazar en la base de Datos?...cuyos datos se encuentran el la columna F a partir de la fila 2.. Tengo estas lineas de código pero no me actualiza la base de datos que está en la hoja 27 pero se llama RUC empresas..no se si ahi esta el error o e…

    • 0

      Reacciones de usuarios

    • 3 respuestas
    • 1.3k visitas
  17. Started by jcpi,

    Buenas, tengo el siguiente problema, una vez genero la fecha d, los valores que extraigo son erróneos y me sale por defecto en año = 1905, mes = 01(enero) y día = 29, cuando obviamente no estamos a esa fecha. No he encontrado la solución por ningún sitio, y estoy un poco verde en esto, si alguien me puede echar una mano lo agradecería! Saludos Private Sub ComboBox4_Change() 'Se utiliza para poder generar un numero de oferta Range("B3").Select Selection.End(xlDown).Select seleccion = ActiveCell.Row d = Date y = Format(Year(d), "yyyy") m = Format(Month(d), "mm") dia…

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 832 visitas
  18. Started by leandrogo,

    Hola buenas tardes, Tengo un problema para comparar tres filas en excel, se los agradecería demasiado si me ayudasen. Estas son las tablasTabla 1: Tabla:2 Necesito una formula o una macro en donde me compare: -Entidad de la "Hoja1" es igual a la Entidad de la "Hoja2" -Municipio de la "Hoja1" es igual a la Municipio de la "Hoja2" -Localidad de la "Hoja1" es igual a la Localidad de la "Hoja2" Si se cumplen las 3 condiciones que copie Numero A de la "Hoja2" a una columna de la "Hoja1" Les agradecería mucho su ayuda

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 763 visitas
  19. Started by pauarc30,

    Hola, En la macro que adjunto al momento de darle doble clic a la casilla de chequeo (check box), excel me pone un check y me lo tacha, al igual que el tema. En qué parte puedo modificar la macro para que no me tache las palabras?? Por favor su ayuda. Check_list_prueba.xlsm

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 689 visitas
  20. buenas espero que estén bien, necesito de su ayuda ya que estoy aprendiendo a manejar el excel a nivel macro, ya e vistos muchos vídeos y e leído mucho y no consigo la solución que busco tengo este formulario, me funciona muy bien pero quiero colocarle el PasswordChar = "*" y no doy con esa solución Private Sub LOGS_Click() CLAVE_LOGS = InputBox("EXCRIBA SU CLAVE") If CLAVE_LOGS = "w21052014r" Then Sheets("LOGS").Visible = True Sheets("LOGS").Select Else MsgBox ("CLAVE INCORRECTA!!!") Sheets("portada").Select End If End Sub si hay alguien que me ayuda por favor

    • 0

      Reacciones de usuarios

    • 3 respuestas
    • 4.4k visitas
  21. Buenos días a todos, Primero que todo estoy en proceso de aprender, por tal motivo recurro a ustedes para que me orienten o me ayuden a resolver el siguiente problema, ya que no he sido capaz a traves de una macro o como ustedes me puedan guiar, es lo siguiente: 1. Tengo un archivo con varias hojas, que vienen hacer los días del mes, en el ejemplo el Archivo se llama "Datos_Prueba" y los días son 16-17 y 20 2. Se generan unos registros día a día de las filas 1 a la 19, de 20 a la 39, de la 40 a la 59 y de la 60 a la 80, esto es porque hay varios módulos por cada representante de ventas y se tienen 20 filas por cada uno de ellos. 3. Hay una Base de Dato…

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 715 visitas
  22. Hola, quisiera saber si hay forma de conectarme a sql server pero con otro usuario de red de windows. Esta primera cadena, realiza la conexión pero con usuario local de sql server: cn.ConnectionString = "provider=sqloledb.1;data source=DESKTOP-GRP18I3;user id=prueba;password=prueba;initial catalog=prueba" Esta segunda cadena, realiza la conexión pero con el usuario que en ese momento esta logueado en la PC: cn.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=True;Data Source=lims\ts;initial catalog=Prueba" Ambas funcionan correctamente sin embargo quisiera saber si es posible poder utilizar la segunda conexión, pero…

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 2.2k visitas
  23. Estimados amigos del foro, me gustaría lograr hace desde Excel que se pueda copiar y pasar el modelo de texto que esta en la primera pagina de word a la siguiente pagina, si vuelvo a aplicar la macro se continua en la siguiente y así sucesivamente Subo el archivo de wor para que revisen, en este archivo esta una macro que hace lo que quiero pero esta en codigo macro de word, pero quiero hacerlo desde excel Se puede?? Gracias por su apoyo. PruebaPagWord.docm

    • 0

      Reacciones de usuarios

    • 14 respuestas
    • 1.4k visitas
  24. Buen día, amigos espero puedan ayudarme, estuve buscando modelos para poder ejecutar mi pequeño proyecto, pero me perdí en el intento de interpretar códigos, necesito ayuda, saben mi problema es el siguiente: tengo un libro llamado rendiciones, consta de tres hojas bd, consulta y rendición, la hoja rendición es la principal, deseo que mediante el comando consultar pueda derivarse a la hoja consulta y al ingresar un dato en la celda pueda filtrarse información de la base de datos, DESDE YA AGRADESCO INFINITAMENTE SU APOYO. RENDICIONES.xlsx

    • 0

      Reacciones de usuarios

    • 3 respuestas
    • 902 visitas
  25. Buen dia! Tengo esta inquietud.. Tengo esta formula Sub ordenarfiltro() Sheets("Mantenimiento").Activate Range("a2").Select Range("A2:J2").Select Range(Selection, Selection.End(xlDown)).Select Selection.Sort Key1:=Range("a3"), Order1:=xlDescending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal End Sub Ahora yo quiero que si la celda "A2" esta vacia, la macro no corra. Osea que no pase nada.. eso es para el caso de que aun no se hayan llenado valores en la tabla. Simplemente eso.. Gracias!!

    • 0

      Reacciones de usuarios

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