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
-
Sub Copiarypegar() Application.ScreenUpdating = False 'Range("Q1:EF1").Locked = False 'Seleccionamos todo el área contínua de datos, desde la celda donde estamos situados Range("a12:A30").Select 'seleciona el rango especifico 'ActiveCell.CurrentRegion.Select 'Copiamos Selection.Copy 'Pegamos en A12 de la hoja 2 Sheets("DAILY REPORT").Select Range("A12").Select 'el control se hará sobre la columna A, a partir de la fila While ActiveCell.Value <> "" 'Busca la ultima fila ActiveCell.Offset(1, 0).Select 'si la celda contiene datos, pasa a la fila siguiente Wend ActiveSheet.PasteSpecial Application.CutCopyMode = False 'Hoja1.Rows(12).ClearContents Hoja1.…
-
0
Reacciones de usuarios
- 3 respuestas
- 1.1k visitas
-
-
Hola a todos amigos! Quisiera saber si alguien tiene algun ejemplo para trabajar desde otro libro donde puedo hacer capturas, modificaciones, eliminaciones, consultar y reportes. Les agradesco mucho amigos.. Saludos...
-
0
Reacciones de usuarios
- 0 respuestas
- 1.1k visitas
- 1 seguidor
-
-
Buenos días, Busco hacer una macro que divida los valores de la columna "C" de la pestaña (2) entre el valor constante que le corresponde a esta planta , dato de la pestaña (1) , columna "A". Y devolver los valores resultantes de esta división en la columna "D", pestaña (2). Gracias por adelantado Libro1.xlsx
-
0
Reacciones de usuarios
- 1 respuesta
- 1.1k visitas
-
-
Hola a tod@s. De antemano agradecer por su tiempo en el siguiente inconveniente que expongo. El inconveniente que tengo es que al aplicar el el código en el evento que dejare líneas abajo funciona correctamente, sin embargo cuando selecciono el rango de celdas B9:B18 y borro el contenido, sucede que de manera automática se colorea todo de color rojo en dicho rango. Como solucionarlo?, tomando en cuenta que es necesario que sea un evento. Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False If Not Application.Intersect(Target, Range("B15")) Is Nothing Then If Not IsNumeric(Target.Value) Then …
-
0
Reacciones de usuarios
- 4 respuestas
- 1.1k visitas
-
-
Buenos dias, agradeceria vuestra ayuda.Tengo un cuadrante general mensual, donde aparecen todas las personas con sus turnos, el cual se envia en pdf por la macro anexa a todos los correos que figuran en la columna B.Lo que necesito es en lugar de enviar el cuadrante a todo el mundo,(1 correo a 10 personas) como hasta ahora, enviar el cuadrante de cada persona solo con sus turnos, sin datos de los demas.(1 correo por persona con solo sus datos)He probado con formulas, pero me fallan con algunos numeros, supongo que por el tema de buscarv.Anexo la plantilla que estoy intentando hacer.Gracias Prueba1.xlsm
-
0
Reacciones de usuarios
- 3 respuestas
- 1.1k visitas
- 1 seguidor
-
-
Hola AyudaExcel requiero de su colaboración Lo que necesito es que una celda me cambie de color si el valor de la celda "PORCENTAJE DE CITA CANCELADAS" es mayor a 10 %, si es asi que se ponga roja si no es asi que se mantenga en verde (>10 = rojo ---- <10 = verde), pero esto teniendo en cuenta la fecha actual, es decir que mediante la fecha actual me busque en una tabla en que mes debe situarse y luego en el valor del porcentaje que corresponde para ese mes -------------- en el ejemplo que adjunto hice algo mediante formato condicional, pero no es funcional Adjunto archivo de ejemplo con una nota de lo que deseo No importa si se hace con funciones o macr…
-
0
Reacciones de usuarios
- 5 respuestas
- 1.1k visitas
-
-
Hola a todos, Me gustaria hacer una macro VBA que se pueda realizar o aplicar cuando seleccionamos una celda y que esta consista en que se marquen o seleccionen las columnas desde la primera hasta la columna en la cual se encuentra la celda seleccionada. [/img] http://es.tinypic.com/view.php?pic=mikjdk&s=8 http://es.tinypic.com/view.php?pic=2qjgbcz&s=8 http://es.tinypic.com/view.php?pic=2qjgbcz&s=8 Columns(valor) dentro de Range genera un valor 1 aunque valor tenga el valor de la columna de la celda activa. No se porque. Alguien puede ayudarme con este problema. Muchas gracias!!
-
0
Reacciones de usuarios
- 1 respuesta
- 1.1k visitas
-
-
Saludos amigos espero estén bien Estoy intentando hacer un formulario que me convierta unidades de masa sin embargo en el mejor de los casos solo he podido lograr la conversión de una unidad a la vez en los TextBox 1, 3, 5, 7, 9, 11 y 13 y cuando lo logro el resultado que se copia en la celda no se corresponde con el obtenido originalmente en el Textbox del Formulario (frmconv) ejemplo al convertir 1900 Kg a Lb el resultado en el TextBox1 =4188,78298142 sin embargo al guardar el resultado lo que se copia en la Celda "F11" es 418.878.298.142,00, adicionalmente el resultado de la conversión no se visualiza inmediatamente por lo que debo de hacer click en los TextB…
-
0
Reacciones de usuarios
- 5 respuestas
- 1.1k visitas
- 2 seguidores
-
-
Hola, Soy nuevo en el foro. Agradecería vuestra experta ayuda Mi problema es que tengo una macro cuya función es abrir un excel copiar información de este y pegarla en otro libro, y finalmente adjuntar este último a un correo. Esto funcionaba correctamente antes de que me cambiasen al Office 2010 (antes tenía el 2003). Ahora el problema que me sale es en la instrucción Set e1 = o1.CreateItem(olMailItem): error 13 en tiempo de ejecución. No coinciden los tipos. Sub CORREO2() Dim RUTA As String Dim rutaavanzamadre As String Dim o1 As Outlook.Application Dim e1 As Outlook.MailItem Dim WB As Workbook Dim tomador As Workbook Dim nombredeflota As String Dim fechadecierr…
-
0
Reacciones de usuarios
- 3 respuestas
- 1.1k visitas
-
-
buenas tardes, tengo el siguiente código: '---------------------------------------------------' '--OPTION EXPLICIT--------------------------' '---------------------------------------------------' ' Option Explicit Dim tWebBrowser As Object ' '---------------------------------------------------' '--NAVEGADOR (CONSULTAR SALDOS '--BANCARIOS)---------------------------------' '---------------------------------------------------' ' Private Sub Worksheet_Activate() Range("C10").Select If Range("D3").Value <> "" Then If IsNull(Range("D3").Value) Then Range("D3").Value = "Banco online sin comisiones para Particulares y Negocios - ING DIRECT…
-
0
Reacciones de usuarios
- 0 respuestas
- 1.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
-
-
hola leia por internet estas ideas:
-
0
Reacciones de usuarios
- 0 respuestas
- 1.1k visitas
-
-
Hola a todos, estoy realizando una macro, tengo una base general, y otra separada por cliente, la idea es buscar la informacion de cada cliente en la base general y llevarla a la base por cliente, pero si el nombre del cliente se repite, ¿como hago para que cada vez me lleve la ultima informacion sin quitar la que dias anteriores se puso? Macro BPA.txt
-
0
Reacciones de usuarios
- 3 respuestas
- 1.1k visitas
-
-
Buenas tardes amigos alguien me podría ayudar Quiero ver para modificar sus datos bancarios las columna no son consecutivasy solo quiero cargar las columnas A, B, K, y L Libro de Clientes.xlsm
-
0
Reacciones de usuarios
- 5 respuestas
- 1.1k visitas
-
-
¡Hola a todos y gracias por pasar aquí! Los valores que se encuentran en celda “DE2” de la hoja BASE, se desea hacer un filtro avanzado con un rango dinámico pues el que realice presenta errores. Al digitar en toda la columna resaltada en amarillo (hoja: Informes de Analisis y Decision celdas P2:P5) los valores de ANALIZADO, APLAZADO, APROBADO, EN ANALISIS, RECHAZADO y SIN DOC. (Que son todos los valores de la columna ESTATUS de la hoja BASE). En algunos casos hace el filtro pero en otros no, motivo por el cual estoy solicitando ayuda en este foro. El fin de esta macro es que se complemente con otra macro (esta macro no presenta errores aparentemente pero la cual adjunt…
-
0
Reacciones de usuarios
- 2 respuestas
- 1.1k visitas
-
-
Me gustaría saber como guardar la información en un nombre predefinido anteriormente en excel. Quiero que cuando de clic en el botón del formulario tome la información de un cuadro de texto y me la guarde en un nombre. Ejemplo: Asunto: Revisión de documento Excel: en administrador de nombres tengo creado uno que se llama asunto. En el formulario VBA hay una caja de texto y un boton, al digitar el nombre en el cuadro de texto y dar clic en el botón aceptar quiero que quede grabado esa información en el nombre predefinido asunto de excel. TextBox1.value?? = asunto??? textbox1.text?? = asunto?? Agradezco su colaboración
-
0
Reacciones de usuarios
- 1 respuesta
- 1.1k visitas
-
-
Buenas tardes. me acabo de dar de alta en el foro porque llevo días para solventar un problema con el que me he encontrado y ya no se que mas probar. Tengo un xls con un formulario en el que el usuario selecciona una serie de sociedades y ejecuta una macro que lo que hace es un save as de una plantilla tantas veces como sociedades ha seleccionado el usuario. Esto estaba en office 2007 y siempre ha funcionado, sin embargo al instalar office 2013 no funciona siempre, por ejemplo, si ha seleccionado 8 sociedades, ha guardado la plantilla 5 veces, esto es, sin ninguna lógica y coherencia a veces no hace el saveas. Si ejecuto el código paso a paso, aparentemente lo hace bi…
-
0
Reacciones de usuarios
- 4 respuestas
- 1.1k visitas
-
-
Buenos días, Antes de nada decir que de Visual Basic no sé absolutamente nada. Gracias a tutoriales he conseguido crear un archivo con varias formas que unidas representan el mapa de España por Comunidades Autónomas. La idea es que en función de una escala de valores, las Comunidades salgan rellenas de un color u otro. He conseguido hacer esto utilizando los colores más básicos, pero lo quiero hacer con degradados de azules, verdes o cualquier otro color y ahí viene el problema. Cuando sobrepaso el número 80 de color en la formulación me da error. Os subo el archivo para que lo podáis ver (debido al peso del archivo no me deja subirlo). Pego aquí la macro y…
-
0
Reacciones de usuarios
- 4 respuestas
- 1.1k visitas
-
-
Hola a ver si me podeis ayudar... os cuento: en la hoja1 tengo que poner valores en las celdas (de la E14 a la E28) y quiero que en la hoja1 se me vayan acumulando los valores en las mismas celdas. ahora tengo esto: Private Sub Worksheet_Change(ByVal Target As Excel.Range) If Target.Address = "$E$14" Then [Hoja1!E14] = [Hoja1!E14] + Target End Sub Pero no se como hacer para el resto de celdas. Gracias de antemano!!!
-
0
Reacciones de usuarios
- 2 respuestas
- 1.1k visitas
-
-
Hola a todos, necesito de su valiosa ayuda, tengo una macro que corre dentro de Private Sub Worksheet_SelectionChange(ByVal Target As Range) la cual es la siguiente: If Target.Address = "$AQ$3" Then Call ABRE If Target.Address = "$AQ$4" Then Call ABRE If Target.Address = "$AQ$5" Then Call ABRE If Target.Address = "$AQ$6" Then Call ABRE If Target.Address = "$AQ$7" Then Call ABRE .... Al final el rango arriba descrito termina filtrado y lo que necesito es que analice si la fila AQ3 esta visible y si es asi ejecute la macro abre() y si no tiene la propiedad visible no ejecute la macro y en ambos casos haga el recorrido automatico osea bajarse a la siguiente fila. Gra…
-
0
Reacciones de usuarios
- 0 respuestas
- 1.1k visitas
-
-
buenas, estoy tratando de reducir el tamaño del siguiente código If InStr(1, c, "Out") Or InStr(1, c, "out") Then c.Value = "NS" Else c.Value = c.Value If InStr(1, c.Offset(0, 1), "Out") Or InStr(1, c.Offset(0, 1), "out") Then c.Offset(0, 1).Value = "NS" Else c.Offset(0, 1).Value = c.Offset(0, 1).Value If InStr(1, c.Offset(0, 2), "Out") Or InStr(1, c.Offset(0, 2), "out") Then c.Offset(0, 2).Value = "NS" Else c.Offset(0, 2).Value = c.Offset(0, 2).Value If InStr(1, c.Offset(0, 3), "Out") Or InStr(1, c.Offset(0, 3), "out") Then c.Offset(0, 3).Value = "NS" Else c.Offset(0, 3).Value = c.Offset(0, 3).Value básicamente es reemplazar texto de una ce…
-
0
Reacciones de usuarios
- 3 respuestas
- 1.1k visitas
-
-
Buenos días: Ante todo saludados y agradeceros lo que, poco a poco he ido aprendiendo en este foro, aunque de forma anónima, Este es mi primer post y entro preguntando y con una consulta ya que me encuentro atascado en una hoja y no se como solucionar mi problema, os cuento: Tengo una hoja en la que dependiendo de la categoría profesional que se le ponga, permite poner dietas o no. La Categoría se coge de una lista desplegable y la celda dietas tiene una validación de datos personalizada con formula que "mira" en una celda que número hay, el número viene de una función "O" que analiza anteriormente las categorías que se han introducido y solo muestra "VERDADERO" si s…
-
0
Reacciones de usuarios
- 9 respuestas
- 1.1k visitas
-
-
Buenas y salu2. Tengo un pequeño problema y no se cómo afrontarlo. El caso es que en un directorio tengo varios archivos (unos doscientos) que se descargan de la web y esta les pone un nombre bastante largo separando una primera parte del resto de caracteres del nombre mediante uno varios guiones bajos "_" ejemplo "nombre de fichero_13568_administ_trade.xls" . Bien, lo que necesito hacer es renombrar masivamente estos archivos de tal forma que me borre todo lo que hay a la derecha del "_", incluido el propio "_", dejando la misma extensión para terminar quedando así "nombre de fichero.xls".. A veces no son guiones bajos y sí otros caracteres separadores, como guiones medi…
-
0
Reacciones de usuarios
- 1 respuesta
- 1.1k visitas
-
-
hola todos tengo una duda, tengo un calendario en un userform llamado FmCalendario y logro ingresa r la fecha presionando doble click en un textbox del userform llamado FmJornada y que ponga la fecha, con estos codigos este es del textbox Private Sub TextFeJornada_DblClick(ByVal Cancel As MSForms.ReturnBoolean) FmCalendario.Show End Sub[/CODE] este es del calendario [CODE]Private Sub Calendar_Click() FmJornada.TextFeJornada = Calendar.Value Unload FmCalendario End Sub[/CODE] ahora lo que quisiera hacer es que el calendario se pueda usar para diferentes formularios, es decir, tengo tres formularios y en los tres se necesita fecha, asi que me gustaria p…
-
0
Reacciones de usuarios
- 4 respuestas
- 1.1k visitas
-
-
tengo una pequeña interfaz que al dar inicio me abre unas opciones, cuando entro a la opcion centralizado me da 3 opciones, al entrar a cualquiera de ellas me envia a una tabla de selección. lo que deseo es que no se me abra un userform2 quiero que esa tabla se me abra en la pestaña 8 donde dice controladores y que la tabla que tengo al lado derecho de la hoja 1 de exel me quede en la hoja 2... le agradezco al que me ayude por que no e podido realizar este paso. adjunto el programita que estoy realizando perdon por lo feo que esta pero hasta ahora lo estoy realizando http://www.4shared.com/file/qDNq5mC4...nta_exel.html? herramienta_exel.part2.rar herramienta_exel.part1…
-
0
Reacciones de usuarios
- 7 respuestas
- 1.1k 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.