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 J arevalo,

    Buenas tardes y agradezco el tiempo de quienes puedan ayudarme, veo que ya hay soluciones a macros las cuales copia el contenido de varios libros y los pone en uno solo en la hoja1, sin embargo quisiera saber si se puede lo siguiente: tengo tres libros con cierto número de hojas, el 1° tiene las hojas a,b,c, el 2° tiene c,d,e, y el 3° tiene las hojas f,g,h, a partir de aquí quisiera saber si se puede lo siguiente, al momento de ejecutar la macro me cree un libro con las hojas de todos los libros anterios pero si en un dado caso como es la hoja "c" que hay en el libro 1 y 2 se combine mientras que los demás solo se almacene es decir al finalizar la macro debe quedar un lib…

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 853 visitas
  2. Started by ander36900,

    Hola a todos, vengo en busca de su ayuda. Tengo una carpeta con varios PDF, quisiera listarlos en una hoja de excel, luego identificar los que tengan el mismo nombre y esos que están duplicados o que sean copias (por ejemplo: archivo.pdf y archivo(1).pdf o copiadearchivo.pdf) esos documentos que se llamen igual o sean copias que los pueda unir en un archivo de pdf en otra nueva carpeta. Ejemplo: 1.pdf 1(1).pdf 2.pdf 2.pdf 3.pdf 3(1).pdf 4.pdf Copia4.pdf ... Que la nueva carpeta contenga: 1.pdf [sería la unión de 1.pdf y 1(1).pdf ] 2.pdf [sería la unión de 2.pdf y 2.pdf ] 3p.df [sería la unión …

    • 0

      Reacciones de usuarios

    • 1 respuesta
    • 577 visitas
    • 1 seguidor
  3. Started by RandalHP,

    Buenas tardes, Alguien me podría ayudar a corregir este código que tengo para unir un rango de celdas (varias hojas) en una sola: Sub UNIR() Dim Resp As Byte Resp = MsgBox("UNIR CONTENIDO", _ vbQuestion + vbYesNo, "Microsoft Excel") If Resp = vbYes Then MsgBox "Continuar proceso", vbExclamation, "Microsoft Excel" Application.ScreenUpdating = True For x = 5 To 17 Sheets(x).Select [B28].CurrentRegion.Offset(2, 1).Resize([B28].CurrentRegion.Rows.Count - 2, [B28].CurrentRegion.Columns.Count - 1).Copy Sheets("RV Consolidado").Select [C7].End(xlDown).Offset(1, 0).PasteSpecial Paste:=xlPasteValues Next Application.ScreenUpdating = F…

    • 0

      Reacciones de usuarios

    • 1 respuesta
    • 2k visitas
  4. Started by Jorge12321,

    Hola!! Necesito unir tablas de distintas hojas de calculo y crear una nueva hoja, para esto he estado utilizando la siguiente macro (Adjunta) pero me entrega los valores que estan en la celda con formula y los necesito solo como valores. ¿Que puedo hacer en este caso? ¿Qué me recomiendan? Sub Extraer_Datos() Dim shDestino As Worksheet Dim ufo As Integer, ufd As Integer Set shDestino = Worksheets.Add(After:=Sheets(Sheets.Count)) shDestino.Name = "d" For I = 1 To Sheets.Count - 1 If Sheets(I).Name = "ESCUELAS" Then Else ufo = Sheets(I).Range("A" & Cells.Rows.CountLarge).End(xlUp).Row ufd = shDestino.Range("A" & Cells…

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 2.1k visitas
  5. Buenos días: La macro que adjunto puede copiar y almacenar en orden todas las hojas de un libro. Por ejemplo tengo 3 hojas (a,b y C) con encabezados comunes (de B5 a J5) y filas variables. Crea una hoja llamada "Resumen" y copia en ella con encabezados incluidos, todas las filas y de forma ordenada sin dejar espacios. Sub ejemplo() 'por luismondelo Sheets.Add after:=ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count) ActiveSheet.Name = "RESUMEN" For Each hoja In ActiveWorkbook.Sheets If hoja.Name <> "RESUMEN" Then hoja.Range("b5:j" & hoja.Range("b65000").End(xlUp).Row).Copy Sheets("RESUMEN").Range("a65000").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlVa…

    • 0

      Reacciones de usuarios

    • 1 respuesta
    • 1.7k visitas
  6. buenas tardes amigos tengo una un archivo con varias columnas con información, quisiera ver si alguien me ayuda con una macro para unir todas las columnas existentes en una sola columna. gracias de ante mano por su ayuda

    • 0

      Reacciones de usuarios

    • 3 respuestas
    • 1.6k visitas
  7. Started by Xanito,

    Buenas noches, genios de excel, aquí solicitando su ayuda, ustedes saben que cada dia se le va presentando a uno inconveniente a lo que se refiere en excel. Bueno lo que me gustaria que me apoyen, si ustedes quisieran, tengo varias hojas en un libro de excel con información, que me gustaria que toda esas hojas esten en una sola hoja, y que las columnas A y B que estan combinadas que se descombinen y que los numero que me lo ponga solo en la columna B, asi como esta en el ejemplo que los separe por color y pagina solo para que ustedes vieran como tiene que quedar. Use esta macro pero no funciona, Sub ConsolidarHojas() For Each ws In ActiveWorkbook.Worksheets ws.Se…

    • 0

      Reacciones de usuarios

    • 5 respuestas
    • 4.6k visitas
  8. Started by osvachuky,

    tengo varias hojas html y quiero unirlas en un solo libro. Esto es para imprimir.

    • 0

      Reacciones de usuarios

    • 1 respuesta
    • 1.2k visitas
  9. Started by ElmerFigueroa,

    Buenos días a todos: Requiero de su gran ayuda para poder unir varios archivos PDF en uno solo, anexo un ZIP en donde están los archivos PDF y una hoja de Excel y GRACIAS por la ayuda que se me pueda dar.

    • 0

      Reacciones de usuarios

    • 6 respuestas
    • 11.8k visitas
  10. Started by dpinyol,

    Hola!! Me gustaría me orientarais en lo que necesito hacer: Tengo 4-5 libros de excel que debo de unir , por supuesto con la misma estructura, en uno solo y en base a ese, comparar fila por fila con un segundo libro y copiar 3 columnas. Tengo un campò en cada fila que puedo utilizar como ID y asi poder ir comparandolos, no obstante, debo hacer un condicional que me permita que, si en el libro destino existe una determinada palabra , no copie nada de esa fila y continue por la siguiente. ¿Alguna idea? gracias

    • 0

      Reacciones de usuarios

    • 1 respuesta
    • 584 visitas
  11. Buenas tardes, Amigos del foro quisiera solicitarles la ayuda para tratar de encontrar la solución al error expuesto en el titulo, les comento un poco estoy tratando de recrear un ejemplo del buen amigo Sergio Campos del sitio ExceleInfo: http://www.exceleinfo.com/buscar-registros-en-tabla-de-access-desde-excel-usando-sql-query-vba-y-ado/ Para lograr una actualización de un campo de una tabla de access desde un Userform, hasta donde el logrado interpretar: definí mis variables, mi tabla de Access, pero me genera un error en al instrucción Update que me devuelve el error: Rs.Open Source:=Query, _ ActiveConnection:=Conn Agradezco cualqu…

    • 0

      Reacciones de usuarios

    • 1 respuesta
    • 582 visitas
    • 1 seguidor
  12. Started by ronal217,

    buen dia... tengo una duda........ tengo la siguiente macro para insertar una imagen en mi hoja,desde una carpeta local : Private Sub Worksheet_SelectionChange(ByVal Target As Range) On Error Resume Next If Not Intersect(Target, Range("B1:B3")) Is Nothing Then Image1.Picture = _ LoadPicture("D:\FOTOS SISTEMA\" & Target & ".jpg") End If End Sub lo que sucede que es quiero inmovilizar la imagen, que me aparezca siempre, es decir que al paso que me desplace en la hoja, la imagen siempre este visible, sin necesidad de inmovilizar paneles ya que este me quita mucho espacio de trabajo.

    • 0

      Reacciones de usuarios

    • 6 respuestas
    • 3.5k visitas
  13. hola todos tengo una duda, tengo un calendario en un userform llamado FmCalendario y logro ingresa r la fecha presionando doble click en un textbox del userform llamado FmJornada y que ponga la fecha, con estos codigos este es del textbox Private Sub TextFeJornada_DblClick(ByVal Cancel As MSForms.ReturnBoolean) FmCalendario.Show End Sub[/CODE] este es del calendario [CODE]Private Sub Calendar_Click() FmJornada.TextFeJornada = Calendar.Value Unload FmCalendario End Sub[/CODE] ahora lo que quisiera hacer es que el calendario se pueda usar para diferentes formularios, es decir, tengo tres formularios y en los tres se necesita fecha, asi que me gustaria p…

    • 0

      Reacciones de usuarios

    • 4 respuestas
    • 1.1k visitas
  14. 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
    • 917 visitas
  15. Started by MAARIA,

    Hola, Necesito hacer un filtro por medio de casillas de verificación, para que el usuario pueda elegir uno o más criterios, estuve buscando en internet y cree un código basada en algunos que vi pero no me funciona. Se los pego a ver si alguien me puede ayudar. (Tengo 4 columnas con 16 registros, la primera columna es el criterio q quiero filtrar) Sub Search_Click() Application.ScreenUpdating = False If ActiveSheet.AutoFilterMode = True Then ActiveSheet.AutoFilterMode = False M = Array("", "Hub", "Flange", "Segment") For x = 1 To 3 If Controls("Hub,Flange,Segment" & x).Value = False Then M(x) = "" Next ActiveSheet.Range("$A$2:$e$20").AutoFilter , _ F…

    • 0

      Reacciones de usuarios

    • 3 respuestas
    • 1.1k visitas
  16. Started by diserdiesel,

    Hola espero me puedan ayudar... temgo un problema en un combobox que puse en un formulario... lo que necesito es que el combobox 1 me de los valores de la celda F2 a F5 de mi hoja 2 y que si Seleccione F2 me de los valores de la celda G2 a G10 de mi hoja 2 en el segundo combobox o si selecciono F3 me de los valores de la celda H2 a H10 de mi hoja 2 en el segundo combobox.. ojala me ayuden ya intente de todo y no puedo conseguirlo. Gracias

    • 0

      Reacciones de usuarios

    • 1 respuesta
    • 927 visitas
  17. Hola, otra vez de vuelta en este excelente foro; ahora tengo una duda, estoy manejando muchos datos en una solo columna es un ID que se compone de 8 digitos los primero 4 digitos son iguales los restantes 4 cambian, lo cual hacer filtro para cada columna me es muy dificil, opte por hacer un combobox que me muestre estos datos: 1948 1931 1905 1871 Si por ejemplo selecciona el 1948 me gustaria que se fuera a buscar a la hoja todos aquellos ID que comiencen con ese codigo y me los extraiga en otra hoja dentro del mismo libro junto con toda su fila es decir este ID se encuentra en A2 hasta A12000 entonces me extraeria los datos de la fila 2 B2,C2,H2 , etc... Desde ya m…

    • 0

      Reacciones de usuarios

    • 10 respuestas
    • 1.5k visitas
  18. Started by shecho0129,

    Estoy intentando visualizar otra hoja de excel mediante contraseña usando un UserForm el inconveniente radica en que la hoja 1 debe permanecer protegida (ficha revisar ---> proteger hoja) y la hoja 2 no debe estar protegida, todo funciona pero al momento de visualizar la hoja 2 y editarla también aparece protegida si no estarlo al parecer adquiere las propiedades de la hoja 1 para explicarlo mejor adjunto el archivo por si alguien me quiere ayudar de ante mano muchas gracias. ejemplo.rar

    • 0

      Reacciones de usuarios

    • 4 respuestas
    • 749 visitas
  19. Hola. Pues mi duda consiste en tratar de utilizar (si es que es posible) la función: Cells.Find(What:= condicion1, After:=ActiveCell, LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False).Activate[/CODE] Esto funciona correctamente, pero solamente cuando se tiene una condición, y yo quiero hacerlo mediante la busqueda de 3 condiciones Estoy ocupando un userform donde mediante 3 textbox escriben las condiciones para que sea mostrada toda la información. [CODE]Cells.Find(What:= (condicion1, condicion2, condicion3), After:=ActiveCell, LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows…

    • 0

      Reacciones de usuarios

    • 4 respuestas
    • 4.8k visitas
  20. Started by hamlet45,

    Buenas, Lo primero decir, que me parece genial este foro, que hace poco que empecé con esto de las macros y de la programación en VBA y me habéis ayudado mucho leyendo el foro. Mi problema es el siguiente; Resulta que tengo un libro en excel PERSONAL.XLS donde tengo 3 botones de macro creados. Cada uno con su código y bien enlazados a cada botón. A mi en mi usuario me funciona perfectamente claro. Pero la idea es que estas macros le aparezcan a el resto de usuarios de la empresa. Para ello creamos un recurso compartido (una carpeta en red) llamada Macro y ahí he metido el archivo PERSONAL.XLS y el archivo Excel11.xlb que es la barra de herramientas con los botones. E…

    • 0

      Reacciones de usuarios

    • 5 respuestas
    • 2.3k visitas
  21. Started by nemesis07,

    Buena tarde, estimados tengo el siguiente código el cual tiene dos recordsets, el primero corre sin problemas ya que llena las tablas temporales y ejecuta el SP, el problema que tengo es que en la clausula Where del segundo recordset necesito utilizar la variable que declaro en el primer recordset. alguno tiene idea de como se hace esto. Gracias Cells.Clear Dim oConn1 As ADODB.Connection Dim rs1 As ADODB.Recordset Dim rs2 As ADODB.Recordset Set oConn1 = New ADODB.Connection oConn1.ConnectionString = "Provider=SQLOLEDB.1;Password=" & Contraseña.Text & ";Persist Security Info=True;User ID= " & Usuario.Text & "; Initial Catalog =" …

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 1.3k visitas
  22. Started by Dksluis,

    Estoy usando una macro de button y otra de un textbox, al momento de proteger la hoja no me deja ejecutar ninguno de los dos

    • 0

      Reacciones de usuarios

    • 4 respuestas
    • 1k visitas
    • 1 seguidor
  23. Started by viejo,

    buen dia tengan, de nuevo por estos lados con la interrogante de como puedo usar toda lo hoja de un libro ya que me da error el formulario cuando tengo demasiados datos (arriba de los 1000). La manera y forma en que esta hecho el formulario me gusta pero no logro encontrar el error de ¿porque no puedo usar toda la hoja?, principalmente cuando le doy buscar un dato, me podrian ayudar a poder utilizar bien este formulario para poder meterle la cantidad de datos que contiene la hoja (xfd por 1048576). espero sus amables aportaciones y de antemano gracias. todalahojaconlistbox.rar

    • 0

      Reacciones de usuarios

    • 17 respuestas
    • 3.5k visitas
  24. Started by juanmanuel85,

    Buenas tardes, Estuve averiguando como cargar gifs en mis formularios ( con la funcion Webbrowser..etc) no tuve problemas hasta ahi, pero en realidad quisiera utilizarlo de fondo de pantalla del formulario, asi q al agrandarlo del tamañao de mi formulario, insertarle botones y ejecutarlo, mas alla que el tamaño del gif no coincide q no me preocupa por ahora, no figuran los botones, como si estuviera el webbrowser por encima de eso.... hay alguna manera que quede de fondo ? gracias

    • 0

      Reacciones de usuarios

    • 5 respuestas
    • 1.6k visitas
  25. hola resulta que cree esta funcion en un modulo Private Declare Function GetComputerName Lib "kernel32" _ Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long Public Declare Function GetUserName Lib "advapi32.dll" _ Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long Function ReturnComputerName() As String Dim rString As String * 255, sLen As Long, tString As String tString = "" On Error Resume Next sLen = GetComputerName(rString, 255) sLen = InStr(1, rString, Chr(0)) If sLen > 0 Then tString = Left(rString, sLen - 1) Else tString = rString End If On Erro…

    • 0

      Reacciones de usuarios

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