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. Buenos días a todos. Llevo varios días intentando realizar lo siguiente con unas hojas de excel, pero no he sido capaz: Tengo varios miles de registros de pacientes de nuestro hospital en una hoja excel, con varios campos (número de historia clínica, edad, sexo, centro de salud de referencia etc...). Estos datos los hemos sacado de la base de datos de nuestra historia clínica electrónica. El problema es que en muchos de los pacientes hay datos incompletos, es decir, por ejemplo falta el centro de salud, o falta el médico habitual. Cada paciente además puede tener más de un registro, correspondiente a cada una de las visitas a urgencias, ingresos hospitalarios etc... …

    • 0

      Reacciones de usuarios

    • 3 respuestas
    • 2.1k visitas
  2. Hola: Os explico mis necesidades, a ver que se puede hacer. Tengo tres maquinas a las que me puedo conectar por tres redes locales independientes entre si (que ademas son lentas). Tienen unos datos que me interesa comparar. No es conveniente abrir los archivos mientras trabaja pues causa errores en el proceso. Si intento importar datos directamente desde su ubicación no me deja. Lo que hago ahora es tener un hipervínculo a la carpeta en red, otro al destino y abrirlos para copiar los archivos a pico y pala arrastrándolo. Son ciento ochenta archivos de texto en total pero con la extensión entre .C16 y .C24. Como la intranet es lenta seria fantástico que solo copiase…

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 2.1k visitas
  3. Started by silsebas1990,

    Buenas tengo una macro la cual utilizo para recolectar ciertos datos especificos. Donde los muestro en un listbox por medio de un boton de consulta(esto esta bien). El problema es que tengo un boton para pegar la misma informacion en otro libro que creo, cuando oprimo el boton. Lo que sucede es que no se como capturar la informacion de la hoja en la que estoy y enviarla a la hoja del nuevo libro. aqui esta el codigo de los 2 botones. Private Sub btnConsultaExis_Click() Hoja3.Activate 'Activa la hoja 3 Range("F2").Select Do If (ActiveCell <> ("")) Then ActiveCell.Offset(1, 0).Select 'Baja una celda If (ActiveCell.Value > 1) …

    • 0

      Reacciones de usuarios

    • 1 respuesta
    • 2.1k visitas
  4. Hola a todos, Estoy intentando crear una macro que me automatice un formulario web. Consigo rellenar los textbox normales utilizando el siguiente código pero no sé como conseguirlo en los richtextbox que contiene. Set ie = CreateObject("InternetExplorer.Application") With ie .Visible = True .Navigate direccion Do While ie.ReadyState <> 4 And ie.Busy = True DoEvents Loop End With Set campo1=ie.Document.getelementbyid(etiqueta) campo1.value=valor Espero me podáis dar alguna idea Un saludo

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 2.1k visitas
  5. Macro para: 1. Cuatruplicar datos, 2. Cambio horizontal a vertical condicional Hola a todos, Espero que podaís echarme, con vuestros conocimientos, una mano en una árdua tarea. Poseo una base de datos con 512 observaciones y necesito cambiar la estructura de los mismo. Se trata de un ejercicio donde, en primer lugar, se recogen las características de los individuos y, en segundo lugar, se le indica que ordenen cuatro fotografias (asignando un 1 a la que menos les gusta y una 4 a la que más) extraídas de forma aleatoria de 32 posibles. Estos datos están en forma horizontal y necesito crear una nueva variables que se llame ELE para ordenar en vertical las puntuaciones de …

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 2.1k visitas
  6. Started by fedabrio,

    Hola. La consulta es como pegar un rango de celdas B10:B46 de la hoja 1 a un rango que no tenga datos en la hoja 2 F10:F46 y si tiene datos este rango que encuentre hacia la derecha el rango libre. Muchas gracias

    • 0

      Reacciones de usuarios

    • 3 respuestas
    • 2.1k visitas
  7. Buenas Tardes. Tengo este codigo: Private Sub ListBox1_Change() With Sheets("Hoja1") Set codi = .Columns("A").Find(What:=Me.ListBox1, LookIn:=xlValues) If codi Is Nothing Then MsgBox "Codigo no existe!": Me.ListBox1.SetFocus: Exit Sub For i = 2 To 12 Me.Controls("Textbox" & i) = .Cells(codi.Row, i) Next End With Set codi = Nothing Dim nsp As String Dim hoja As Worksheet nsp = ListBox1.Value For Each hoja In Worksheets ' Busca si existe una hoja con el nombre del codigo de cliente If nsp = hoja.Name Then Dim rw As String rw = ListBox1.Value & "!A:A" ComboBox1.RowSou…

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 2.1k visitas
  8. Started by YianTheJOP,

    Buenas tardes compañeros, a ver si me podéis ayudar con esta macro la cual me funciona perfecta pero ahora a parte de remarcar en color las diferencias en la columna B de las dos hojas también me piden si se puede hacer que me sume el valor de las celdas de la columna M de ambas hojas y el resultado aparezca en la columna Q solo de los valores de las celdas sin color, que serian las que se repiten de una hoja en otra. Esta macro me funciona perfecta, he remarcado en rojo donde creo tiene que ir lo que pido y leo y leo y no termino de encontrar una solución. ¿Me pueden ayudar? El código que estoy utilizando es este: Sub CompararStock() Dim …

    • 0

      Reacciones de usuarios

    • 8 respuestas
    • 2.1k visitas
    • 1 seguidor
  9. Buenas tardes a los integrantes de este foro, en esta ocasión recurro a Uds, para que me brinden su ayuda en como se puede mostrar el resultado de la pestaña PLANILLA los valores que están en la celdas I3 y J3, para lo cual describo su procedimiento: *Al presionar el botón MENU nos envía al formulario Cálculos de las Jornadas (Userform9) y tras presionar realiza los cálculos que contiene la pestaña PLANILLA y genera los resultados que se encuentran en la celda I3 y J3 y hasta el momento he podido lograr que el resultado se muestre digitando el valor cero (0) en cada TextBox para visualizar el resultado o saliendo del formulario y volviendo a ejecutarlo para obtener l…

    • 0

      Reacciones de usuarios

    • 3 respuestas
    • 2.1k visitas
  10. Tengo el siguiente codigo que me extrae datos del listbox a una hoja de excel. pero al pasar los datos que traen fecha me los coloca como mm/dd/aa y lo requiero como dd/mm/aa, cabe recalcar que los datos de las fechas estan en una fila especifica "solo en una fila". Como podria modifcar mi codigo para poder realizar el cambio. Set r = Sheets("RESUMEN") uf = r.Range("B" & Rows.Count).End(xlUp).Row + 1 'Worksheets("RESUMEN").Range("A4:M" & uf).ClearContents Dim Fcc As Date 'Declaracion de variable de tipo fecha Fcc = FormatDateTime(Now, vbShortDate) 'asiganos la fecha a la variable r.Cells(1, 1) = "REPORTE REGISTRO DE COMIDAS…

    • 0

      Reacciones de usuarios

    • 1 respuesta
    • 2.1k visitas
  11. Started by clipp,

    Hola Amigos Necesito que me ayuden con una macro (no conozco mucho del tema), para poder alertar 30 dias antes sobre el vencimiento de exámenes y a la vez envíe un correo con el nombre de la persona, el área y la fecha limite de vencimiento. He probado algunas macros pero son muy engorrosas. les adjunto el archivo para que me puedan ayudar. Desde ya gracias, atte Claudio Prueba macro.rar

    • 0

      Reacciones de usuarios

    • 1 respuesta
    • 2.1k visitas
  12. Started by Kcos,

    Buenas tardes, estuve buscando en el foro la respuesta a mi duda pero no logre dar con ella. Tengo un archivo excel como ejemplo de 10 hojas, pero serian mas de 20 hojas el original. En cada hoja se cargan los precios de cada producto que se compraron y la fecha de compra. Como todos los dias los productos van cambiando, es que necesito hacer un consolidado en la hoja 'precio' para ir sacando los precios por semana para presentar a los clientes. Entonces al poner una fecha en la celda D7, D8, D9, etc que busque el codigo de la columna B y devuelva el precio correspondiente a esa fecha. Espero se entienda, igualmente dejo un archivo de muestra donde intento explicar mejor…

    • 0

      Reacciones de usuarios

    • 3 respuestas
    • 2.1k visitas
  13. Started by MARQUEZCA,

    Muy buenas a todos mi pregunta como podria (si es que se puede) en una agenda automatizada con VBA Excel cuando pida que me muestre los datos de una persona me mostrara en algun extremo, la foto de la persona seleccionada la cual ( la foto) tengo guardada en una carpeta. Sin mas me despido esperando esten bien .......

    • 0

      Reacciones de usuarios

    • 4 respuestas
    • 2.1k visitas
  14. Estimadas/os, Junto con saludar, estoy recien empezando en este mundo del VB, y estuve trabajando en una macro que en función de una lista, empleo BUSCARV según vendedor y enviar al correo de forma separada con copia a jefaturas correspondiente. La macro sería la siguiente: Sub Enviar_Rango_a_Destinatario_de_correo() ActiveSheet.Range("AG2:AX14").Select For i = 1 To 13 ThisWorkbook.Sheets("RESUMEN").Range("X1").Value = i ActiveWorkbook.EnvelopeVisible = True With ActiveSheet.MailEnvelope .Item.To = ThisWorkbook.Sheets("Resumen").Range("X4").Value .Item.cc = ThisWorkbook.…

    • 0

      Reacciones de usuarios

    • 3 respuestas
    • 2.1k visitas
    • 3 seguidores
  15. Buenas noches!!! He creado una función, llamada AbreUrlCopiaAFicheroSinReintentos, que se conecta a internet mediante la función URLDOWNLOADTOFILE y descarga el codigo html a un archivo en mi ordenador y luego lo borra. En mi archivo original por ejemplo puedo tener 2000 direcciones web. Lo que hago es llamar con la macro1 a la función AbreUrlCopiaAFicheroSinReintentos y me descargo en mi hoja excel ciertos parametros del código html. El problema lo estoy teniendo cuando me encuentro con direcciones que tienen un bucle de redireccionamiento. En ese momento la hoja Excel se me queda permanentemente bloqueada y solo la puedo cerrar a lo bestia con Ctrl+alt+supr. Un ej…

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 2.1k visitas
  16. Started by msnake18,

    Estimados, este es mi primer post en la pagina, la verdad les queria agradecer por todos los aportes que suben dia a dia ya que muchos de ellos me han salvado en mas de una ocacion. En esta oportunidad necesito de su ayuda y les escribo porque no encontre las respuestas en el foro, les intentare dar toda la informacion que pueda, pero los datos que manejo son 100% confidenciales entonces si falta algo preguntenme y les indico mas informacion al respecto. Bueno, tengo una base de datos con mas de 20.000 filas, que incluyen las columnas CAJA, BANCO, FALLA, INICIO Y TERMINO, estos son problemas que puede haber ocurrido con esta "CAJA" en un dia, la base que adjunto solo ti…

    • 0

      Reacciones de usuarios

    • 7 respuestas
    • 2.1k visitas
  17. Started by highlander38,

    Hola de nuevo. Llevo varios dias trabajando con una macro de lo que veo por ahi y he conseguido que me cree el archivo tal como quiero, pero me da un error: No se puede encontrar el archivo. Compruebe que su ruta de acceso y nombre sean correctos. Sub GeneraInformePDF()'Da nombre al archivoWorksheets("Hoja Nueva").SelectDim Nombrearchivo As StringNombrearchivo = Range("bm2")' Macro que guarda las hojas en PDFSheets("Hoja Nueva").ActivateActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _"C:\Documents and Settings\LAMOGA\Escritorio\" & Nombrearchivo & ".pdf" _, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _:=False, OpenAfte…

    • 0

      Reacciones de usuarios

    • 4 respuestas
    • 2.1k visitas
  18. Started by rmatheu,

    Hola Buenos días: Estoy intentando hacer una simple macro que me muestre un mensaje en función del valor que te de una lista desplegable, es decir, es un cambio automático de celda. He hecho la macro con el If.. Then.. y perfecto, pero siempre que meto el valor manualmente, pero cuuando tengo una lista desplegable la cual se vincula con un celda, ejempl "C10", esto no funciona, ya es esta celda, va cambiando en función de lo que yo cambie en la lista. Muchas gracias.

    • 0

      Reacciones de usuarios

    • 6 respuestas
    • 2.1k visitas
  19. Muy buen día, tarde, noche. Quisiera ver si ustedes me pueden ayudar a resolver algo. Como les comenté en mi anterior post, estoy siguiendo un tutorial en youtube, donde enseñan como manejar una base de datos de Access y que se vincule con Excel, para hacer un proyecto de facturación. Más allá del fin del proyecto, lo que busco es aprender. La cuestión es la siguiente: El tutor se vio obligado a resolver las dudas que se tenian con una Dll que él proporcionó para realizar la conexión entre access y excel. Por lo que hizo nuevamente el proyecto, y dejó para descargar el siguiente archivo: https://www.dropbox.com/s/0428g5qufad6xmf/DsigExpressAcces.rar?dl=0 …

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 2.1k visitas
  20. Buenas tardes a los foreros y en especial a los maestros que tanto nos reportan con sus conocimientos a los iniciados, el problema que se me representa con el formulario es que al cargar los datos estos los importa correctamente es a la hora de usar el filtro tanto el Control como la Fecha, la fila de Objetivo% (es numérico) no me respeta los dos decimales sino que este los amplía hasta llegar a 8 decimales he buscado por el foro y no visto nada al respecto, os agradecería cómo solucionar dicho inconveniente Gracias por adelantado .......no puedo adjuntar el archivo me dice que es demasiado grande, adjunto macro por si sirve de algo. Private Sub CommandButton3_Click(…

    • 0

      Reacciones de usuarios

    • 9 respuestas
    • 2k visitas
  21. Estimados expertos ; Necesito , por favor; realizar un ejercicio bastante complejo, que no se por donde empezar: Debo crear el siguiente formulario, para cargar la base de datos adjunta La zona debe cargarse desde un libro excel que va adjunto a esta consulta La región debe cargarse dependiendo de la zona que se seleccione. El código ciudad se debe cargar dependiendo de la región El botón debe permitir ingresar todos los datos a la planilla El ancho de las columnas debe ser acorde a los datos a ingresar y eso se debe ajustar automaticamente al ejecutar el USERFORM Se debe permitir ingresar los datos sin b…

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 2k visitas
  22. Started by Pirtrafilla,

    Hola de nuevo. Ya he terminado mi proyecto, con vuestra ayuda. Pero ahora veo que uno de los procesos es muy lento. Cuando le doy a un botón ejecuta esta macro con 7 bucles, uno por semana, que recorre cada vez que lo hace 7.000 filas. Y que cada mes añadirá otras más de 2.000 filas más. Así que cada vez que ejecute la macro se me va a emplear mucho tiempo. Yo creo que con un solo bucle lo puede hacer, porque pienso que debe haber una lógica matemática que lo haga, pero yo no soy capaz de saber cómo. U otra manera que no sea con bucles... Pego el código por si alguien de vosotros podría ayudarme. Ya veis que repito el código cada día de la semana y que los textbox so…

    • 0

      Reacciones de usuarios

    • 12 respuestas
    • 2k visitas
    • 1 seguidor
  23. Started by sanlorens,

    Buenos días, estoy haciendo una aplicación en la cual me gustaría que al iniciarse el archivo de excel, saliera la animación que tengo y cuando terminara saltase a una hoja llamada "inicio". Gracias

    • 0

      Reacciones de usuarios

    • 1 respuesta
    • 2k visitas
  24. Started by Darkcanibal,

    ¡Hola! Estoy trabajando con un macro que copie toda una carpeta con subcarpetas y archivos a otra ubicación, el nombre de las carpetas estan en A1, la ruta donde las voy a mover en B1. Por ahora tengo esto pero no logro que funcione. Sub copiafolder() Dim FSO As Object Dim inicio As String Dim fin As String Dim valida As String Set FSO = CreateObject("scripting.filesystemobject") Range("A1").Select On Error Resume Next Do While ActiveCell.Value <> "" inicio = Range("B1") & ActiveCell fin = Range("B1") valida = Dir(inicio) If valida = "" Then Else FSO.CopyFolder inicio, fin End If Act…

    • 0

      Reacciones de usuarios

    • 6 respuestas
    • 2k visitas
  25. Buenos dias espero me puedan ayudar Tengo un código que me cuenta los datos de una columna de un listbox y me los deja en un textbox, Pero en la columna del listbox tengo datos duplicados. Lo que necesito es solo que me cuente datos únicos y dejarlos en el textbox Este es el código que uso ahora For x = 0 To ListBox1.ListCount - 1 If ListBox1.List(x, 7) <> "" Then m = m + 1 End If Next TextBox6.Value = m me podrían ayuda por favor y de ante mano muchas gracias

    • 0

      Reacciones de usuarios

    • 7 respuestas
    • 2k visitas
    • 1 seguidor

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.