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
-
Buenas tardes amigos: Tengo lo siguiente: En la celda "Keywords!E2": =SI(D2<>"";CONCATENAR(Constructors!B2;" ";NOMPROPIO(Keywords!B2);" ";NOMPROPIO(Keywords!C2);" ";NOMPROPIO(Keywords!D2);" for ";Constructors!D2;" ";Constructors!E2);"") En la celda "Keywords!E3": =SI(D3<>"";CONCATENAR(Constructors!B3;" ";NOMPROPIO(Keywords!B3);" ";NOMPROPIO(Keywords!C3);" ";NOMPROPIO(Keywords!D3);" for ";Constructors!D3;" ";Constructors!E3);"") En la celda "Keywords!E4": =SI(D4<>"";CONCATENAR(Constructors!B4;" ";NOMPROPIO(Keywords!B4);" ";NOMPROPIO(Keywords!C4);" ";NOMPROPIO(Keywords!D4);" for ";Constructors!D4;" ";Constructors!E4);"") En é…
-
0
Reacciones de usuarios
- 0 respuestas
- 1.1k visitas
-
-
Estimados amigos del foro saludos cordiales, Acudo a ustedes para saber como puedo lograr hacer que luego de colocar en los textbox1 y 2 valores cualesquera el rango que yo decida por ejmplo si es 8,6 hasta 14,2 (incluidos) me genere aleatoriamente numeros entre estos valores y se inserten solo en las celdas vacias del rango previamente seleccionado (debe estar seleccionado, caso contario no funciona) me gustaria que se puedan ingresar valores con decimas He realizado algo pero no encuentro como hacer que funciones con muchos valores aleatorios, lo que hace por ahora es colocar el mismo valor aleatorio en las celdas vacias, lo cual no es lo que requiero. …
-
0
Reacciones de usuarios
- 5 respuestas
- 2.8k visitas
-
-
Buenas tardes, Tengo el siguiente Private Sub en mi hoja de cálculos: Private Sub Worksheet_Change (ByVal Target As Range) If Target.Column < 17 Then Cells(Target.Row, 16383).Value = Now End If If Target.Column = 18 Then Cells(Target.Row, 16384).Value = Now End If End Sub Pero me gustaría saber que tengo que modificar o agregar para que cuando se ejecute la orden de (Target.Column < 17 Then) al modificarse después de un registro no cambie la fecha y hora de creación. Al parecer el Excel está considerando colocar la fecha y hora cada vez que se modifica las 17 primeras columnas, lo ideal sería que la fecha y hora salga solo una vez, cuan…
-
0
Reacciones de usuarios
- 5 respuestas
- 2.4k visitas
-
-
Buenos días Estimados, Tengo un listbox que muestra ciertos datos que están en una cierta hoja, una de las columnas está en formato hora [hh:mm] pero al visualizarla en el listbox me aparece con puros números como muestra la imagen: Este es el código que estoy ocupando y me lo muestra con números: Me.ListBox1.List(Me.ListBox1.ListCount - 1, 7) = Format(b.Cells(nFila, 8), "hh:mm") 'HORA Como puedo hacer para cambiarle el formato y que se vea como debe ser? (hh:mm) ¿Existe otra forma de asignarle el formato hora a la columna? Gracias.
-
0
Reacciones de usuarios
- 11 respuestas
- 3.1k visitas
- 1 seguidor
-
-
Hola a todos de nuevo. De nuevo con un problema con una consulta SQL desde Excel a Access. Pongo el código y explico. 'macro para grabar los datos en tabla Checklist Fin = ListBox1.ListCount For i = 0 To Fin - 1 xxx = ListBox1.List(i, 0) Conexión If IsNull(ListBox1.List(i, 9)) Then Sql = "UPDATE Tb_Checklist SET Importe='" & ListBox1.List(i, 4) & "',Contable='" & ListBox1.List(i, 7) & _ "', Previsto='" & ListBox1.List(i, 6) & "', En_Curso='" & ListBox1.List(i, 8) & _ "' WHERE ID =" & xxx Else Sql = "UPDATE Tb_Checklist SET Importe='" & ListBox1.List(i, 4) & "',Contable='" & ListBox1.List(i, 7) & _ "', Previsto='…
-
0
Reacciones de usuarios
- 4 respuestas
- 3.2k visitas
- 1 seguidor
-
-
Hola estimados amigos Espero que me puedan colaborar en este problema , por que no le encuento solucion, les explico, tengo unos texbox que quiero que cambien de color dependiendo del estado, LIBRE OCUPADA o RESERVADA, he conseguido que cambien de uno en uno, por lo que necesito mucho codigo y se hace muy pesado el programa, y necesito que con menos codigo se rellenen todos Muchas gracias Saludos Prueba
-
0
Reacciones de usuarios
- 5 respuestas
- 1.4k visitas
- 1 seguidor
-
-
Buenos días, tengo una duda sencilla a priori pero que no entiendo el problema: - He creado un botón que activa un reemplazar espacios (cuando las unidades son + 1000 hay un espacio). Si lo hago manualmente se queda el valor como numero pero si lo hago con la macro se queda como texto. El archivo de partida es un .txt y se pega en un excel. adjunto el ejemplo txt. como veís la ultima fila es superior a 1000 rtoyprod.txt
-
0
Reacciones de usuarios
- 6 respuestas
- 739 visitas
-
-
Buenas Tardes, Alguien me puede ayudar a que al momento de apretar el boton "Eliminar", este permita elimina más de una fila del listbox. Además al momento de usar el textbox como filtro que también pueda eliminar más de una fila filtrada del listbox. Adjunto mi archivo. Gracias! PRUEBA.xlsm
-
0
Reacciones de usuarios
- 20 respuestas
- 3.6k visitas
- 1 seguidor
-
-
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
-
-
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.3k visitas
- 1 seguidor
-
-
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
- 947 visitas
-
-
Hola a todos. Mi nombre es Maurizio y mi problema es este. En una hoja de Excel, creo utilizando una serie de hallazgos producidos según el día y el mes insertados en la celda (B1: B2) y hasta ahora todo parece estar bien. Pero ahora me gustaría que las dos coordenadas que se entrelazan entre ellas en la fila y la columna que van desde la celda (B7: M37) una vez identifiquen la celda de color de color (rojo) El número que se inserta en esa celda en particular podría adherirse a la celda (B4) En tu opinión, es posible hacer todo esto! Gracias como siempre a partir de ahora por toda la ayuda que me puedan brindar; Saludos desde A.Maurizio ######################…
-
0
Reacciones de usuarios
- 2 respuestas
- 649 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
- 727 visitas
-
-
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…
-
Hola de nuevo a todos. Sigo construyendo mis simulaciones genéticas. Quiero generar la forma en que se observa un carácter en un individuo a partir de la información que este contiene (disculpa @Antoni pero me resulta complicado ser conciso con este tema). Adjunto un archivo con un ejemplo de lo que quiero conseguir. https://1drv.ms/u/s!ArSI6ZjR1bGVlYRKJdj0eGq5jDa87Q Partimos de: Unos caracteres ya definidos (hoja naranja “Color_y_tamaño_flor_CL”). La definición de caracteres condiciona como se expresa el carácter y el código tendrá que buscar en la hoja de caracteres los diferentes parámetros de expresión. Esta definición implica: …
-
0
Reacciones de usuarios
- 2 respuestas
- 712 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
- 657 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.1k visitas
-
-
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
- 8k visitas
-
-
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
-
-
Hola buenas tardes! La siguiente macro la quiero utilizar para que me sume valores que voy capturando en determinadas celdas y los acumule en una especifica celda. Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Range("A2:K10"), Target) Is Nothing Then Hoja4.[A1] = Hoja4.[A1] + Target End If End Sub El problema donde me atore es que necesito que solo sume los valores que estoy capturando y no adicione los que ya estaban con anterioridad. por ejemplo: suponiendo que inicio todo de cero y la primer captura es de 100 en la celda "A2" y en la celda "K10" capturo 50 lo que da un total de 150 que es lo que aparecerá en la celda "A…
-
0
Reacciones de usuarios
- 2 respuestas
- 2.2k 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
- 879 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
-
-
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.6k 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 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
- 3k 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.