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

    Buenos días. Tengo el siguiente Macro. col = 5: uFila = Cells(Rows.Count, col).End(xlUp).Row datos = Cells(1, col).Resize(uFila).Address On Error GoTo 0 Names.Add "sumar", "=if(" & datos & "=""INICIO"",row(" & datos & "))" Names.Add "final", "=if(" & datos & "=""FINAL"",row(" & datos & "))" Application.ScreenUpdating = False For n = 1 To [count(sumar)] fila1 = Evaluate("small(sumar," & n & ")") + 1 fila2 = Evaluate("small(final," & n & ")") - 1 grupo = Cells(fila1, col).Address(0, 0) & ":" & Cells(fila2, col).Address(0, 0) Cells(fila1 - 1, col + 1).Formula = "=sum(" & g…

    • 0

      Reacciones de usuarios

    • 5 respuestas
    • 9.5k visitas
  2. Hola como estan? Me he pasado todo el dia, intentando revisar en donde tengo un error y no lo logro. Les comento, estoy haciendo la suma de un producto de cantidades. Ej unidad1 * cantidad1 = subtotal1 unidad2 * cantidad2 = subtotal2 unidad3 * cantidad3 = subtotal3 Saco un suma de los subtotales Subtotal = subtotal1 + subtotal2 + subtotal3 A este subtotal le saco el IVA IVA = Subtotal*0.16 Y hasta ahi va bien, pero cuando quiero sumar el subtotal y el IVA, en un textbox que se llame total, no funciona nada Estoy subiendo el archivo para ver si me pueden asesorar Pedidos.rar

    • 0

      Reacciones de usuarios

    • 5 respuestas
    • 923 visitas
  3. Started by Visor,

    Estimados amigos del foro, planteo un tema respecto autocompletar texto en un control de vba. El autocompletado lo tengo resuelto para un textbox o combobox tomando en cuenta los datos de la hoja de excel. Me gustaría poder cargar el combobox con los datos que están en el listbox y allí aplicarle el autocompletado. Lo que sucede es que en realidad yo lleno al listbox con los nombres de los archivos que están en una carpeta (es decir los datos no están en una hoja). Espero que esto se pueda realizar. Agradezco su generosa colaboración Subo el archivo de ejemplo Autocompletar from Listbox.rar

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 1.1k visitas
  4. Started by carluci,

    cordial saludo tengo un programa de producción en donde llevo todos los registros de la linea, en la hoja VENCIDAS me filtra todas las ordenes que están vencidas con un código visual basic, la ayuda que solicito es poder aprender a filtrar las ordenes vencidas, pero las que ya existan en la hoja que no las coloque, ya que me filtra lo mismo. gracias. Programa de Produccion 2015.zip

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 1.4k visitas
  5. Started by vrfreres,

    Buenas Estimados, Tengo un archivo Excel para generar cotizaciones en diferentes hojas, con ayuda de unos expertos pude lograr que me imprima varias hojas del Excel desde un formulario que se encuentra en la primera hoja, mi problema es que quisiera que las diferentes hojas de la cotización se impriman una debajo de otra de acuerdo a como da el tamaño de la hoja (A4) y no por separado como actualmente lo hace, además quisiera que imprima un encabezado que quiero agregarle en otra hoja, no puedo ponerlo ahora porque lleva una imagen y sería muy pesado, de todos modos si logró hacer lo primero estaría muy feliz. Adjunto el archivo para mejor visualización. Muchas Gracias …

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 639 visitas
  6. Started by Lince1950,

    Buenos días, no se si esta pregunta ya se ha formulado he buscado y no he visto nada, mi pregunta es la siguiente, Cuando insertas una columna o una fila, excel automáticamente cambia la celda de suma o formula que esta utilizando, ¿ pero VB no la cambia?, ha y alguna opción para que VB también lo haga perdonad si esta pregunta no esta en su sitio adecuado, de no ser así trasladarla Atentamente Antonio (Lince1950)

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 650 visitas
  7. Started by marroco312,

    hola amigos buen dia construyo una base en acces que se alimenta a traves de un formulario de excel , y llege un punto que no he podido solucionar, y es que deseo extraer datos unicos de una tabla de acces a un listbox de excel y pues este es el codigo que utilizao, Call conexion Set rs = New ADODB.Recordset With rs .CursorLocation = adUseClient .CursorType = adOpenKeyset .LockType = adLockOptimistic .Open "BDFOLIOS", cnn, adOpenKeyset, adLockOptimistic, adCmdTable End With For a = 1 To 130 If rs.Fields("FACTURAPOST") <> "" And rs.Fields("ESTADOFACTURACION") = False Then combo1.Add CStr(rs.Fields("FACTURAPOST").Value) End If rs…

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 935 visitas
  8. Started by marroco312,

    hola amigos de excel mi inquietud que no he podido resolver es la siguiente: 1 - tengo un formulario que me registra, crea y guarda facturas en una base de datos que tengo en acces y también me guarda en una carpeta especifica en formato pdf lo que requiero es que cada vez que cree una factura, me adjunte el archivo en formato pdf a la base de datos de acces espero alguien me pueda ayudar saludos,

    • 0

      Reacciones de usuarios

    • 6 respuestas
    • 968 visitas
  9. Buenas tardes Estoy haciendo un cuaderno de profesor. Cada hoja corresponde a una unidad didáctica. Para no tener que andar metiendo cada nombre y apellidos de los alumnos en cada hoja, vinculo las demás hojas a la primera hoja. En la primera hoja tengo una macro para que me ordene los datos de forma automática. Lo que necesito es que si introduzco un nuevo alumno(teniendo ya anotaciones hechas), en las demás hojas, todos los datos de la misma fila se mueva junto con el alumno al que corresponden. Ahora mismo al introducir un nuevo alumno, en la hoja1 sí se cumple, pero en las demás, los alumnos sí varían su posición respecto al orden alfabético, pero los datos correspon…

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 542 visitas
  10. Buenas, Antes de nada, no tengo ni idea de programar macros. Las pocas que uso han sido copiadas googleando y personalizándolas para mis libros de forma básica. Os planteo mi cuestión: necesito una macro que me copie en una sola hoja un rango de celdas (desde columnas B a P y filas desde 21 hasta la última cubierta) de todos los Excel de una carpeta (son todos iguales y parten de una plantilla, pero cada uno es cubierto por una persona distinta). Googleando y customizándola un poco he llegado a la siguiente: Sub ImportDataAgent() Dim SummarySheet As Worksheet Dim FolderPath As String Dim NRow As Long Dim FileName As String Dim WorkBk As Workbook Dim SourceRange A…

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 821 visitas
  11. Started by cristhianm,

    Buenas tardes, estoy teniendo un pequeño problema con una macro; resulta que tengo una hoja que a traves de un botón actualiza una tabla proveniente de internet, y una vez que actualiza, realiza operaciones (remplaza "." por "," para que me lo pueda leer como número) Pero resulta que al ejecutarla me he dado cuenta que primero realiza las operaciones y por ultimo actualiza, cuando en realidad el orden es al revés, porque puede ser? Alguno que me oriente porque me desconcertó el problema. El código que uso es : ActiveWorkbook.RefreshAll Dim i, f, final As Integer 'todo Sheets("Todo").Activate For i = 2 To 10000 If Cells(i, 1) = "" Then final = i - 1 Exit For…

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 1.9k visitas
  12. Started by erpunta,

    Buenas tardes Necesito una fórmula mediante vba, que seleccione una celda determinada dentro de un rango de celdas, cumpliendo una condición. Dicha condición es que el valor de que una de las celdas, cualquiera de ellas, sea inferior a 6 y siempre que otra celda, fuera del rango sea distinto de 0. Gracias

    • 0

      Reacciones de usuarios

    • 1 respuesta
    • 656 visitas
  13. Started by fjvictoriaj,

    Hola, Tengo que hacer una tabla dinámica muy sencilla pero no he logrado hacerla. Dada una tabla en una hoja (Base), debo crear una nueva hoja (Dinámica vacíos) con una tabla dinámica en la que ponga la variable "Observacion" en las filas y la suma de la variable "Eliminar". En alguna ocasión utilicé un código y me sirvió, que en esta ocasión intenté adaptar, según muestro en el adjunto. Vale aclarar que no conozco la 'teoría' de VBA, por lo que seguro tengo errores simples, pero les agradecería me ayuden. El error que me aparece, al ejecutar la línea del PivotCache.CreatePivotTable() es: Se ha producido el error '1004' en tiempo de ejecución. El nombre del campo de t…

    • 0

      Reacciones de usuarios

    • 1 respuesta
    • 952 visitas
  14. buenos dias amigo estoy usando una macro para guardar hoja activa de un libro la macro es excelente ya que ejectuta todo lo que necesito y guarda en la ruta que quiero, el detalle es que esta guardando la hoja con las formulas y botones que ya existen en ella, y solo quiero que guarde la hoja pero en un rango especifico que seria "A1:V100" la macro es la siguiente: Sub GUARDAR_NOMINA() Dim fileSaveName As Variant Dim filePath As String Application.ScreenUpdating = False If MsgBox("Esta seguro de Guardar la Nomina?", vbYesNo) = vbNo Then Exit Sub End If filePath = "Z:\Relacion laboral\GUARDERIA\" Sheets("NOMINA").Copy fi…

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 974 visitas
  15. Que tal Amigos de ayudaexcel. Alguien del foro sabe como registrar La biblioteca de objetos ? Tengo Windows 7 sistema operativo de 64 bits. He intentado lo siguiente pero sin conseguir registrarla: x64 --- cd C:\Windows\SysWOW64\ regtlib msdatsrc.tlb Gracias.

    • 0

      Reacciones de usuarios

    • 3 respuestas
    • 6k visitas
  16. Invitado Jorgecar
    Started by Invitado Jorgecar ,

    Hola, Tengo el siguiente problema que no podido resolver. El inconveniente es cuando se crea una nueva hoja como copia de otra existente y al tratar de acceder a la nueva y copiar datos, esto no es posible. Los datos que intento escribir los escribe a la anterior hoja nunca en la nueva. La siguiente es una muestra del programa. Alguien me puede ayudar, muchas gracias de antemano. Sub prueba() Dim nhoja, pos As String Dim hojanueva As Worksheet Dim nfila As Integer nhoja = "prueba" Worksheets("FORMATO").Activate Worksheets("FORMATO").Copy After:=Worksheets(Sheets.Count) ' Worksheets("FORMATO").Copy After:=Worksheets(nhoja) NO funciona Set hoja…

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 653 visitas
  17. Started by Sanatero,

    Hola a todos. Me gustaría saber si se puede crear una macro para ocultar determinadas zonas en una hoja (o que se muestren en blanco), y poder visualizarlas solo con contraseña. Ejemplo : zona a23:j45 y c13:d25 en la misma hoja. Muchas Gracias.

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 540 visitas
  18. Muchos saludos desde Santiago, República Dominicana. Mucho tiempo sin leerme por estos lados . lo que necesito es: 1.- al ajustar lineas, poder controlar que si en la columna B (DESCRIPCION) dejo una linea en blanco, pueda contarla si hay mas datos debajo. 2.- que solo me permita agregar las lineas necesarias para utilizarse en una sola hora (Que al agregar no exceda el tamaño de una hora tamaño carta ) Gracias anticipadas y gracias por dedicar parte de su tiempo para ayudarme. Olvidé mencionar que utilizo Excel 2007 Plantilla Corregida.zip

    • 0

      Reacciones de usuarios

    • 4 respuestas
    • 938 visitas
  19. Started by DaveRoos,

    Hola. He escrito un Macro en un libro de Excel para que traiga información desde otro archivo de Excel, (ambos .xls), pero el código sólo trae 16.383 filas y las demás las borra. ¿Puede haber un máximo para este tipo de código?¿Por cuál lo puedo reemplazar para que no tenga este problema?. Transcribo el código que hace la conexión y trae los registros: 'crea la conexión Set Conn = New ADODB.Connection Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source= C:\Users\Proyecto\gestion.xls;" & _ "Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1;""" 'crea el recordset Set rs = New ADODB.Recordset 'Selecciona lo…

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 1.5k visitas
  20. Hola. Gracias por vuestra ayuda. Tengo una hoja Excel con aproximadamente 14.000 registros que me envía otro departamento todos los meses de una base de datos access. El número de columnas que tengo es de 14. En una de esas columnas, tengo el código asignado a la retribución de cada empleado por código retributivo y por categoría de esta manera. Columna A ..........Columna F, Columna G, Columna H, Columna I Nº Identifi Código Concepto Importe Categoría 12356 101 Sueldo 863,61 Jefe 1º 12356 102 …

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 602 visitas
  21. Started by ElmerFigueroa,

    Como les va ? yo necesitando de su ayuda con pasar algunos datos de un PDF a Excel, anexo dos archivos. Uno el PDF y una muestra de que datos necesito extraer, claro si se pudiera extraer todo el PDF seria mejor. Y Gracias por el favor. IDSE_Lote_198268597.zip

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 1.5k visitas
  22. Started by Fernando Trujillo Bustos,

    Buenas Compañeros Quiero darles las gracias por que siempre que tengo dudas me han colaborado, ahora vengo de nuevo con un proyecto, tengo un archivo de excel en el que tengo una tabla con filtros, deseo realizar un grafico donde a medida que selecione los botones de los canales el me filtre la informacion de la tabla y me actualice el grafico Gracias Espero me puedan ayudar como en los proyectos anteriores Fernando Trujillo Grafico.xls

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 749 visitas
  23. Started by matt43,

    Hola. Quiero saber si hay alguna posiblidad de ejecutar Application.screenupdating=False Application.calculation=xlCalculationManual Application.EnableEvents=False ActiveSheet.DisplayPageBreaks = False[/CODE] cada vez que le de a un botón en un formulario, y de ejecutar [CODE]Application.screenupdating=True Application.calculation=xlCalculationAutomatic Application.EnableEvents=True ActiveSheet.DisplayPageBreaks = True Application.CutCopyMode = False[/CODE] al finalizar la instrucción. Lo que pregunto realmente es la manera de acelerar un libro con botones, formularios, etc etc, pero sin tener que tocar el código de cada uno ya que son muchos. Algo qu…

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 849 visitas
  24. Hola Tengo que sacar de unos 500 libros cerrados algunos valores de celdas. Encontre un código que se adapta casi al 100%. Mis libros en su (hoja1) sus nombres son diferentes y quisiera encontrar el código adecuado para que lea cada libro cerrado sin importar como se llame la hoja1. Magnifico y práctico código. La parte del código motivo de mi mensaje es: CStr(NombreHoja). Sub RecuperaDatoA2_y_I2_Opcion_1() 'Usando función de Macro de Excel4 (predecesor de VBA) [Macrofucion] Dim ruta_directorio, Archivo As Application, NombreArchivo As String, NombreHoja As String Dim n As Long 'Indicas la Ruta base, estoy suponiendo que los 4000 archivos estan e…

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 1.3k visitas
  25. Started by Jvnt,

    Estimados dado que no puedo adjuntar la data real por temas de tamaño, adjunte esta foto. Lo único que quiero que haga la macro es que sume por colores de celda por ejemplo: Las celdas amarillas - sumen las celdas blancas " ". Las celdas azules - sumen las celdas amarillas " ". Las celdas celestes - sumen las celdas azules " " Las celdas verdes - sumen las celdas celestes " " Las celdas naranja - sumen las celdas verdes " " Las celdas rojas - sumen las celdas naranja " " La celda morada - sumen las celdas rojas " " Esto lo hago dado que a veces agregan filas blancas de nuevos productos, y mis formulas o celdas vinculadas se mueven, y es un lio tremendo. Alguna id…

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 658 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.