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?
8686 temas en este foro
-
Buenas compañeros, Estoy elaborando una macro para contar el numero de celdas que cumplen varios criterios en una misma columna, pero solo se me ocurre sumar varios Countifs(). Seguro habrá alguna forma mas eficiente de hacerlo. Por ejemplo para la siguiente tabla: Me gustaria contar las filas que cumplen los siguientes criterios: Columna A: Numero="100" Columna B: Semana="8" Columna : Perdida= "AB" y "AC" Como dije antes estoy haciendolo usando sumas de countifs: Perdidas = Application.WorksheetFunction.CountIfs(Range("A2:A" & ufila), "100", Range("B2:B" & ufila), "8", Range("C2:C" & ufila), "AB") + Application…
-
0
Reacciones de usuarios
- 2 respuestas
- 1.6k visitas
- 1 seguidor
-
-
Hola, buenas tardes: Les cuento mi problemilla, ojalá puedan ayudarme: Pues bien, estoy haciendo una macro que me evalue tiempos, en base a una columna de celdas, les platico, tengo tres casos de tiempos: 1.- dato_time >5:00:00 y dato_time <=9:30:00 ->conteo (checada= checada+1) 2.- dato_time <=5:00:00 -> Sumarlo el tiempo tal cual (acumulado=acumulado+tiempo_celda) 3.- dato_time >12:00:00 y dato_time<1:00:00 ->sumar únicamente minutos y segundos, no tomar en cuenta el la hora (el 12) Lo empezé a codificar de ésta forma: cad = Sheets(strnombrehoja$).Cells(fila, 15) cad = Format(TimeValue(cad), "HH:MM:SS") If cad > "0…
-
0
Reacciones de usuarios
- 2 respuestas
- 1.6k visitas
-
-
Hola, Buenas tardes Alguien tiene idea de como puede detener un bucle infinito Do while con otra macro en VBA excel. Necesito generar 2 CTA a la macro, una para iniciar y otra para poder pararla, pero mientras el bucle se este ejecutado no es posible clicar sobre algún otro botón en excel. El código quiero poder detener es este: Sub Grafico() Application.ScreenUpdating = True Dim wks As Worksheet 'SE INDICA QUE SELECCIONE EL GRÁFICO DE LA HOJA DE CÁLCULO ACTIVA Set wks = ActiveWorkbook.Sheets(8) 'wks.ChartObjects("Gráfico 1").Select DoEvents Dim Inicial, Final, delta As Date delta = Hoja8.Range("C3").Value Inicial = Hoja8.Range("C1").Value Fi…
-
0
Reacciones de usuarios
- 3 respuestas
- 1.6k visitas
-
-
Hola, espero que me puedan ayudar porque no se como hacerlo y no se mucho sobre el tema. Tengo una celda con un userforms que contienen un combobox para seleccionar de una lista el CLIENTE. En otra parte de la misma hoja ("Factura"), tengo otro Userforms con combobox para seleccionar el PRODUCTO. Tanto los clientes como los productos vienen de diferentes hojas (CLIENTES y PRODUCTOS). Lo que necesito es que en la hoja "Factura" al momento de ingresar el nombre del Cliente, se me filtren en el combobox de los PRODUCTOS los valores de lo productos (valga la redundancia) que correspondan a ese Cliente ya seleccionado. Adjunto el fichero. Les agra…
-
0
Reacciones de usuarios
- 4 respuestas
- 1.6k visitas
-
-
Encontré esta web y me gustó mucho, explico mi caso -use una macro, para que se genere una nueva pestaña y ahí se cree una tabla dinámica, basada en los datos de otra hoja, es decir la macro crea la pestaña y la tabla dinámica, para esto la macro también elimina cualquier pestaña que se llame "tabla dinámica" antes de crear la nueva, elimina la anterior y genera la hoja y la tabla dinámica nueva. -a su vez hay otra hoja (llamada “datos”) que tiene una columna donde use la formula buscarv, y la formula busca un dato en la pestaña que creo la macro automáticamente, la que se llama “tabla dinámica” =SI.ERROR(BUSCARV(B5,'tabla di…
-
0
Reacciones de usuarios
- 1 respuesta
- 1.6k visitas
-
-
Buenos días, tengo un problema, tengo una macro que me permite generar en una tabla automática la suma total de días según color y nombre, ahora necesito sumar pero no el total de días, sino algunos día, dentro de la macro esta seleccionado como range la selección de la suma de los valores y no he encontrado como o que operador lógico colocar para seleccionar algunas columnas o días. Gracias. Libro1.xls
-
0
Reacciones de usuarios
- 8 respuestas
- 1.6k visitas
-
-
Muy buen día, tarde, noche. Vengo a molestarlos con una inquietud que tengo. Cómo puedo hacer para llenar un rango específico del 1 al 100 en una hoja de excel con macros, pero que no pase de la columna "H". Es decir, hasta la columna "H" caben 8 números, entonces en la siguiente fila, que comience con el 9, en la siguiente con el 17, y así sucesivamente hasta llegar al 100. Me podrían orientar cómo se puede hacer Gracias de antemano por su colaboración. muestraAA.xlsx
-
0
Reacciones de usuarios
- 3 respuestas
- 1.6k visitas
-
-
la idea es que busque los numeros de 3 cifras en aquellos numeros que estan 4 cifras como lo muestro en el ejemplo experimento2.xlsm
-
0
Reacciones de usuarios
- 10 respuestas
- 1.6k visitas
-
-
Bueno, en otro post me ayudaron a resumir una macro que copia y pega datos, cuando la quise adaptar a mi archivo me daba el error reff, subo un ejemplo para ver que es lo que está mal Saludos y gracias de antemano Ejemplo.xlsm
-
0
Reacciones de usuarios
- 8 respuestas
- 1.6k visitas
-
-
Hola!! cómo están? necesito de su ayuda, quiero copiar datos de una columna de una tabla dinámica y pegarlos automáticamente en otra hoja. Adjunto excel, quiero copiar la columna AG a partir de la fila 2 y pegarla en la hoja2 a partir de A2. Desde ya mil gracias PayrollFuncionarios prueba.rar
-
0
Reacciones de usuarios
- 8 respuestas
- 1.6k visitas
-
-
Saludos para todos. En una hoja protegida, necesito trabajar con algunas celda bloqueadas, necesito limitar el área de trabajo a determinados rangos. La opción SrollArea del la hoja solo me permite indicar un rango, y necesito hacerlo con varios rangos de la misma hoja. ¿Hay alguna forma de hacerlo? ¿Se puede hacer con un código VBA? Gracias por vuestra ayuda.
-
0
Reacciones de usuarios
- 2 respuestas
- 1.6k visitas
-
-
Buenos días, Quisiera saber como puedo desarrollar estos siguientes ejercicios de formularios. Gracias En Archivo adjunto especifico lo que se necesita. Saludos Ejercicios excel expertos.zip
-
0
Reacciones de usuarios
- 1 respuesta
- 1.6k visitas
-
-
Hola buenas tardes a todos, Estoy empezando a realizar programación VBA e estoy intentando hacer un Cronómetro en un libro. Pero me estoy encontrando con un problema de error, y no se que más hacer, haber si podéis echarme un cable. Lo que me gustaría conseguir sería, que cuando se abra el libro empiece a contabilizar el tiempo y cuando se cierre el libro registre el tiempo de uso. Cuando se vuelva a abrir nuevamente el libro siga registrando los tiempos de uso, estoy a medio camino de conseguirlo, pero me da algunos errores: El libro tiene dos hojas, y cuando estoy en la hoja 1 que es donde se tiene que registrar el tiempo todo bien más o menos…
-
0
Reacciones de usuarios
- 5 respuestas
- 1.6k visitas
-
-
Hola a tod@s, Sigo creciendo en dudas respecto a la creación de macros. En parte por la "culpa" de [uSER=46507]@Macro Antonio[/uSER] que me resuelve todo como si fuera fácil. El objetivo es copiar una hoja "AA_plantilla" un número de veces determinado (hecho) para en un segundo paso poder copiar los nombres de la hoja (AA_nombres) en las casillas A2 de las hojas que se acaban de crear y renombrar estas nuevas hojas con este nombre. Esta macro hace perfectamente el paso número 1: copiar la plantilla "Sub CopiaHoja() On Error Resume Next nombreHoja = InputBox("¿Qué hoja quieres copiar?") For x = 1 To Sheets.Count If ActiveWorkbook.Sheets(x)…
-
0
Reacciones de usuarios
- 5 respuestas
- 1.6k visitas
-
-
Buenas tardes tengan todos ustedes, sin encontrar una solución a mi problema hoy acudo a su apoyo. Tengo el siguiente código que me ayuda a seleccionar varios elementos de una lista desplegable: Private Sub Worksheet_Change(ByVal Target As Range) Dim I As Integer Dim xRgVal As Range Dim xStrNew As String Dim xStrOld As String Dim xFlag As Boolean Dim xArr Select Case Target.Column Case 7 On Error Resume Next Set xRgVal = Cells.SpecialCells(xlCellTypeAllValidation) If (Target.Count > 1) Or (xRgVal Is Nothing) Then Exit Sub If Intersect(Target, xRgVal) Is Nothing Then Exit Sub Application.EnableEvents = False xFla…
-
0
Reacciones de usuarios
- 1 respuesta
- 1.6k visitas
-
-
Hola, Voy a intentar plantear de nuevo un problema que tengo solucionado pero no de la mejor forma ya que es muy muy lento. Os adjunto un excel de Ejemplo con 2 hojas, la primera hoja contiene los datos tal como salen de mi ERP, la segunda hoja contiene los datos tal como yo los necesito para poder trabajar con ellos como si de una base de datos se tratase. Lo que necesito hacer es que sea más eficiente el código que tengo ya que cuando lo utilizo con archivos mas grandes tarda demasiado. En el archivo está el código que estoy usando , para que quede más claro he puesto con fondo amarillo las filas que deberían ser eliminadas y en naranja pongo el text…
-
0
Reacciones de usuarios
- 8 respuestas
- 1.6k visitas
-
-
Buenas tardes, quisiera saber si me podrían ayudar con lo siguiente: - Tengo un sistema de facturación en excel, el cual se ejecuta con un macros, quisiera que almacene los datos de la lista generada en la macros factura en la hoja FActura puesto que solo almacena el ultimo dato ingresado(todo esto esta ubicado en la hoja FACTURA). Muchísimas gracias les adjunto el archivo [ATTACH]38378[/ATTACH] factura.zip
-
0
Reacciones de usuarios
- 7 respuestas
- 1.6k visitas
-
-
Buenas Noches, Me gustaria puedan apoyarme con el siguiente adjunto, en el cuento con un userform, en el cual completo todos los datos y van a sus respectivas columnas, y si selecciono un combobox este debe ir debe ir en la fila "L" pero no se como hacerlo . Por otro lado, este combobox tiene los mismos nombres que las pestañas por lo que al seleccionar deberan copiarse también automáticamente a sus respectivas pestañas siendo solo las columnas J, I, A, C, G,H, de la hoja Ordenes siempre en la primera fila vacía que se encuentre. Agradezco su amable atención, GENERAL ORDENES 2014 - EJEMPLO (1).zip
-
0
Reacciones de usuarios
- 12 respuestas
- 1.6k visitas
-
-
Hola a todos, Tengo un archivo con macros que pesa mas de 37 mil kb, basicamente el modo en que la programé es por el grabador de macros y luego puliendo aquí y allá. Tengo la plena seguridad de que se puede hacer que las macros de mi archivo sean mas eficientes para que no pese tanto. Me parecío que en algun momento un amigo me decia que existe otra forma de trabajar las macros en excel, según el termino que empleó "por debajo" no estoy seguro la verdad. En todo caso en la medida de lo posible me gustaría que alguien me ayudara al respecto. Agradezco la deferencia.
-
0
Reacciones de usuarios
- 1 respuesta
- 1.6k visitas
-
-
Buenos días; Hoy estoy muy espeso y mi cabeza no rula na de na…….me puedes ayudar Estoy intentando señalar un rango de celdas en una fila ( de A5 a Axx ), para ello estoy usando “Range(Selection, Selection.End(xlToRight)).Select”, la cosa es.......a lo que señalado tengo que añadirle una celda más. He probado un par de cosas y no doy con ello, la cosa es, que ya lo hice en su momento en una macro hace años pero…..mi cabeza ya no es lo que era. Muchas gracias y un saludo, Ejemplo.xlsm
-
0
Reacciones de usuarios
- 7 respuestas
- 1.6k visitas
-
-
Hola como estaN, Camila desde argentina y estoy terminando, Pero me quede trabada y no puedo sacarla a flote El codigo es el siguiente Set RsBusq = .Columns("A2:Z2").Find(what:="cocacola", lookat:=xlWhole, LookIn:=xlValues) If Not RsBusq Is Nothing Then ROFO = RsBusq.Offset(0, 1).Value Necesito que encuentyre todas las palabras"cocacola...." y me copie sus respectivas columnas hacia la derecha, pero no me esta saliendo... Agradezco su ayuda!
-
0
Reacciones de usuarios
- 13 respuestas
- 1.6k visitas
-
-
Buenas, Necesito una macro que me haga el siguiente formato condicional, si es posible. Muchas gracias.
-
0
Reacciones de usuarios
- 6 respuestas
- 1.6k visitas
-
-
Tengo este macro que realiza una tarea sencilla, me pueden ayudar a simplificarlo? con la primera inserción que me enseñen puedo hacer el resto, Gracias. Sub llenar() ' ' llenar Macro ' Range("F8").Select Selection.Copy Range("D35").Select Selection.Insert Shift:=xlDown Range("H8").Select Application.CutCopyMode = False Selection.Copy Range("E35").Select Selection.Insert Shift:=xlDown Range("J8").Select Application.CutCopyMode = False Selection.Copy Range("F35").Select Selection.Insert Shift:=xlDown Range("K10").Select Application.CutCopyMode = False Selection.Copy Range("C35").Select Selection.Insert Shift:=xlDown Range("K12").Select Applicatio…
-
0
Reacciones de usuarios
- 4 respuestas
- 1.6k visitas
-
-
como estan, sabe que tenga muy buenas referencias de esta pagina y me atrevo a pedirles ayuda al problema que tenemos.... tengo un libro con varias hojas.... de donde me interesa sacar en una hoja del mismo libro (para este ejemplo la ultima hoja se llama resumen) toda la fila del dato mandado a buscar, esto es mando a buscar FERNANDO MALDONADO en todas las hojas y deseo que en la ultima hoja me salga todos los fernandos maldonados encontrados en todas las hojas con sus respectivas columnas para saber cuando debe en este caso...... muchas gracias mando tambien el ejemplo ejemplo.rar
-
0
Reacciones de usuarios
- 2 respuestas
- 1.6k visitas
-
-
Buen día a todos: Por este medio quiero solicitar su apoyo para ayudarme a corregir una macro que me guarda unos datos de la hoja FORMULARIO a la hoja BASE. El objetivo de guardar los datos a la hoja BASE se cumple parcialmente, pero tengo el siguiente problema: La idea es que antes de guardar los datos, la macro verifique si el campo "NUMERO DE SOLICITUD" que se encuentra en la celda B2 de la Hoja FORMULARIO, ya se ha guardado alguna vez en la hoja BASE. Si se comprueba que ya se ha guardado una vez, la macro debería sobreescribir la información en la fila donde ya estaba guardada en la hoja BASE; si en caso se comprueba que aún no se ha guardado, que copie la …
-
0
Reacciones de usuarios
- 5 respuestas
- 1.6k 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 sergio@ayudaexcel.com
Información adicional: Encontrarás más información en la política de privacidad.