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?
8680 temas en este foro
-
Hola a todos, soy nuevo en el foro, gracias por el soporte y la ayuda que prestáis. Mi cuestión es la siguiente: Tengo varias hojas que empiezan por el nombre "PRO" y necesito que el rango (b13:g64) de cada una de las hojas pegue los valores en la hoja "Dat" a partir de la primera columna en la siguiente fila vacía. Lo he intentado con el siguiente código pero solo pega los valores del rango" b" y no todo el rango. Sub prueba() Dim hj As Worksheet Dim x As Integer For Each hj In ActiveWorkbook.Sheets If hj.Name Like "PRO*" Then Sheets("Dat").Range("a" & Rows.Count).End(xlUp).O…
-
Estimados: Solicito su valiosa ayuda Tengo una planilla en la cual deseo buscar datos de otra con una macro. En la parte donde dice cuenta, deseo colocar sólo el número y presionar buscar, si es que existe, necesito que me arroje los datos, si es que no, que aparezca mensaje de error. LEs adjunto la planilla, les dejé un ejemplo. Por favor si alguien puede ayudar se lo agradecería mucho Gracias Libro1.xlsm
-
0
Reacciones de usuarios
- 17 respuestas
- 2.4k visitas
-
-
buenos días, me gustaría utilizar una macro que me coloque datos en un archivo dependiendo de si esta en otro archivo. la cuestión es que tengo un archivo llamado master con columnas de la A a la E, y otro archivo llamado impresión con columnas A y B, quiero que al ejecutar la macro en en archivo master, busque en la columna b del archivo impresión los números de pedidos que estén y en el archivo master llenar esos números de pedidos las columnas c (con la fecha y hora actual) y e (con la palabra "impresión". ojo pero solo si están vacías de lo contrario dejarlas como están. de antemano muchas gracias impresion.xlsx master.xlsm
-
0
Reacciones de usuarios
- 0 respuestas
- 676 visitas
-
-
Hola buenas. Tengo esta macro que quisiera que se ejecute en hojas determinadas del libro Private Sub CommandButton1_Click() Dim NX As Integer, N2 As Integer Dim CX As Integer, C2 As Integer, SEL As Integer If Not IsNumeric(TextBox1) Then MsgBox "Cantidad X incorrecta" Exit Sub End If If Not IsNumeric(TextBox2) Then MsgBox "Cantidad 2 incorrecta" Exit Sub End If If CheckBox1 Then Combinar Application.ScreenUpdating = False NX = CInt(TextBox1) N2 = CInt(TextBox2) For y = [B18] + 3 To 4 Step -1 CX = 0: C2 = 0: SEL = 0 For x = 0 To 13 If ListBox1.Selected(x) Then SEL = SEL + 1 If Cells(x + 1, y) = "X" Then CX = CX + 1 …
-
0
Reacciones de usuarios
- 2 respuestas
- 752 visitas
-
-
Por favor alguien que me ayude con mi proyecto solamente me hacer falata hacerle funcionar a mi codigo de modificación por medio de un boton ingreso datos por este form tengo botones basicos todos ya me funcionan menos el botón "Modificar" es se da el caso en que he ingresado mal los datos entonce con e boton "Buscar" que es la "lupa" ubico el lote hago las modificaciones correspondientes y el Boton Modificar debería grabar con las modificaciones hechas pero no logro hacerlo alguien con su genialidad me puede colaborar. Gracias App'Demo.xlsb
-
0
Reacciones de usuarios
- 1 respuesta
- 902 visitas
-
-
Bunas tardes chic@s; No sé ni cómo explicaros lo que estoy intentando hacer, a ver si consigo. Estoy intentando filtrar datos de una hoja Excel ( Hoja1) y que se copie en su hoja correspondiente ( hoja con el nombre de la condición filtrado ). Las condiciones a filtrar están en un userfrom, os pongo un ejemplo. Si abro el userfrom ( menú ) y marco TACON Y PIEL, al pulsar generar, lo que quiero es que me filtre por TACON y me copie los datos en la hoja llamada TACON y me filtre por PIEL y me copie los datos en la hoja PIEL, si marco todo, quiero que me vaya filtrando por cada una de las condiciones y se vaya copiando en la hoja correspondiente. Com…
-
0
Reacciones de usuarios
- 2 respuestas
- 977 visitas
-
-
Hola buenas, @Haplox Mi problema es este: - Quiero filas en varias hojas Excel a la vez. Insertándola siempre desde la hoja1. - Que la fila en blanco que se inserte esté en el mismo numero de fila en todas las hojas. Es decir que si inserto una fila en Hoja1 en la fila 12, en las hojas2 y hoja3 también se inserte en la fila 12. He probado con este código que le dejaste a otro usuario pero me surge el problema de que si la fila que inserto en la hoja1 es la 12, en las demás hojas se me inserta en la fila 13, es decir, una por debajo. ¿Alguien sabe el problema del código? Public Filas As Long Public seleccion As Range Private Sub Work…
-
0
Reacciones de usuarios
- 4 respuestas
- 1.2k visitas
-
-
buen día tengan, eh aqui yo con los problemas de horas y fechas, pues ahora con la problemática que tengo que resolver que un textbox solo permita un horario determinado, es decir en un textbox al inicializar el formulario o a traves de un boton necesito determinar que solo acepte en horario de 24 horas desde las 09:00 horas hasta las 23:59 horas; es decir, si es menor a las 09:00 horas y mayor a las 23:59 horas me marque algun mensaje de error o en otras palabras que si la hora que esta en el textbox esta entre el rango de las 00:00 a las 08:59 horas me marque como hora invalida....¿como lo logro?, alguien que me pueda ayudar porfavor. determinar horario de horas xD.x…
-
0
Reacciones de usuarios
- 2 respuestas
- 1.2k visitas
-
-
hola amigos del foro estoy modificando un macro que hace tiempo subio nuestro buen amigo gerson, muchos lo han de conocer es el turbo filtro a este macro le eh adaptado un modulo de consulta de doble click sobre el listbox para poder desplegar otra pantalla y poder hacer un comparativo de unas listas de precios el macro corre y carga la informacion pero tengo este detalle que no busco la solucion o no se que estoy poniendo mal 1.- el primer problema es que no guarda las modificaciones y al darle click al boton de guardar borra la primera linea y lo deja en ceros 2.- el segundo problema es que no me respeta los decimales eh intentado darle varios formatos p…
-
0
Reacciones de usuarios
- 0 respuestas
- 1.8k visitas
-
-
Hola amigos tengo el siguiente detalle, la siguiente macro. Sub Ordenando() 'ordena la hoja por la col B en forma ascendente teniendo la primera fila como encabezado Worksheets("Hoja7").Select Range("A1").Select Selection.Sort key1:=Range("B1"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom End Sub debe ordenar alfabéticamente todos los datos de la hoja7 tomando como referencia la columna B desde la fila 2 hasta la ultima con datos, ya que la fila 1 es para los encabezados, son 13 columnas. el detalle es que al correrlo en un libro nuevo funciona al cien pero ya dentro de un proyecto que tengo funciona a medias…
-
0
Reacciones de usuarios
- 4 respuestas
- 3.1k visitas
-
-
Buenas noches, Necesito una ayudita. Tengo un archivo excel con una macro que convierte los datos introducidos en columna A y B en fechas cada vez que introduzco una fecha sin barras. Por ejemplo, si introduzco 020219(ddmmyy) me lo convierte en 02/02/2019 (dd/mm/yyyy) automaticamente. Solo lo convierte si introduzco los datos uno a uno. Necesito cambiar la configuración para que haga lo mismo pero solo si pincho en un botón de comando. Si no pulso ese botón no haga cambios Este es el código que utilizo con el metodo " Worksheet_Change" y Tarjet Private Sub Worksheet_Change(ByVal Target As Range) Dim rngData As Range Set rngData = Range("A2:…
-
0
Reacciones de usuarios
- 4 respuestas
- 2.5k visitas
-
-
Hola de nuevo. Siento molestar, de verdad que estoy buscando y probando y no me sale bien. Tengo un problema para calcular dos fechas de dos celdas en Excel. En una celda me aparece el formato fecha incluyendo horas y en otra celda solo fecha. Intento restarlas y mientras no cambie de mes la fecha larga no hay problema, pero como sea otro mes lo hace mal. Esta es una foto de las celdas. Y el código que he comenzado a hacer y que luego necesitaré estos cálculos es este. Sub RellenarAusencias() ApplicationOff ' Dim rng1, rng2 As Range Dim FechaF As Date Set Ws = Sheets("AusenciasPnet") uf1 = ActiveSheet.Range("A65536").End(xlUp).Row: uf2 =…
-
0
Reacciones de usuarios
- 1 respuesta
- 698 visitas
- 1 seguidor
-
-
Hola a todos, necesito si podéis que echéis una mano con este código. El código funciona bien, pero es lento. Porque recorre cada celda de la fila y ejecuta una acción tantas columnas tenga el rango filtrado. No se si se puede hacer que en cuanto encuentre el valor filtrado y ejecute la acción cambie de fila. Eso aceleraría considerablemente el código. Lo copio y si podéis ayudarme os lo agradezco. Sub PegarJornadasPnetInst() ApplicationOff ' 'declaro variables Dim uf1, uf2, f1 As Long Dim IDRH, ORDEN As String Dim celda As Range, rng As Range 'asigno las hojas Set ws1 = Sheets("Instaladores"): Set ws2 = Sheets("PartePnetInst") 'ultima fila de hojas uf1 = …
-
0
Reacciones de usuarios
- 11 respuestas
- 2.4k visitas
- 1 seguidor
-
-
Al ejecutar un fichero Excel con macro me salta el "error de compilación en módulo oculto" en una computadora. En otra computadora funciona perfectamente. ¿Alguien podría aportarme alguna idea para solventarlo?. Adjunto fichero en cuestión. Gracias. Acciones formativas.xlsm
-
0
Reacciones de usuarios
- 4 respuestas
- 8.1k visitas
-
-
Hola a todos, mi nombre es Maurizio Y mi problema es este: Hace unos años logré crear una especie de pronóstico del tiempo con vba y hasta ahora todo va bien. Como todo este trabajo funciona muy bien. Pero como, sin embargo, normalmente no soy una persona que se satisfaga fácilmente, me gustaría entender cómo cambiar De manera drástica, su Enlace no solo puede obtener las mismas cosas; Pero también para poder atraparlos. Primeras tres imágenes de la ubicación elegida por mí de la hoja de Excel. Hay algunos de ustedes que podrían ayudarme en esto, aunque solo sea llegando a los escritos. ¡Del lugar en cuestión y el mínimo y el máximo de los tres pr…
-
0
Reacciones de usuarios
- 0 respuestas
- 1.1k visitas
- 1 seguidor
-
-
Buenos días tengo la siguiente macro. La idea es copiar rangos de todas las hojas a la Hoja1 una debajo de otra. ésta es la macro solo me funciona en la primera copia, estaré agradecido. Sub copiar() Set h1 = Sheets("Hoja1") ' hoja principal ' dato = Array("C1:D5", "A1:B5", "H1:I5") ' For Each h In ThisWorkbook.Sheets If h.Name <> h1.Name Then u = h1.Range("A" & Rows.Count).End(xlUp).Row For j = LBound(dato) To UBound(dato) h.Range(dato(j)).Copy h1.Range("A" & u) u = u + 1 Next j End If Next h End Sub MACRO COPIAR.xlsm
-
0
Reacciones de usuarios
- 7 respuestas
- 1.2k visitas
-
-
Solicito de su ayuda tengo textos los cuales debo limitarlo a 80 máximo por celda, pero las lineas de textos iniciales son mayores a este limite y lo que busco es que en la segunda celda me concatene el faltante de la celda 1 mas la linea de la celda 2, pero que la suma no sea mayo a 80 caracteres que se cumpla sucesivamente. hasta volver el texto al limite que se debe dejar. deje una formula como ayuda pero al hacerla mas adelante no me da me falla. Ayuda excel.zip
-
0
Reacciones de usuarios
- 10 respuestas
- 1.5k visitas
-
-
Hola a todos. Mi nombre es Maurizio y mi petición es esta: Hace algún tiempo le pregunté si podía ayudarme a extraer una imagen de la web para mi proyecto. Ahora usted, pero no recuerdo quién me dio un hermoso archivo que era adecuado para mí porque tomó la imagen de la web aunque la imagen cambiara a su vez. ¿Cómo podrían ser los símbolos de los pronósticos del tiempo? Pero este hilo, sinceramente hablando, ya no lo puedo encontrar en mis archivos. ¡Podrías recuperarlo de tus archivos! Si recuerdo correctamente lo había hecho yo (Antonio) I (Haplox) Pero repito no estoy seguro gracias ################################################################ Hel…
-
0
Reacciones de usuarios
- 1 respuesta
- 595 visitas
- 1 seguidor
-
-
Buen día. Quiero contar los atributos de modo "IdDocumento" del archivo XML para después poner la información de cada uno en columnas o filas. En el archivo que dejo, "IdDocumento" se repite dos veces. Como los cuento y saco la información de cada uno de ellos. Ejemplo.rar
-
0
Reacciones de usuarios
- 0 respuestas
- 616 visitas
-
-
hola como puedo ejecutar esta formula en una macro ya que mi archivo tiene mucha información y se bloquea con este método gracias sumar-si-en-varias-hojas.zip
-
0
Reacciones de usuarios
- 1 respuesta
- 671 visitas
-
-
Hola a todos, es mi primer tema en el foro. En el Libro1 tiene un formulario que simula una factura, el cual, en la columna “Código” del artículo posee varios Combos. El usuario al seleccionar el primer combo (ComboBxCod1), coloca una cantidad X en la columna Cantidad (TextBxCant1) que al momento de “Guardar”, me resta al saldo disponible de la columna “Cantidad” hoja “ARTICULOS” del Libro2, así que de esa manera arroja el resultado efectuado por el código de la macro que adjunté, hasta este punto funciona bien. El problema es: los otros combos y no sé cuál es la instrucción para estas variables que esté relacionado con varios textboxs para poder restar la cantidad d…
-
0
Reacciones de usuarios
- 0 respuestas
- 606 visitas
-
-
Hola amigos tengo un textbox1 donde quisiera ver si lo que escrito en él, al guardarlo se contatene el formato de una imagen tipo JPG, es decir si escribo Vaso cuando se guarde en la hoja lo haga así Vaso.JPG. estoy usando esto pero no funciona. podrá alguien asesorarme. Sheets(nHoja).Cells(uFinal, 12) = Me.TextBox1 & VBA.Format(.JPG)
-
0
Reacciones de usuarios
- 3 respuestas
- 851 visitas
-
-
Hola tengo una duda con esto, como hago para eliminar registros repetidos pero sin mantener ninguno es decir. si tengo: A A A B C Me borre todos los A y me mantenga B y C. Esto tengo hasta ahora. Sub borrar_repetidos() Worksheets("inicio").Activate Application.ScreenUpdating = False Range("C3").Select Do While Not IsEmpty(ActiveCell) x = WorksheetFunction.CountIf(Range("C:C"), ActiveCell) If x > 1 Then ActiveCell.EntireRow.Delete Else ActiveCell.Offset(1, 0).Select End If Loop Range("C1").Select Application.ScreenUpdating = True End Sub
-
0
Reacciones de usuarios
- 3 respuestas
- 624 visitas
-
-
Hola de nuevo a todos. Tengo un problema con una consulta desde Excel a Access usando UDATE. El error viene porque intento actualizar un campo que está vacío o nulo. En la base de datos está vacío y cuando actualizo todos los campos del registro este campo a veces lo puedo dejar vacío. Sql = "UPDATE Tb_Checklist SET OT='" & ComboBox1 & "', AGRUPACION='" & ComboBox3 & "', GRUPO='" & ComboBox4 & _ "', Periodo_Checklist='" & ComboBox2 & "', Proveedor='" & TextBox1 & "', Referencia='" & TextBox2 & _ "', Usuario='" & TextBox3 & "', Importe='" & TextBox4 & "', Porcentaje='" & TextBox5.Value / 100 …
-
0
Reacciones de usuarios
- 6 respuestas
- 2.1k visitas
- 1 seguidor
-
-
buen dia como hago una macro donde pueda seleccionar la hoja donde se buscaría el material y en ella se colocaría el precio costo que esta asignado en la hoja resumen ubican dolo en la columna E de la hoja seleccionada y a cada material. INVENTARIO.zip
-
0
Reacciones de usuarios
- 12 respuestas
- 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.