Saltar al contenido

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?

  1. Buenos días. Tengo un problemita con una macro y esperaba me pudieran ayudar. necesito un codigo para que no me permita continuar con los pasos de la macro hasta que se cumpla una condición (que dos celdas contengan un texto especifico o diferente a un texto especifico) anexo un ejemplo y espero me puedan ayudar. de antemano muchas gracias Libro2.zip

    • 0

      Reacciones de usuarios

    • 1 respuesta
    • 1.5k visitas
  2. Buenas amigos foristas Tengo una macro la cual toma los datos de una hoja y con eso se llena una base de datos de una aplicacion que tenemos, en la actualidad coloco For i = 4 To 8 session.findById("wnd[1]/usr/cmbRF02D-KTOKD").Key = objSheet.Cells(i, 35) session.findById("wnd[1]/usr/ctxtRF02D-BUKRS").Text = objSheet.Cells(i, 36) Next i Lo que deseo es que en la macro si existe informacion en la fila siguiente ejecuta el proceso sino pare Agrdezco su colaboracion Fernando Trujillo

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 818 visitas
  3. Started by Pedro Maias,

    Os aporto esta clasificación de equipos de la cual se puede adaptar, esta casi echa en vba para evitar el borrado, si alguien la quiere modificar, mejorar, u otra cosa que lo haga Resultados y Clasificacion.xlsm

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 763 visitas
  4. Maestros excelente día. Por favor me podrían ayudar con una macro para traer la información de otra hoja que tenga un formulario. Ejemplo: Dar clic en la Celda N:2 de la Hoja TAB, a qui debe salir mediante formulario la información que está en la Hoja Insumos celdas D3:E10 Es únicamente informativa, sin calculo. El formulario debe ser como el siguiente: Adicional, en el caso de que tenga que utilizar esta macro para cambiar celdas hojas añadir otra, me podría indicar en que parte de la macro debería cambiar. Quedo pendiente a cualquier consulta y agradezco por compartir sus conocimientos. Gracias.

    • 0

      Reacciones de usuarios

    • 8 respuestas
    • 849 visitas
    • 1 seguidor
  5. Started by Arkngel09,

    Quisera el apoyo de ustedes, para realizar un formato de cobro de llamadas telefonicas en el cual lo que se plasme en la hoja base de datos igual salga en la hoja que dice recibos, asi mismo que cuando la persona marque con una x en la celda que dice si aplica o no, se descuenten esos pagos, ya no tuve ma,s me quede estancado debido a que soy intermedio en excel esperando su apoyo y conocimientos me pudieran ayudar porfavor. Adjunto archivo hasta donde quedo mi idea de antemano gracias. LLAMADAS LARGA DISTANCIA 2.xls

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 1k visitas
  6. Gusto de saludarles, me podrian apoyar quisiera tener el codigo para un commandbutton para que a la hora de terminar de ingresar los datos del formulario automaticamente el caiga a la siguiente linea osea si el formulario termina de ingresar en la columna m y linea 976 automaticamente cuando se le da insertar o aceptar siga el a la columna a y linea 977 y de ahi sucesivamente....Mil gracias por el apoyossaludos desde guatemalaESTE ES EL ARCHIVO QUE LE MENSIONE COMO PODRAN OBSERVAR HAY UN USER FROM (ALT F11) Y SAL EJECUTARLO Y TERMINAR DE INGREAR LOS DATOS DEL FORMULARIO YA NO PASA DE AHI QUISIERA QUE SIGUIERA EN LA SIGUIENTE LINEA ME PUEDEN AYUDAR ? GRACIAShttp://www.fil…

    • 0

      Reacciones de usuarios

    • 5 respuestas
    • 999 visitas
  7. Started by mcontinuo,

    Hola Querria crear una web con archivos de excel hechos por mi totalmente gratis para que la gente se las pueda descargar . El problema es que para financiar el proyecto quisiera incluir publicidad dentro de los archivos excel . mi pregunta es si se puede de alguna forma con macros o como sea incluir en el excel publicidad de Adsense o de otra empresa de publicidad similar El codigo que te dan en Adsense es HTML para que lo pongas en la web y es del estilo( este codigo en concreto no funciona): <script type="text/javascript"><!-- google_ad_client = "ca-pub-585185562854944"; /* Enlaces */ google_ad_slot = "5843165204"; google_ad_width = 728; google_ad_…

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 616 visitas
  8. Buenas tardes tengo una base de datos y deseo que se visualize el ultimo codigo al momento de guardar la info, sabiendo que el tipo de dato en la base de datos es nvarchar como hago para que sea asi: Fact-0001,Fact -0002,Fact -0003,etc etc Set rst = New ADODB.Recordset rst.ActiveConnection = con rst.Source = "Select Max(Codigo_nota) As Maximo From Tabla" rst.Open If rst.Fields(0) > 0 Then For i = 1 To rst.Fields("Maximo") + 1 Next endif con.Close If Not rst Is Nothing Then Set rst = Nothing If Not con Is Nothing Then Set con = Nothing

    • 0

      Reacciones de usuarios

    • 9 respuestas
    • 6.8k visitas
  9. Started by matt43,

    Hola. Después de dolores de cabeza intentando ajustar el código, siguiendo ejemplos de este foro, me doy por vencido y les pido ayuda. Tengo el archivo adjunto que mediante un userform se alimenta una base de datos. Quiero que el botón de buscar me haga eso en otra hoja, y que, además, tan solo me muestre: - ID Socio - Temp Alta - Fecha de Alta - Nombre - Apellidos - DNI todos esos datos están ubicados en otra hoja, simplemente que al realizar la búsqueda mediante el DNI, me salgan esos datos en el listbox. De ser posible, que si introdiciendo el nombre, apellidos o DNI me salgan tambien esos datos, sería genial. Además, tampoco logro implementar el boton para re…

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 1.1k visitas
  10. Started by juanigto,

    Estimados Amigos: La verdad es que estuve buscando bastante, pero no encuentro ni se me ocurre como resolver mi problema. Quiero concatenar dos columnas ( La A y la C) y que me arroje el resultado en la B. El codigo que estuve probando fue : Sub Contar() On Error Resume Next Dim base As Byte Dim i As Byte base = Range("Contar").Count 'Contar es el rango dinamico que estoy utilizando , en este caso sería la ultima fila' For i = 2 To base Cells(i, 2) = Cells("Ai") & Cells("Ci") Next i End Sub Desde ya si a alguien se le ocurre algo les agradezco mucho! …

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 764 visitas
  11. Started by Kcos,

    Buenas Tardes, antes que nada quiero agradecer la ayuda que dan en este foro. Les dejo mi archivo para que puedan ver mi consulta. Hace un tiempo hice una agenda que cargaba datos y los buscaba. entonces se me ocurrió adaptar ese archivo a un sistema de facturación, donde cargo los datos del cliente, y los datos de los productos, luego busco la info en la tabla, y con eso hago la factura. ahora, cuando quise copiar lo mismo para cargar los productos, se empiezan a cargar en una celda que no es la que quiero, y el numero de registro es siempre 0 en vez de ir sumando 1 por cada registro. Quiero que la carga de productos empiece en la celda L11, y el numero de registro en …

    • 0

      Reacciones de usuarios

    • 1 respuesta
    • 757 visitas
  12. Started by jhon fredy,

    hola expertos me pueden por favor colaborar con los siguientes dos codigostengo un rango de datos numericos que van desde "a1:sx42" pero hay varias celdas vacias y necesito agrupar todos esos datos en una columna en mi caso "ut"y el segundo codigo seria que elimine las celdas vacias de la columna utle agradezco que los codigos sean lo mas rapido posible al ejecutarse

    • 0

      Reacciones de usuarios

    • 5 respuestas
    • 1.5k visitas
    • 1 seguidor
  13. Muy Buenos días. Soy nuevo en esto de los foros y aunque me he pasado los últimos 5 días revisando los temas ya planteados con anterioridad, no he logrado que un par de códigos funcionen, incluso los he comparado con algunos códigos propuestos en este foro. Ya no se que cambiarle o que estoy haciendo mal. La situación es esta: Tengo dos hojas de excel que son bases de datos, para la captura de la información en dichas hojas elabore sus respectivos formularios con 2 botones de comando (Agregar y Cerrar) sin embargo requiero otros botones que me permiten buscar, modificar y eliminar los registros ya ingresados. Esto último es en donde me encuentro entrampado. Anexo mi…

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 1.5k visitas
  14. Started by pixel04,

    necesito su ayuda *******...tengo un pequeño problema con el siguiente codigo: Private Sub CommandButton1_Click() Dim i As Integer Dim final As Integer For i = 1 To 1000 If Hoja2.Cells(i, 1) = "" Then final = i Exit For End If Next Hoja3.Cells(final + 1, 1).Offset(3, 0) = UserForm4.TextBox1 Hoja3.Cells(final + 1, 3).Offset(3, 0) = UserForm4.TextBox2 Hoja3.Cells(final + 1, 4).Offset(3, 0) = UserForm4.TextBox3 Hoja3.Cells(final + 1, 5).Offset(3, 0) = UserForm4.TextBox4 Hoja3.Cells(final + 1, 6).Offset(3, 0) = UserForm4.TextBox5 UserForm4.TextBox1 = "" UserForm4.TextBox2 = "" UserForm4.TextBox3 = "" UserForm4.TextBox4 = "" UserForm4.TextBox5 = "" UserForm…

    • 0

      Reacciones de usuarios

    • 1 respuesta
    • 1.3k visitas
  15. Started by viejo,

    expertos perdonen mi ignorancia pero tengo una inquietud y ojala puedan resolvérmela y es que he visto como existen macros que generan un numero consecutivo que va enumerando las filas de acuerdo al criterio que le pongan para iniciar, pero mi pregunta es que pasa con esos códigos que llegan al limite de filas en algunos casos 65536 y otros 1 048 576 ¿Cómo genero un código para que al llegar al tope se brinque a la siguiente columna a seguir con la numeración dado que el numero de filas ya se acabó?. Saludos Private Sub UserForm_Initialize() Worksheets("DB").Activate Range("a2").Select If ActiveCell = Empty Then id= 1 Else Range("…

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 3.3k visitas
  16. Started by JoaoM,

    este código lo tengo en formulario pero quiero tenerlo en un Modulo para no estar repitiendo código en 4 formularios pero; '>------------------------------------------------------< Dim lStyle As Long, hMenu As Long, mhWndForm As Long mhWndForm = FindWindow("ThunderDFrame", [COLOR="#FF0000"][B]Me[/B][/COLOR].Caption) lStyle = GetWindowLong(mhWndForm, -16) lStyle = lStyle And Not &HC00000 SetWindowLong mhWndForm, -16, lStyle DrawMenuBar mhWndForm [COLOR="#FF0000"][B]Me[/B][/COLOR].Height = [COLOR="#FF0000"][B]Me[/B][/COLOR].Height - 18 '>------------------------------------------------------<[/CODE] En el modulo …

    • 0

      Reacciones de usuarios

    • 3 respuestas
    • 1.1k visitas
  17. Started by sergioh,

    Buenas, necesito de su ayuda con un tema, tengo un excel con un formulario que introduce datos en una hoja, he creado otro formulario con tres campos y quiero que al pulsar un boton me genere un archivo excel con solo los datos que reunen los datos del formulario y se renombre con una concanetacion de de los datos de las casillas introducidas en el formulario. Muchas gracias de antemano. Mecanizacion Central.rar

    • 0

      Reacciones de usuarios

    • 4 respuestas
    • 980 visitas
  18. Hola a todos, tengo una macro que inserta imágenes la cual me funciona excelente, lo que hace es que en la columna B tengo el nombre de un modelo y si existe pone la imagen en la columna A que la jala de una carpeta y cuando no exista la imagen se salta a la que sigue. La duda que tengo es cómo decirle a la macro que cuando no exista la imagen no se salte a la que sigue sino que me ponga una imagen titulada "no hay imagen" que está dentro de la misma carpeta. Esta macro funciona con un On Error Resume Next. Cuál sería el código fuente para que en vez que se salte a la que sigue me ponga esa imagen llamada "no hay imagen"? Agradezco mucho su apoyo.

    • 0

      Reacciones de usuarios

    • 6 respuestas
    • 1.7k visitas
  19. Started by petercien1,

    Estimados Buenas Noches Acudo a uds una ves mas para solicitar de vuestra valiosa ayuda. Arme un codigo de la siguiente manera, me ayude de google para llegar a este: Sub AbrirWeb() Dim IE As Object Set IE = CreateObject("InternetExplorer.application") IE.Navigate "http://www.mercadopublico.cl/Portal/Modules/Site/Busquedas/BuscadorAvanzado.aspx?qs=1" Do DoEvents Loop Until IE.readystate = 4 IE.Document.getelementbyid("txtSearch").Value = "2239-14-LP14" IE.Document.getelementbyid("btnBusqueda").Click IE.Visible = True 'Posibilidad de obtener codigo fuente 'IE.Visible = False End Sub[/CODE] Este código me abre la pagina web, lo hago así porque deb…

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 1.8k visitas
  20. Started by enrux,

    hola .. compañeros Quisiera que me Ayudaran por favor con este codigo... sub impr() ImpresoraActual = Application.ActivePrinter ' With Application.Dialogs(xlDialogPrinterSetup) If .Show Then Sheets("Ajuste").PrintOut Copies:=1, Collate:=True End If End With Application.ActivePrinter = ImpresoraActual End Sub[/CODE] cuando voy a imprimir le doy configurar en la configuración de la impresora.. pongo papel manual o cualquier otra configuracion.. siempre me imprime con la bandeja principa.. Gracias chicos impresion cod.rar

    • 0

      Reacciones de usuarios

    • 3 respuestas
    • 755 visitas
  21. Started by Usu2013,

    Hola a todos. Mi primera participación en el foro es para solicitaros, como a la gran mayoría de los autodidactas y profanos en esta materia nos ocurre, ayuda sobre el código de Visual Basic para Excel 2010. Conseguí el siguiente código que imprime los datos de varios registros (filas) de una hoja. Funciona perfectamente pero encuentro un pequeño inconveniente: imprime siempre con la impresora establecida por defecto. Me indica cuántos registros se van a imprimir y sin darme más opciones los imprime directamente todos en la impresora habilitada por defecto. Agradecería muchísimo que alguien me dijera qué debo añadir y/o cambiar para que cuando ejecute la macro me apar…

    • 0

      Reacciones de usuarios

    • 4 respuestas
    • 1.6k visitas
  22. Started by Pirtrafilla,

    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
  23. Started by Alfonso5597,

    Hola estimados foreros, de nuevo con un problema, haber si alguien me puede colaborar a resolver, tengo este codigo, lo utilizo para pasar los datos del listbox a una hoja un dato encima de otro, el caso es que cuando le pulso al boton, me copia una fila y se bloquea el programa Les agradezco su ayuda Un cordial saludo Set h1 = Sheets("Creditos") u = h1.Range("A" & Rows.Count).End(xlUp).Row + 1 For i = 0 To ListBox1.ListCount - 1 h1.Cells(u, "A") = ListBox1.List(i, 0) 'Cantidad h1.Cells(u, "B") = ListBox1.List(i, 1) 'Unidad h1.Cells(u, "C") = ListBox1.List(i, 2) 'Descripción h1.Cells(u, "D") = ListBox1.List(i, 3) 'Factura …

    • 0

      Reacciones de usuarios

    • 20 respuestas
    • 2.7k visitas
    • 1 seguidor
  24. Started by YianTheJOP,

    Buenos días a todos, En la empresa tenemos una "Base de datos" con registros de personal, contratos, etc que se gestiona desde un formulario y funciona muy bien todo menos el botón EliminarBD que ejecuta el siguiente código. Private Sub btn_Eliminar_Click() Dim Ufila, ufilaD, i, j As Long Dim ht As Worksheet Dim hd As Worksheet Set ht = Hoja3 Set hd = Hoja8 If Me.txt_nic = "" Then Exit Sub If MsgBox("Seguro de eliminar TODOS los registros del item seleccionado?", vbQuestion + vbYesNo, "Borrar") = vbNo Then Exit Sub End If Ufila = ht.Range("A" & Rows.Count).E…

    • 0

      Reacciones de usuarios

    • 28 respuestas
    • 2.2k visitas
    • 2 seguidores
  25. Started by Chrispal1977,

    Hola estimados amigos de ayuda excel quisiera pedirles de favor me ayuden con el siguiente problema: Tengo en la celda a1 de la hoja 1 un texto que puede ser mas largo eso no importa, he colocado un botón con un código que al presionar separa el texto en varias líneas pero el problema es que sustituye el contenido de la celda a1 de la hoja 1, me interesaría que la celda a1 de la hoja 1 quede intacta con la información que se muestra inicialmente y más bien que al presionar el botón del formulario se pueda copiar el contenido a la hoja 2 ahí si me interesa que se separe en líneas como actualmente lo hace, el código trabaja, pero, lo que quiero es que NO sustituya el c…

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 725 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.