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
-
Buenos dias tengo la sigueinte macro que me pone ingreso y no ingreso en la celda G de mi archivo lo que necesito es que solo se ejecute cuando enecuentre campos en la celda si no encuentra datos pare. Sub VALIDA_CAMPO_ULTIMO_ACCESO() Dim UltiFila, i As Integer UltiFila = WorksheetFunction.CountA(Range("A12:H30000")) For i = 12 To UltiFila If Cells(i, "G") <> "Nunca" Then Cells(i, "G") = "Ingreso" Else Cells(i, "G") = "No ingreso" End If If Cells(i, "H") = "-" Then Cells(i, "G") = "No Ingreso" End If Next End Sub Gracias por su ayuda
-
0
Reacciones de usuarios
- 3 respuestas
- 741 visitas
-
-
buenas como estan, quisiera saber si alguien me puede ayudar a modificar esta macro que cuenta los registros únicos totales , pero lo que necesito ahora que solo cuente los registros únicos visibles ya que tengo que usar filtros. Desde ya muchas gracias Function contar_unicos(rngSeleccion As Range) Dim collUnicos As New Collection Dim rngCell As Range On Error Resume Next For Each rngCell In rngSeleccion collUnicos.Add rngCell, CStr(rngCell) Next rngCell On Error GoTo 0 contar_unicos = collUnicos.Count End Function
-
0
Reacciones de usuarios
- 3 respuestas
- 6.4k visitas
- 1 seguidor
-
-
Hola a todos, Me gustaría que al pulsar una tecla o un atajo de teclado, se le aparezca un mensaje en un MsgBox al usuario de la aplicación ofimática. No sé muy bien cómo plantear el problema. Se me ocurre lo siguiente, pero no funciona: Sub MostrarMensaje() If Application.OnKey Key:="{c}" Then MsgBox "Hola mundo" End Sub Alguien tiene una idea mejor? Gracias.
-
0
Reacciones de usuarios
- 3 respuestas
- 1.3k visitas
-
-
Estimados, solicitode su ayuda, tengo un userform que tiene 3 texbox y lo que necesito es extrar ciertos caracteres de los dos primeros texbox y que el tercero me muestre esos caracteres es para crear un usuario con el nombre y apellidos, bueno lo hice funcionar en una celda y funciona a la perfeccion con la ayuda de un amigo de aca del foro pero no se como aplicar lo en vba. dejo el codigo de excel con el que funciona =IF(A2="";"";LEFT(A2)&MID(B2;SEARCH(" ";B2)+1;1)&LEFT(B2;SEARCH(" ";B2)-1)) esto es asi: A2 = luis B2 = Soto caceres C3 = lcsoto (este es el resultado) Ahora lo que necesito es hacerlo en t…
-
0
Reacciones de usuarios
- 3 respuestas
- 5.4k visitas
-
-
¡Hola! ¿Sabéis si hay alguna forma de traducir el control dtPicker (el del calendario) para que en vez de que aparezca "Today" se pueda ver "Hoy"? Gracias
-
0
Reacciones de usuarios
- 3 respuestas
- 1.1k visitas
-
-
Saludos a todos, Llevo muy poco con esto del vba así que me cuesta y voy muy lento pero gracias a iniciativas como este foro he conseguido introducirme en este mundillo con más o menos éxito. Expongo mi problema: tengo un libro con 2 hojas, "registros" y "corrección". Necesito un macro que al activarlo desde la hoja "corrección", busque el valor de la celda K7 o L7 (si pudiera elegir sería perfecto) sólo en su columna correspondiente para agilizar el proceso. Una vez que encuentre los registros, copie toda la fila en la hoja corrección. Con el código al que he llegado consigo buscar únicamente un registro. Además necesito que la búsqueda respete la posición de la cade…
-
0
Reacciones de usuarios
- 3 respuestas
- 670 visitas
-
-
Estimados, Estoy usando un código para remitir un rango de celdas seleccionadas desde una hoja de Excel vía Outlook, lo encontré entre los casos resueltos de la página http://www.rondebruin.nl/win/s1/outlook/bmail3.htm, mi problema es que quisiera modificarlo para que los rangos remitidos puedan ser uno predeterminado que corresponde a los títulos (Rango A1:J3) y que el otro rango corresponda a las celdas que seleccione en la hoja con el cursor. Agradeceré vuestra ayuda ya que no he encontrado vueltas al caso. Ejemplo.xlsm
-
0
Reacciones de usuarios
- 3 respuestas
- 10k visitas
-
-
Como va? acá les comparto un sencillo efecto de desplazamiento de botones dentro de un formulario. Consiste en el deslizamiento de los botones dependiendo de la cercanía del puntero del mouse, funciona a través del evento mousemove del userform. El único problema que estoy teniendo es que el efecto se corta cada vez que el mouse pasa por algún botón o imagen dentro del mismo formulario (lógicamente porque corta el evento que lo dispara). Si alguien conoce alguna manera de conseguir que el efecto continué de manera fluida por todo el formulario les estare eternamente agradecido. Desde ya muchas gracias a todos ya que no lo habría podido conseguir sin el aporte de todos ust…
-
0
Reacciones de usuarios
- 3 respuestas
- 3k visitas
- 1 seguidor
-
-
Hola, me gustaría hacer un excel en el que las casillas de verificación se colocaran en una fila y en la fila inferior mostrara el resultado TRUE o FALSE. Arrastrando las casillas no es posible hacerlo y he encontrado buscando un módulo pero es para hacerlo en columna. ¿Se podría hacer lo mismo pero como yo lo quiero? Decir que no tengo mucha idea de VBA. Esto es lo que he encontrado. Sub LinkChecks() 'Update by Extendoffice Dim xCB Dim xCChar i = 2 xCChar = "B" For Each xCB In ActiveSheet.CheckBoxes If xCB.Value = 1 Then Cells(i, xCChar).Value = True Else Cells(i, xCChar).Value = False End If xCB.LinkedCell = Cells(i, xCChar).Address i = i + 1 Next x…
-
0
Reacciones de usuarios
- 3 respuestas
- 1.2k visitas
- 1 seguidor
-
-
Saludos a todos, tengo la variable ultimafila en una macro que me cuenta los campos en un rango para luego mostrar en un mensaje cuantos se van a generar, desde 1 hasta la variable, sin embargo el rango que está leyendo está formulado y me toma las formulas como campo aunque esté vacío. Necesito que solo me cuente las que tienen información así todas tengan la formula. Agradezco la ayuda 'la variable ultimafila está contando los campos con formula, así esté vacío, necesito que solo cuente los que tienen info ultimafila = Sheets("Tabla").Range("B" & Rows.Count).End(xlUp).Row Pregunta = MsgBox("Esta seguro de generar todos los recibos ?",…
-
0
Reacciones de usuarios
- 3 respuestas
- 404 visitas
-
-
hola! estoy en búsqueda de separar celdas en filas de una base gigante, para eso daré un ejemplo: según la celda de la columna CENTRO necesito que me separe en filas las veces que aparezca una coma... quedando así: alguna idea???? gracias!!
-
0
Reacciones de usuarios
- 3 respuestas
- 1k visitas
-
-
Hola, necesito me ayuden con un macro. Tengo que sacar un hoja con datos semanalmente y guardar el histórico de esos datos que provienen de una exportación. Por ejemplo, pego los datos de la semana 27 en Hoja(datos) y en la Hoja(Resultado) en A1 pongo que la semana es 27, entonces en esa hoja se calculan un montón de formulas. Necesito un boton que cuando yo pegue los datos de la semana 27, copie ciertas celdas de semana 27 en hoja(resultado) en la hoja(histórico)debajo de la celda S27(no sé cual es) y al ser 3 datos en concreto, debe copiarlos en vertical. Los datos a copiar son siempre los mismo, por ello podría arbitrariamente copiarlos con el macro cell.range("X).co…
-
0
Reacciones de usuarios
- 3 respuestas
- 1.5k visitas
-
-
hola necesitaría saber como hacer para enviar de un listbox a una hoja de excel y que cada vez que envié el dato no reemplace el anterior sino que agregue una linea gracias
-
0
Reacciones de usuarios
- 3 respuestas
- 745 visitas
-
-
Estimados buenas tardes, Recurro nuevamente a ustedes con un nuevo inconveniente que se me presentó con una macros que estoy trabajando, exactamente en el formulario "frm_CopiarCobros", lo que hace ese formulario es me combina 2 hojas, la hoja "CopiarCobros" y la hoja "Proyectado", combina datos de ambas hojas haciendo coincidencia con el número de Factura, hasta ahi todo funciona bien, el problema es cuando quiero exportar esa información, quiero enviarla a la hoja "Ejecutado" y solamente modificar algunos datos en la hoja "Proyectado", pero me lanza error con el código para enviar a modificar la hoja "Proyectado" todo el código lo copié de otra macros que hice dond…
-
0
Reacciones de usuarios
- 3 respuestas
- 949 visitas
- 1 seguidor
-
-
Hola a todos, he estado últimamente trabajando en un nuevo complemento. Es una idea que se me ocurrió viendo videos de este tipo. Aunque tiene un porcentaje mío también cabe destacar que algunas cosas las he adaptado de ideas de otros programadores. -Este complemento es para enviar mails desde excel sin necesidad de abrir el outlook y además se puede configurar los smtp, puerto y ssl. Os dejo enlace al vídeo que he grabado y también os adjunto el archivo. Video mail configurable Seguramente tiene errores los cuales me podéis indicar. No ser muy crueles aun tengo la "L" de novato. Si está muy mal que Sergio quiete el post.…
-
0
Reacciones de usuarios
- 3 respuestas
- 631 visitas
-
-
lo que quiero que me ayuden a hacer es que deacuerdo al archivo de que mando, del contenido de la celda A2 (hoja 1) me busque el contenido de la celda A2 (hoja 2) y el resultado lo ponga en la celda C2 (hoja 1) y lo mismo con la celda B2(hoja 1), eso digamos es facil con un simple =buscarv, pero al revisar el "titulo" donde dice TOTAL (si lo hago con el buscarv) solo me va a poner el primer argumento que busca esdecir me va a poner "5" pero si yo tengo "15" como puedo hacer yo para que me ponga el total de las dos celdas tanto el total de la celdas como el "numero" espero y me entiendan, pero es que no se como explicalo bien dejo el archivo de antemano muchas gracias eje…
-
0
Reacciones de usuarios
- 3 respuestas
- 666 visitas
-
-
Buenas tardes, soy nuevo en esto del visual basic, espero me puedan echar un cable, he conseguido una macro la cual la he ido adaptando a las necesidades, lo que requiero es que el rango que especifico, al pasar a la siguiente fila se mantenga el conteo, la macro funciona de la columna D9:J9 al repetir el valor "R" mas de 2 veces despliega el MsgBox y borra el ultimo valor Introducido limitandolo a 2 valores. Es una tabla que consta de los retardos de los trabajadores de lunes a domingo, el primer trabajador se ubica en D9 : J9, el siguiente en D10 : J10 el tercer trabajador de D11: J11 Y así sucesivamente, la macro solo me funciona con el primer trabajador, que al introd…
-
0
Reacciones de usuarios
- 3 respuestas
- 2.1k visitas
-
-
Buenas Tardes Quisiera saber con que código podría eliminar esta falencia en mi archivo de contraseña de ingreso. Cuando abro el archivo y le doy salir (X) (1.png), me abre el libro y aparece otro recuadro que dice "contro de stock 2.1" ya esta abierto. Si lo vuelve a abrir... (2.png) si le doy No, me salta toda la seguridad de ingreso que tenia, me deja manipular el libro. Quiero que este error no siga saliendo.
-
0
Reacciones de usuarios
- 3 respuestas
- 913 visitas
-
-
uenas tardes una consulta y disculpen la molestia: pretendo que a la hora de abrir el libro de Excel me solicite introducir la clave de tres usuarios ya establecidos, los cuales seria: 1) YORDIN 2) YHOAN 3) OMARILYN Cuya clave de acceso sea “123” para luego yo modificarla en la macro. gracias. FILTRO.rar
-
0
Reacciones de usuarios
- 3 respuestas
- 781 visitas
-
-
Buenas tardes Alguien me podría ayudar? Tengo un formulario en el que en la columna G tengo numeros de teléfono (solo algunos), por ello necesito una formula o lo que sea que si en la celda g3 es igual a = 0 vaya directamente a la celda c3 y si la celda g3 es diferente a 0 vaya directamente a la celda b4 y asi sucesivamente con el resto de las celdas. Es decir si g4=0 vaya a c4 y si g4<>0 vaya a c5 Gracias de antemano
-
0
Reacciones de usuarios
- 3 respuestas
- 668 visitas
-
-
Solicito su ayuda para ver si es posible hacer una macro para que al ingresar en la celda b2 por ejemplo el numero 9, en el rango a:a600 se repita 9 veces el 1, despues 9 veces el 2, 9 veces el 3... es decir de la fila 1 a la 9 que haya 1, de la 10 a la 18 que haya 2 . Desde ya muchas gracias, y si es posible hacerlo mediante una formula tambien me va servir pero yo no pude hacerlo de ninguna de las dos formas
-
De antemano muchas gracias por la ayuda que me puedan prestar. Tengo una base de datos en una hoja en la que necesito repetir una fila cuando en ella aparezca una fecha determinada en una de las celdas que la componen (a la fila). El problema es que la fecha aparece en varias filas de la base de datos y lo que ocupo es que repita la fila cada vez y no que me copie solo la primera fila siempre. Ya logré hacer una macro para que cuando me aparezca por ejemplo el 10-10-2013 me inserte una fila en blanco pero no logro que me repita la fila cuando encuentre ese valor y la copie en esa linea en blanco (ya que como puse en el ejemplo los montos varian y las cuentas tambien), p…
-
0
Reacciones de usuarios
- 3 respuestas
- 1.7k visitas
-
-
Hola buen día, alguien me puede ayudar con una macro mucho mas eficiente que esta, he realizado esta q subo, pero no estoy satisfecho, habrá otra manera de mejorar el código o que sea mucho mas eficiente, la idea es eliminar las filas que tengan completos los "00:00" de la columna H a la R, menos los que contengan números. muchas gracias de antemano al que me ayude, abrazosNomina.xlsm
-
0
Reacciones de usuarios
- 3 respuestas
- 1.2k visitas
-
-
Buenos dias Familia Nuevamente necesito su ayuda tengo un archivo en la cual quiero copiar los datos que estan en el sheet1 de la columna B en adelante sin el encabezado y pegarlo en la sheet2 debajo del ultimo registro que tenga esa hoja. Favor su ayuda muchas gracias anexare el documento tuve que acortar la data para poder subirlo data foro.xlsx
-
0
Reacciones de usuarios
- 3 respuestas
- 544 visitas
- 1 seguidor
-
-
Hola a tod@s, estoy intentando crear una macro para insertar una fecha desde un calendario en una determinada celda, pero mi excel 2003 no dispone de control de calendario 11. ¿como lo instalo? Gracias.
-
0
Reacciones de usuarios
- 3 respuestas
- 832 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.