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: Estoy intentando manejarme con las macros.. y bueno he conseguido por ahí algún código semejante a lo que quiero hacer pero con el problema de no entenderlo en su totalidad, a la hora de buscar información me cuesta mucho, eso si lo consigo (puede que sea por torpeza) averiguar qué significa el código y quería preguntar si existe en algún sitio alguna especie de guía o referencia para los distintos objetos, métodos, etc.. donde quede reflejado su uso y significado de sus parámetros. Pongo un ejemplo de lo que no he sido capaz de encontrar en el siguiente código: With ActiveSheet.QueryTables.Add( _ Connection:="TEXT;" & sPath, _ …
-
0
Reacciones de usuarios
- 2 respuestas
- 1.3k visitas
-
-
Hola! Necesito una macro para ajustar celdas combinadas de manera automatica. Ojala me puedan ayudar. Adjunto un archivo con lo que necesito. La informacion es ingresada a las celdas combinadas desde un formulario. pero al abrir el archivo no logro ver toda la informacion ya que la informacion ingresada tiene varias lineas. Gracias de antemano. Ajustar_Celdas_Combinadas.rar
-
0
Reacciones de usuarios
- 2 respuestas
- 1.3k visitas
-
-
Hola otra vez, hace poco pedí ayuda con un botón para que saliese un cuadro de búsqueda e inserción en un rango y me fue bien, pero ahora lo que quiero es ampliar ese rango y no lo consigo. Cambio un dato al código y no hay manera. Ahora me muestra el rango A4:K y quiero que me muestre A4:Q. El cambio lo aplico al texto en color rojo: Private Sub UserForm_Initialize() Set Calculadora = Sheets("Calculadora") Set Pantones = Sheets("PANTONES") K2.RowSource = "PANTONES!" & Pantones.Range("A4:K" & Pantones.Range("A" & Rows.Count).End(xlUp).Row).Address Texto_Change Texto.SetFocus End Sub El archivo que adjunté la otra vez lo he sobreescrito por lo que no p…
-
0
Reacciones de usuarios
- 10 respuestas
- 1.3k visitas
-
-
Hola, tengo un problema al momento de ejecutar una macro que cree un tabla dinamica, en diferentes computadoras. el codigo es el siguiente: Sub Macro1() Dim WSD As Excel.Worksheet Dim WSI As Excel.Worksheet Dim PTCache As PivotCache Dim PT As PivotTable Dim PRange As Range Dim FinalRow As Long, FinalCol As Long Set WSD = Worksheets("Origen") Set WSI = Worksheets("Indicadores") ' Eliminar cada Tabla Dinamica existente en la Hoja---- For Each PT In WSI.PivotTables PT.TableRange2.Clear Next PT '========================================================================================…
-
0
Reacciones de usuarios
- 1 respuesta
- 1.3k visitas
-
-
Buenos días; Tengo un pequeño problema con la macro que estoy haciendo, quien me puede ayudar??. La macro lo que hace es mandar un correo electrónico cuando la celda B contigua a la celda C en la que se está escribiendo contiene texto. Este paso le hace bien, el problema es que antes de mandar el correo hago un filtro en la columna E, al filtrar me salta un mensaje antes de mandar el correo diciendo “ esta hoja de calculo contiene filas o columnas ocultas que el destinatario puede mostrar. ¿ desea continuar ?”, como podría quitar este mensaje para que enviara el correo directamente sin tener que aceptar nada. Gracias y un saludo,
-
0
Reacciones de usuarios
- 1 respuesta
- 1.3k visitas
-
-
Buenas tardes. He estado mirando y habría un libro que podría servirme de referencia (optimizacion rev4. xlsm - de aprovechamiento de barras), pero no llego al nivel de vba tan alto... Necesito algo para aprovechar paneles de 11,90ml, con límite de resto mínimo variable, y que luego me de aproximaciones por módulos también variables (son 2 tipo de material: 1 con resto mínimo de 3m y facturación cada 0'50m y mínimo 3m, y el otro material con resto mínimo de 3'15m, facturación cada 0'35m y mínimo 3'15m) Necesito el aprovechamiento máximo de cada panel y lo que tendría que facturar, y número de paneles a usar. En general suele ser para como mucho 10 medidas difere…
-
0
Reacciones de usuarios
- 5 respuestas
- 1.3k visitas
-
-
La macro es la siguiente: Sub Envio() ' ' Envio Macro ' Envio de hoja con datos variables ' archivo = "C:\Consorcios\Aviso.xls" Workbooks.Open archivo For i = 5 To 7 Workbooks("HojaInformativacopia.xls").Activate periodo = Cells(1, "L") nombre = Cells(i, "E") importe = Cells(i, "J") deuda = Cells(i, "Q") Total = Cells(i, "O") direccion = Cells(i, "S") Workbooks("Aviso.xls").Activate Range("D9").Value = nombre Range("I9").Value = importe Range("I10").Value = deuda Range("I11").Value = Total Workbooks("HojaInformativacopia.xls").Activate Workbooks("Aviso.xls").SendMail direccion Next Workbooks("…
-
0
Reacciones de usuarios
- 2 respuestas
- 1.3k visitas
-
-
Hola, es mi primer pregunta en este sitio web, pero he leído muchas respuestas que me han ayudado a aprender mucho. Tengo un formulario que almacena datos de unos usuarios, y necesito que se mediante un botón se pueda tomar una foto (donde una web cam y también de otros dispositivos) y la guarde en el disco. Estoy trabajando en un formulario creado en excel y uso vba para la programación. Muchas gracias por adelantado.
-
0
Reacciones de usuarios
- 1 respuesta
- 1.3k visitas
-
-
Hola amigos Os cuento, con el fin de agilizar un poco mi trabajo, he creado un libro para asignar codigos de datos en diversas hojas, abajo os dejo el ejemplo. Dentro del libro hay una combobox con el título de posición que carga una serie de datos en la Columna A de la hoja 1, y una serie de botones para copiar estos codigos en las hojas 2 y 3 respectivamente. sin embargo me he quedado estancado en los siguientes puntos: -Al pulsar el botón escribir, eliminar dato de la combobox "posición" Me gustaría poder eliminar los datos según se añadan para evitar equivocaciones con datos repetidos -Cargar en las combobox de hojas todos los datos a partir de la palabra "Rec…
-
0
Reacciones de usuarios
- 0 respuestas
- 1.3k visitas
-
-
Buenos días a todos; -Llevo un buen rato a vueltas con un error y no consigo saber donde me estoy equivocando. Me explico un poco: Tengo un formulario creado con una serie de textbox y unos botones de desplazamiento para mostrar los registros. Para mostrar los registros hago una consulta a una BD de Access y por medio de la consulta me los devuelve a los textbox. ¿Lo que no sé es porque no me respeta los campos vacíos?. Adjunto macro de ejemplo. Saludos gracias anticipadas . Consulta.zip
-
0
Reacciones de usuarios
- 3 respuestas
- 1.3k visitas
-
-
Hola a todos. Con la siguiente problemática en el adjunto se encuentra una relación con indices de inflación. las cuales necesito para todos mis archivos, ya que son indices que utilizo con mucha frecuencia. Ya que siempre necesito el indice de determinado año y de determinado mes. Esto lo determino con la función buscarv hasta ahora, pero ahora este archivo va a estar disponible para muchas personas las cuales muchas manejan el excel a nivel básico. Lo que necesito es mediante un listbox en un userform me muestre los indices y también un botón para que el indice seleccionado me lo pega en cualquier celda. Espero haber sido claro de antemano muchas gracias. Indices_…
-
0
Reacciones de usuarios
- 5 respuestas
- 1.3k visitas
-
-
Al ejecutar esta macro sobre los datos de la hoja1 funciona perfectamente, sinembargo requiero modificar la coneccion o asignacion de variables deforma que al convertir los datos de la Hoja1 en una Tabla Ver Hoja"TABLA" a la que denomino por el administrador de nombres "TDatos" sea posible ejecutar la misma consulta. anexo la consulta inicial sobre los datos de la hoja1 que entrega el resultado en la hoja2 " Sub ConectarExcel()" y abajo la correspondiente sobre los datos en la hojaTabla en la que el mensaje es que no encuentra el objeto "TDatos". el archivo es Xls dado que no pude subir el xlsm Gracias Sub ConectarExcel() Dim Conexión As Object, rs As Object Set Conex…
-
0
Reacciones de usuarios
- 6 respuestas
- 1.3k visitas
-
-
Hola!! Tengo un problema y quisiera ver si alguien me apoya, la cuestión esta así: Necesito conectarme a una bd SQL Server desde excel y despues de hacerlo correr una consulta sql para que los datos me los copie a cualquier hoja del archivo, el query SQL ya lo tengo, pero no tengo idea de como hacer que excel se conecte al servidor de base de datos. Ya logrado eso necesito automatizarlo un poco, ya que quisiera que al abrir el archivo de excel este pida usuario, contraseña y BD a la que se necesita conectar y utilizar estos tres datos(usuario, contraseña y BD) para correr el query de SQL, ya que son varias bases de datos y quisiera utilizar el mismo archivo para conect…
-
0
Reacciones de usuarios
- 4 respuestas
- 1.3k visitas
-
-
Hola, les comento mi inconveniente, tengo una tabla con 11 columnas, la cual estoy filtrando mediante un textbox con macro, pero cuando quiero filtrar una segunda columna manteniendo el filtro en la primera, este último se borra, osea que no puedo tener las 2 columnas filtradas al mismo tiempo, aclaro que no tengo conocimiento en macros, solo adapté mi hoja a un ejemplo que vi en la web, el codigo que uso en el text box es este: Private Sub TextBox1_Change() Application.ScreenUpdating = False With Range("AH1").CurrentRegion filas = .Rows.Count col = .Columns.Count End With Set CLIENTE = Range("D2").Resize(filas, col) With CLIENTE .Au…
-
0
Reacciones de usuarios
- 5 respuestas
- 1.3k visitas
-
-
Estimados, Logre hacer un código para poder agrupar mis datos, pero solo lo he conseguido realizar para la columna : "J" Y lo que no he podido realizar es colocar un Activecell.offset, para que me identifique la columna anterior, y vuelva a correr la formula. En caso haya una forma más abreviada para mi macro seria de gran ayuda. Adjunto el archivo con la macro realizada. CORRER COLUMNAS A LA IZQUIERDA.zip
-
0
Reacciones de usuarios
- 1 respuesta
- 1.3k visitas
-
-
Buenos días: Supongamos que tenemos un UserForm que contiene 1 TextBox y 5 botones (CommandBottom 1, 2, 3, 4 y 5). Mi pregunta: ¿Sería posible una macro que al apretar en cualquiera de los 5 botones me copiase en el TextBox el valor de una propiedad (Por ejemplo: Caption) de dicho botón, pero sin generar un código VBA para cada botón? es decir, una macro genérica que reconozca el botón presionado y copie una propiedad definida en dicha macro. Un saludo. Macro inteligente.xls
-
0
Reacciones de usuarios
- 2 respuestas
- 1.3k visitas
-
-
En un archivo de excel se tienen unos registros de barcos que hacen maniobras en un puerto marítimo, dichas maniobras son asistidas por personas, se requiere en una celda llevar un conteo consecutivo automático de cada maniobra que corresponda a cada persona en el lapso de un mes, al finalizar el mes se reinicia el conteo nuevamente, cada una de estas maniobras tiene una duración en tiempo, es decir, por ejemplo inicia a las 12:00 y puede finalizar a las 13:10. Me permito contextualizar la consulta: por ejemplo iniciando el mes, se registra una maniobra con una persona, a esa persona en la celda del conteo le corresponde el 1, si se registra otra persona a esa le correspo…
-
0
Reacciones de usuarios
- 1 respuesta
- 1.3k visitas
-
-
hola a todos.Amablemente les pido me compartan de su conocimiento en esta macro. En la macro que elabore intento llevar un inventario para el manejo de archivo;como se daran cuenta en la la hoja llamada carpeta se hace diligencia de los datos que se desean guardar en diferentes campos de la hoja caja e inventario cuando se de click en el boton guardar. como podaran apreciar esta macro hace la tarea de enviar los datos a las hojas coresnpondientes pero no limpea el los datos al momento de guaradar si se desea ingresar otro registro ni tampoco registra los datos de manera ordenada como se desea (que los enliste uno debajo del otro en ambas hojas). Ademas es muy lenta ya …
-
0
Reacciones de usuarios
- 0 respuestas
- 1.3k visitas
-
-
buenos días, alguien me puede colaborar, necesito copiar mediante una macro usa serie de códigos consecutivos que se encuentran en una hoja y pecarlos en la siguiente hoja en la ultima fila utilizada o donde la seleccione. anexo archivo y de antemano agradezco sus aportes. EJEMPLO COPIAR.xls
-
0
Reacciones de usuarios
- 8 respuestas
- 1.3k visitas
-
-
Buenos días a todos, explico brevemente mi problema: Estoy intentando copiar las datos (solo los datos) de una celda (que contiene una fórmula Condicional) concreta de la Hoja "Tesorería" y pegarlo como un valor en la Hoja "Saldos Banco" en una celda concreta. No se exactamente cual es el código que hay que poner para hacerlo, paso el código de la macro a ver si me podéis ayudar con el problema. Sub CopiarDiciembre2021() 'Desactivar eventos pantalla Application.ScreenUpdating = False 'Importe INGRESO (Pagos BANCO) '.... Sheets("Tesorería").Activate '.... i = 8 'comienzo el bucle For i = 8 To 8 'compruebo que el valor…
-
0
Reacciones de usuarios
- 6 respuestas
- 1.3k visitas
-
-
Hola Estimados Amigos Foristas!!!tengo un archivo en donde Necesito ordenar los Nombres de la Columna B de la hoja (1) del rango B5:B44; En orden numérico de menor a mayor con una macro o ya sea con alguna Formula en el archivo pongo el ejemplo en como debe de quedar..les agradezco por su ayuda... PRO. PRUEBA.xlsm
-
0
Reacciones de usuarios
- 1 respuesta
- 1.3k visitas
-
-
Hola amigos, De nuevo acudo a ustedes para resolver un problema que me lleva atrancado, despues de muchas pruebas, tengo un formulario para buscar, si le pongo el nombre de la hoja a buscar funca perfecto, el problema lo tengo cuando la hoja la selecciono por medio de un combo, hay se me complica, le agradeceria toda la ayuda que me puedan prestar Saludos cordiales Prueba.xlsm
-
0
Reacciones de usuarios
- 10 respuestas
- 1.3k visitas
- 1 seguidor
-
-
Buena tarde, estimados tengo el siguiente código el cual tiene dos recordsets, el primero corre sin problemas ya que llena las tablas temporales y ejecuta el SP, el problema que tengo es que en la clausula Where del segundo recordset necesito utilizar la variable que declaro en el primer recordset. alguno tiene idea de como se hace esto. Gracias Cells.Clear Dim oConn1 As ADODB.Connection Dim rs1 As ADODB.Recordset Dim rs2 As ADODB.Recordset Set oConn1 = New ADODB.Connection oConn1.ConnectionString = "Provider=SQLOLEDB.1;Password=" & Contraseña.Text & ";Persist Security Info=True;User ID= " & Usuario.Text & "; Initial Catalog =" …
-
0
Reacciones de usuarios
- 0 respuestas
- 1.3k visitas
-
-
Hola buenos días! Primero que nada quiero agradecer por la ayuda que he recibido en este foro, me ha sido muy útil, y me ha hecho llegar a un archivo de ordenes de compra que me ha servido mucho en el trabajo. Mi problema es el siguiente, anteriormente solo había una persona en el área de compras, pero ahora van a ser dos, y necesito que el archivo que adjunto pueda ser modificado por las dos personas (si es posible al mismo tiempo), y que se guarden los datos que las dos generen. Básicamente en mi archivo hay una hoja donde se captura la orden de compra, a la hora de generarla, le asigna automáticamente el número de orden, checándolo en otra hoja llamada índice donde …
-
0
Reacciones de usuarios
- 2 respuestas
- 1.3k visitas
-
-
Hola a todos, soy novata programando con VBA, por favor me pueden ayudar? Sub Captura_Datos6() Sheets("Reporte-DR").Select Range("A9").EntireRow.Insert (Me salta error acá) Sheets("DRENAJE DE COMPRESORES").Select Range("C9").Copy Sheets("Reporte-DR").Select Range("A9").PasteSpecial xlPasteValues Sheets("DRENAJE DE COMPRESORES").Select
-
0
Reacciones de usuarios
- 0 respuestas
- 1.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.