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

    Buenas Tardes Por favor me ayuda alguien con el siguiente caso: Necesito hacer un filtro por cada valor único que exista en una columna especifica(cada valor puede estar repetido N veces). Copiar lo filtrado y posteriormente pegarlos en una pestaña nueva, dándole como nombre el valor filtrado. Por lo que al final pueden haber tantas pestañas como datos únicos que haya en la Columna. Adjunto archivo excel de muestra. Para el ejemplo se debería filtrar por la columna estrato, los valores únicos son "Tres", "Cuatro" y "Cinco". Al final ademas de la Hoja1 deben haber 3 hojas mas. Cualquier inquietud quedo pendiente, Gracias. Ejemplo.xlsx

    • 0

      Reacciones de usuarios

    • 3 respuestas
    • 1.7k visitas
  2. Hola Buen día, necesito su ayuda En esta ocasion como dice el titulo quiero que de un valor en Textbox (previamente seleccionado de un listbox) se completen otros textbox en el mismo formulario, Necesito que se tomen los datos de una hoja determinada. Para despues pasarlo directamente a la hoja activa, bueno esto si se hacerlo, solo necesito que se completen los textbox Gracias completar textbox.rar

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 1.7k visitas
  3. Started by lphant,

    Buenos días Chic@s; Que tal estáis??, ya estamos a viernes ;) Ayer se me vino a la cabeza una mejora para una de las macros que tengo pero…..me fallan cosas. Tengo una macro que hace una consulta SQL a una base de datos Access, esa consulta en vez de llevármela a un Excel, quiero que me la muestre en un userform ( la cantidad de columnas y de filas a mostrar de la consulta puede variar ) y que pueda ordenar los datos al pulsar sobre el encabezado ( esto es lo que veo más difícil ). Lo que he hecho en alguna otra ocasión ha sido, hacer la consulta, abrir un nuevo Excel, copiar los datos en ese nuevo excel, mostrarlo en un ListBox y una vez consultado, c…

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 1.7k visitas
  4. Necesito crear una macro para que me genere un índice de todos ciertos valores de todas hojas de un libro. El archivo excel "FEXCEL" se compone de un numero variable de hojas "HOJA1", "HOJA2", "HOJA3", "HOJA4", .... Estos nombres de hojas corresponden a las personas que crean cada CD Cada hoja contiene una referencia de CD, fecha de creación del CD, numero de archivo dentro del CD, nombre del archivo, características etc. Ejemplo [TABLE=width: 400] [TR] [TD]REF.CD [/TD] [TD]FECHA CREACION [/TD] [TD]NUM_FICHERO [/TD] [TD]NOM_FICH [/TD] [TD]… [/TD] [/TR] [TR] [TD]PACOCD1 [/TD] [TD]01/02/2012 [/TD] [TD]1 [/TD] [TD]ASAD [/TD] [TD]… [/TD] [/TR] [T…

    • 0

      Reacciones de usuarios

    • 17 respuestas
    • 1.7k visitas
  5. Started by jeanette27,

    Tengo el siguiente código: Private Sub CommandButton1_Click() Dim xCodigo As String, xApDcto As String Dim xFila As Integer, xDcto As Integer, xLargo As Integer Dim resp As Boolean On Error Resume Next xCodigo = frmConsulta.TextBox1.Value xLargo = Len(Trim(xCodigo)) If xLargo = 1 Then xCodigo = "000" & xCodigo: frmConsulta.TextBox1.Value = xCodigo If xLargo = 2 Then xCodigo = "00" & xCodigo: frmConsulta.TextBox1.Value = xCodigo If xLargo = 3 Then xCodigo = "0" & xCodigo: frmConsulta.TextBox1.Value = xCodigo Hoja1.Select Range("A2").Select resp = Cells.Find(What:=xCodigo, After:=ActiveCell, LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows…

    • 0

      Reacciones de usuarios

    • 5 respuestas
    • 1.7k visitas
  6. Saludos amigos, acudo a solicitar su ayuda en lo siguiente: necesito una macro que tome un rango de celdas de una hoja y lo copie a otra siempre y cuando los valores de una columna sean mayores que 0 consegui un ejemplo en este foro que se adapta a eso https://www.ayudaexcel.com/foro/macros-programacion-vba-10/copiar-datos-mayor-cero-otra-hoja-19620/ sinembargo cuando corro la macro se detiene en esta linea: .AutoFilter 5, ">0" segun el post original todo funciona, pero haciendo yo exactamente lo mismo no logro que funcione utilizo excel 2010 gracias de antemano

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 1.7k visitas
  7. Hola buenas tardes amigos de Ayuda Excel Estoy parado en una macro que no he podido resolver a ver si pueden ayudarme. Gracias de antemano por su colaboración. Les explico. El archivo tiene varias hojas, Una se llama control enero, control febrero y asi sucesivamente La macro la voy a ejecutar en cada hoja Lo que debe hacer la macro es: 1) copiar la celda A3, que es una formula, de la Hoja CONTROL 1 a la primera fila disponible de la columna A5 de la Hoja Control General. 2) Copiar la celda j22 de Control 1 (que es una formula), como valor sin negrita a la primera fila disponible de F5 de la Hoja Control general. 3) …

    • 0

      Reacciones de usuarios

    • 6 respuestas
    • 1.7k visitas
  8. Hola, he estado buscando por toda la web la forma de solucionar lo siguiente: Tengo un archivo que utiliza Macros y Filtros Avanzados para registrar los pendientes que hay. Ahora lo que quiero conseguir es que cada semana se genere un archivo en PDF para cada una de las personas con las que tengo un pendiente y se les mande por correo. ¿Alguien sabe si esto es de alguna manera posible?

    • 0

      Reacciones de usuarios

    • 1 respuesta
    • 1.7k visitas
  9. Started by Taisse,

    Hola, Necesito ayuda con un código y agradecería mucho si alguien me echara una mano. Necesito dos cosas y después de horas no hay manera de conseguirlo, soy un negado para la programacion. 1. Hacer que cada vez que el codigo de proveedor cambie inserte una fila entre los dos. 2. Hacer que cada vez que haya una fecha que sea anterior a la fecha de sistema se ponga en color rojo. A lo que habia llegado es a : Sub () Private Sub Worksheet_SelectionChange(ByVal Target As Range) On Error Resume Next Range("A2").Select Do Until IsEmpty(ActiveCell) If ( ? ) Target.EntireRow.Interior.ColorIndex = 42 End If ActiveCell.Offset(1, 0).Select Loop End Sub Cualquier ay…

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 1.7k visitas
  10. Buenas tardes, tengo el siguiente caso Ocurre lo siguiente, todo libro nuevo o viejo con intencional .xlsm se auto-cierra y borra los códigos programados en VBA. Al intentar volver abrir devuelta el archivo, salta un mensaje con lo siguiente "Hemos encontrado un problema con contenido de xxxxxxxxxxx.xlsm.¿Desea que intentemos recuperar el máximo de contenido posible? Si confía en el origen de este libro, haga clic en Sí" En todos los casos le doy Sí y me sale el siguiente mensaje = "Excel pudo abrir el archivo reparando o quitando el contenido que no se podía leer", Parte quitada: Parte /xl/vbaProject.bin. (Visual Basic para Aplicaciones (VBA)) Es all…

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 1.7k visitas
  11. Buen día, Me gustaría saber cómo bloquear celdas con fórmulas en un libro que contiene un código Visual Basic que oculta dichas celdas. Pues si se quiere bloquear las celdas con fórmulas, al momento de ejecutar el código de Visual Basic para ocultar dichas celdas aparece: Se ha producido el error “1004” en tiempo de ejecución: No se puede asignar la propiedad Hidden de la clase Range. A modo de aclaración el código de Visual Basic está asociado a los controles Active X de casilla de verificación. Cuando las casillas de verificación se marcan ocultaran ciertas filas para hacer más fácil la impresión. Resumiendo me gustaría bloquear celdas que contienen formulas sin que…

    • 0

      Reacciones de usuarios

    • 12 respuestas
    • 1.7k visitas
  12. Started by yiyilans,

    Copiar rangos discontinuos solo si cumple 2 condiciones [ATTACH]40820.vB[/ATTACH][ATTACH]40821.vB[/ATTACH][ATTACH]40822.vB[/ATTACH]Buenas tardes mis estimados: Edito mi mensaje porque creo que hice una historia, además de que solo me gustaría me orientaran, Me podrían orientar si se puede copiar rangos discontinuos de la hoja1 (acumulado) a hoja2(reportes) y que cumplan dos condiciones: 1.- con un InputBox copiar solo lo que sean Elektra y 2.- si se puede otro InputBox y con ello elegir el año y solo copiar los registros de ese año, la fecha que tomo para hacer el filtro es del titulo “REG_fechahora”. Mis títulos no son los mismos pero los relaciono en un archi…

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 1.7k visitas
  13. Started by MACA,

    estimados amigos me podrían apoyar con crear macros que mé, al capturar en la primera pagina al dar anexar actualizara la pagina gdo 1, dependiendo de la fecha de captura y del bloque que este trabajando. agradesco, su apoyo, inserto el archivo. calificaciones dd.xls

    • 0

      Reacciones de usuarios

    • 5 respuestas
    • 1.7k visitas
  14. Buen Día, de su colaboración con indicarme cual es el error, ya que he generado la macro importando un archivo .csv, el cual me haga la tabla dinámica y grafique la información, pero me sale un error, les agradezco de que me puedan indicar cual es el error y poder hacer esta macro, ya que cada vez que cargue un archivo .csv (actualizado) me genere la gráfica de la tabla dinámica. quedo atento a comentarios. PD: adjunto el archivo .csv Y LA MACRO HECHA. gracias atte. CAPAF RTWP Y PISO AL RUIDO.xlsm RTWP.csv

    • 0

      Reacciones de usuarios

    • 1 respuesta
    • 1.7k visitas
  15. Buenos días a todos...necesito una mano para resolver esto; es lo siguiente, esta macro no me arroja los datos dentro de la tabla, me lo arroja muchos mas abajo, ya intente de mil manera resolverlo pero no llego a la solución...agradecería si pueden decirme donde está el error..la idea es que me arroje los datos a partir de la fila "A7 " y de ahí en adelante..la celda "A7", tendría las fechas seria posible que esto me los ordenes?;.....dejo la macro y el link del archivo..gracias Private Sub CommandButton3_Click() Dim MES As String ' BOTÓN REGISTRAR Dim UltFila As Long MES = ComboBox4.Value If MES <> "" Then Sheets(MES).Activate …

    • 0

      Reacciones de usuarios

    • 6 respuestas
    • 1.7k visitas
  16. Started by modulovar,

    Buenos días tengais Vereis, con esto de no poder tocar el documento mientras está activado el userform, me preguntaba si sabías de algún modo de poder recorrer un documento como la celda activa a través del userform. Aquí os dejo un ejemplo de como lo había pensado (Las ideas son bienvenidas) Había pensado poner un scrollbar dentro del userform y al clickar que la celda activa fuera bajando hasta el final del documento. Además de agregar dos botones para ir tanto al principio (Pone en el botón A1, asumiendo que el texco comienza en ese punto) y otro que apunte a la última fila ocupada. grácias por vuestra ayuda, saludos. Scroll.zip

    • 0

      Reacciones de usuarios

    • 4 respuestas
    • 1.7k visitas
  17. Buenas noches, Me gustaría saber como puedo hacer para modificar el rango del área de impresión de un documento en función de el numero de registros o datos que pueda tener el mismo. Vamos que no quiero que salgan las celdas vacías desde el último registro hasta el fin del área de impresión predefinida. Espero haberme explicado bien, de todas las maneras os mando el ejemplo adjunto. Un saludo y gracias. Libro1.rar

    • 0

      Reacciones de usuarios

    • 12 respuestas
    • 1.7k visitas
  18. Hola, necesitaba un codigo para una macro en donde recorre una matriz ( de 2 puntos dados) y nos guarde o visualice las coordenadas por donde ésta pasa, no solo la intersección Muchas gracias

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 1.7k visitas
  19. Started by joanlo,

    Buenas Noches Tengo el siguiente código, que almacena las referencias de las celdas en la Variable Rango, para posteriormente borrar el contenido de las celdas. El problema es que al llegar a la parte del borrado del Rango me Arroja error 1004 en tiempo de ejecución. Son aproximadamente 100 celdas las que debe borrar. Sub Factura_LimpiarPlantilla() Dim Rango Plantilla = "Factura_Registro" Setup = "Factura_Setup" Application.ScreenUpdating = False Application.Calculation = xlCalculationManual Sheets(Plantilla).Unprotect Clave I = 2 Rango = "" While Sheets(Setup).Cells(I, 3) <> "" If Sheets(Setup).Cells(I, 5) = "SI" Then Celda = Sheets(Setup).Cells…

    • 0

      Reacciones de usuarios

    • 4 respuestas
    • 1.7k visitas
  20. Started by Benito Bartolomé,

    Buenas tardes a todos; He creado una macro con la grabadora para copiar columnas no contiguas y pegar los valores en una tabla que se encuentra en la misma hoja. Al pulsar sobre el botón "Copiar" se ejecuta la macro y muestra el resultado que me gustaría obtener. Un saludo para todos. Adjunto macro. MCopiarColumnas.xlsm

    • 0

      Reacciones de usuarios

    • 5 respuestas
    • 1.7k visitas
    • 1 seguidor
  21. Started by moreve,

    Hola distinguidos expertos. Necesito su apoyo para completar con macros un programita para control de tarjetas de cobro. Se trata de “Copiar, buscar y pegar”. Estuve buscando en este foro algo parecido y me encontré con uno pero no he podido adaptarlo, me manda un error de compilación “La clave ME no es válido” y estoy tratando de aprender a armarlos aunque confieso ya he podido con otros códigos un poco sencillos. Es aquí que necesito su apoyo. A continuación trataré de resumir el código que requiero. 1- El contenido de las celdas “E3”, que es para consulta, es un folio de 4 dígitos y el de “D3” que corresponde al Status de ese folio, es una de 4 palabras (A…

    • 0

      Reacciones de usuarios

    • 5 respuestas
    • 1.7k visitas
  22. Started by brayan,

    buenas tardes amigos , agradezco de su ayuda con el siguiente caso , necesito ingresar a la pagina web que se encuentra en el código diligenciar el password (ya logrado) y dar click en el botón para ver el documento (no logrado), lo he intentado pero no logro identificar el id del boton para efectuar el click, he tratado con IE.document.getElementByClassName("button").Click o con IE.document.getElementByTagname("button")(0).Click pero no funciona , quedo atento a su ayuda gracias codigo: Sub CARGAR_DATOS_WEB() Dim IE As Object Application.ScreenUpdating = False 'Creamos objeto internet explorer Set IE = CreateObject("InternetExplorer.Application") 'ab…

    • 0

      Reacciones de usuarios

    • 1 respuesta
    • 1.7k visitas
    • 1 seguidor
  23. Started by toto16,

    Hola compañeros! soy nuevo en este de Excel y queria solicitarles su ayuda para realizar esta consulta.... Resulta que queremos llevar un control de usuarios de Call Center segun su nombre, tenemos un programa que se llama Avaya Contact Center Reporting, el cual nos exporta la data de los operadores a un libro excel, nosotros hariamos el traslado manual a operativa diaria call center pero queremos que exporte la informacion a el otro cuadro mediante un boton que diga traslado... Le adjunto el documento.. Podrian ayudarme? Salu2 Copia de macros.xls

    • 0

      Reacciones de usuarios

    • 1 respuesta
    • 1.7k visitas
  24. SOY NUEVO EN ESTE GRUPO, POR FAVOR ALGUIEN ME PODRIA AYUDAR CON LOS CODIGOS; NO PUEDO GUARDAR EN UN FORMULARIO DATOS DE UN TEXTBOX Y LA VEZ DATOS DEL LISTBOX A LA BASE DE DATOS ACCESS DESDE UN FORMULARIO MACRO EXCEL ESTE CODIGO ESTOY UTILIZANDO: ME GRABA ESTOS DATOS, LO QUE NO SE QUE CODIGOS INGRESAR PARA GUARDAR LOS DATOS DE UN LISTBOX TAMBIEN. ALGUIEN ME PUEDA AYUDAR POR FAVOR Sub GrabarReg1() Dim conn As ADODB.Connection Dim MiConexion Dim Rs As ADODB.Recordset Dim MiBase As String If frmFORMULARIO.ComboBox5 = "" Then MsgBox "Campo Vacio, Ingrese una ORDEN", vbExclamation, "Mensaje" 'frmFORMULARIO.ComboBox5.BackColor = &HFF& …

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 1.7k visitas
  25. Buenas, tengo un Listbox, el cual cuando inicia el programa me lo trae con informacion que carga de la hoja 1, y a la par asociado un Combobox que se le va agregando mas info a este Listbox. El problema pasa cuando Inicia, y me carga la info previa que hay en la hoja 1 en el listbox, ya que luego, al agregarle mas info por el combox me deja un espacio en blanco. a continuacion el codigo que tengo Private Sub UserForm_Initialize() Application.ScreenUpdating = False Worksheets(1).Select Y = 0 vuelve: a = Cells(Y + 1, 12) If a = "" Then GoTo seguir: Y = Y + 1 GoTo vuelve: seguir: Range("L1").Select For ii = 1 To Y ActiveCell.Offset(1, 0).Select ListBox1.Add…

    • 0

      Reacciones de usuarios

    • 1 respuesta
    • 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.