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. Hola buenos días amigos de Ayuda Excel, acudo nuevamente a ustedes para que me ayuden con esta macro. Muchas gracias La macro debe buscar los datos o valores indicados en la columna C de la hoja COLORES en la columna A de la hoja LISTADO GENERAL y una vez localizado, asignar el valor del precio ubicado en la columna F de la hoja COLORES en la columna I del respectivo dato y muy importante, que se actualice automáticamente cuando el valor del precio de la hoja COLORES varie. NOTA: En esta hoja COLORES se van añadiendo constantemente nuevos datos. EN CASO QUE NO ENCUENTRE EL PRODUCTO, DEBE ADVERTIRLO MEDIANTE UN MENSAJE BUSCAR DATO EN OTRA HOJA.xlsm

    • 0

      Reacciones de usuarios

    • 18 respuestas
    • 2k visitas
  2. Started by JuanP,

    Hola, me podéis ayudar con una macro para que muestre el numero de semana de una fecha, lo que he encontrado ha sido para sacar el número de semana en una hoja de Excel, para hacerlo desde una macro, el resultado que me está dando no es el correcto. Lo estoy aplicando a un gráfico, pero cuando pongo la primera semana (el resultado no es el correcto), no saca la segunda semana. Os dejo el archivo de ejemplo. Gracias. Semana numero.xlsm

    • 0

      Reacciones de usuarios

    • 6 respuestas
    • 2.3k visitas
    • 1 seguidor
  3. Started by pablo lage,

    Buenas; He estado googleando un par de dias con este tema y no doy con la solucion, a ver si a alguien se le ocurre algo por donde tirar... El tema va asi; (versión simplificada) tengo un string con un nombre de archivo, que puede ser de este estilo:(uno solo, pero no sé cual de ellos) A -TU2 - - Rev_0.pdf A -TU02 - - Rev_0.pdf A -TU 2 - - Rev_0.pdf A -TU-02 - - Rev_0.pdf por ejemplo. y necesito compararlo con el valor de una celda que contiene algo asi:(solo un valor claro, pero puede ser cualquiera de estos o similares) tu2 TU02 TU 02 TU-02 TU-2 Etc.... El caso es que para una persona es sim…

    • 0

      Reacciones de usuarios

    • 3 respuestas
    • 1.4k visitas
    • 1 seguidor
  4. Started by jhon fredy,

    buenas tardes expertos mi libro tiene un problema al ejecutar el codigo ordenarhoja2 me pasa los datos de la hoja 2 a la hoja 3 ordenadamente , hasta ahi esta bien y entiendo que en la hoja 2 hay varios numeros repetidos al pasarlo a la hoja 3 desaparecen pero ejecuto el codigo eliminar repetidos en la hoja 2 observo en la barra de excel de abajo que el recuento es diferente la cantidad entre las dos hojas a que se debe ese error ? Libro10.xlsm

    • 0

      Reacciones de usuarios

    • 3 respuestas
    • 735 visitas
  5. Started by jmzamora,

    Buenos días amigos, podrían ayudarme, tengo varias dudas: 1. Ando buscando pero no consigo hacerlo funcionar, al introducir datos en el campo buscar que me valla buscando en todas las columnas lo que valla escribiendo sobre la marcha (Las coincidencias que valla escribiendo). 2. Por otro lado ¿como enlazo dos combox?. En el campo alta a seleccionar un modelo por ejemplo C500 y que me seleccione en el combox de abajo el tipo 1 automáticamente. Muchas gracias de antemano por vuestras aportaciones, gracias y saludos para todos. Formulario.xlsm

    • 0

      Reacciones de usuarios

    • 1 respuesta
    • 610 visitas
  6. Started by jesuspg,

    Hola compañeros, Me preguntaba si existía la manera de modificar el tema de la cinta de opciones para que aparezca en color negro (u otro color) utilizando código VBA. Adjunto imagen para mayor aclaración... Ya sé que se puede realizar simplemente haciendo click desde "Archivo > Cuenta > Tema de Office..." Pero me preguntaba si se podía realizar desde el código VBA con algún método del objeto "Application" o algo así. La grabadora de macros además, no graba esta opción. Gracias por cualquier tipo de aporte. Un saludo.

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 715 visitas
  7. Buenos días compañeros, Me enfrento a un problema complejo con VBA, el cual estoy intentando resolver pero no consigo hallar la solución. Tengo la siguiente página web: https://www.metals4u.co.uk/materials/aluminium En la pestaña "Materials", se encuentran varios materiales como "Aluminium, Brass, Copper, ..." Si seleccionamos cualquiera de esos materiales (por ejemplo Aluminium) la pagina nos lleva a todas las formas disponibles de este material (Ver figura adjunta). Para ver las caracteristicas de una forma pulsamos en "Show Details", y la pagina nos lleva a una ventana como las caracteristicas de esa forma (Ver figura adjunta) En dicha …

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 2.6k visitas
  8. Started by jesuspg,

    Hola compañeros, Acabo de crear un formulario y no me reconoce las variables objeto declaradas en la zona de declaraciones... ' Zona de declaraciones Dim PRUEBAS As Worksheet Private Sub cbAceptar_Click() Set PRUEBAS = Sheets("Hoja1") Dim ultimaFila As Long ultimaFila = PRUEBAS.Range("A1048576").End(xlUp).Row ' Y por aquí el resto del código... end sub Me salta un error que no me reconoce el objeto. A qué podrá deberse? Muchas gracias de antemano por cualquier tipo orientación.

    • 0

      Reacciones de usuarios

    • 1 respuesta
    • 579 visitas
  9. Started by gacg1310,

    Buenas Tardes: Adjunto enlace para ver el archivo https://drive.google.com/file/d/14uWHGoaRKftjRRHZpbXoKHWpyMLdSOVC/view?usp=sharing Descargan el archivo para poder ejecutarlo Para iniciar solo deben dar click sobre la hoja llamada "INICIO", el pasa al USERFORM1 donde deco escoger un representante y un médico y dar click en "SIGUIENTE" es donde me aparece el error. Otra vez mas estoy atado por este error

    • 0

      Reacciones de usuarios

    • 3 respuestas
    • 899 visitas
  10. Started by jesuspg,

    Hola amigos del foro, Estoy ejecutando esta macro, y continuamente me muestra 'Error definido por la aplicación o el objeto': Sub ProtegerHoja() Dim fila As Long fila = Sheets("Hoja1").Range("A1048576").End(xlUp).Row Dim contraseña As String contraseña = "abcd" With ActiveSheet .Protection.AllowEditRanges.Add Title:="Rango1", _ Range:=Range("A3:H" & fila), _ Password:=contraseña .Protect Password:=contraseña, _ DrawingObjects:=True, _ Contents:=True .EnableSelection = xlNoRestrictions End With End Sub No sé dónde …

    • 0

      Reacciones de usuarios

    • 6 respuestas
    • 1.8k visitas
  11. Buenas tardes. Queria saber si habra alguna forma de indicarle al userform que se ubique en una posicion especifica. Voy a tratar de ser mas explicito, el userform en este momento se ubica en el centro de la pantalla, mas yo quiero que se ubique en la misma posicion centrada, pero unas lineas mas abajo. Es decir, debajo de la celda 7, pero centrado. Dejo una imagen que vale mas que mil palabras. Agradecido de antemano por vuesta ayuda

    • 0

      Reacciones de usuarios

    • 8 respuestas
    • 4.1k visitas
  12. Started by Alexmoon,

    Buenas tardes Tengo una duda a ver si me puede ayudar. tengo un libro de excel donde quiero hacer un filtro de una hoja a otra de acuerdo a un rango de fechas determinado pero al momento de ejecutar la macro me envía un error por desbordamiento, no entiendo muy bien porque sucede si me pudieran apoyar en indicarme cual es el error lo agradecería. Gracias por su apoyo. prueba filtro.xlsm

    • 0

      Reacciones de usuarios

    • 1 respuesta
    • 1.1k visitas
  13. Started by MauriciodeAbreu,

    Buenas tardes amigos. Tengo una duda. Estoy usando el siguiente codigo para colocarle clave de activacion a un boton que esta en la hoja de excel (el codigo funciona perfecto), pero no encuentro una manera de ocutar la clave cuando se ingresa. Habra alguna forma de que no se vea lo que se digita ? 'Caja para el ingreso del Password para poder borrar ultimo registro Dim PS As String Dim PS2 As String PS2 = "clave" PS = InputBox("Por favor ingrese su Password") If PS = PS2 Then 'Fin de la caja Agradecido de antemano por vuestra ayuda

    • 0

      Reacciones de usuarios

    • 10 respuestas
    • 4.5k visitas
  14. buenos dias: les envio un archivo en TXT en donde al oprimir un optionbutton me habilita un inputbox donde se solicita digitar un numero, pero al dejar vacio y dar aceptar o dar boton cancelar me sale "ERROR 13 NO COINCIDEN LOS TIPOS" en la siguiente linea del archivo adjunto. CANTPEQ = InputBox("Ingrese la cantidad a enviar", "CANTIDAD A ENVIAR") Agradezco su ayuda MUESTRA.txt

    • 0

      Reacciones de usuarios

    • 8 respuestas
    • 4.3k visitas
  15. Started by Alexmoon,

    Buenos dias No se si me puedan ayudar, lo que quiero intentar hacer es que al darle click a una celda en este caso la de "folio de alta de productos" en la pestaña "folios vencidos" me filtre en la hoja "seguimiento" ese valor. E intentado haciendo un filtro con doble click pero no e entendido como hacer para trasladar esta función a otra hoja y también lo intente grabando una macro pero no e tenido mucha suerte. espero puedan apoyarme Prueba.xlsm

    • 0

      Reacciones de usuarios

    • 4 respuestas
    • 1.4k visitas
  16. Started by ramonvar,

    Buen día todos los del Foro Si pudieran darme una mano con esto, se los agradeceré, tengo dos planillas los cuales adjunto. Uno de Origen y otra de Destino, la de Origen contiene datos los cuales quisiera pasarla a de Destino, pero solo algunas columnas (Origen), y que sean pegadas algunas en las mismas columnas y otras colocadas en otras columnas en la de Destino, todas ellas a partir de la fila 3(tres) en la planilla Destino. Las columnas son las siguientes: Columna de Origen B------àDestino B Columna de Origen C------àDestino C Columna de Origen E------àDestino D Columna de Origen F------àDestino E Columna de Orig…

    • 0

      Reacciones de usuarios

    • 20 respuestas
    • 2.4k visitas
    • 1 seguidor
  17. Buenas tardes a todos los compañeros de este fantastico foro :D Estoy intentando hacer una macro para almacenar en un vector (array) los dias laborales entre dos fechas (sin contar festivos ni fines de semana). Por ejemplo; Fecha inicio: 03/08/2020 Fecha fin; 10/08/2020 Si el día 08/08/2020 y 09/08/2020 es fin de semana, y consideramos/especificamos que el dia 07/08/2020 es festivo. ¿Como podría obtener un vector de la siguiente forma)? Vector: (03/08/2020; 04/08/2020; 05/08/2020; 06/08/2020; 10/08/2020) Agradeceria muchos vuestra valiosa ayuda. Muchas gracias Un abrazo

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 661 visitas
  18. Expertos, los escribo esta vez con un pequeño archivo que contiene dos formularios uno de ellos con registro de perfil de cliente que cuando escojo un registro y lo edito pulso editar aparentemente dice registro editado pero no guarda los datos editados, y la otro formulario es cuando ingreso nuevos datos en los controles y lo pulso registrar sale error y windows cierra a excel, bueno esos dos casos que me sale en este pequeño proyecto...Lo agradezco a todos por la ayuda que me van a brindar. Ajunto el archivo Inventario.xlsm

    • 0

      Reacciones de usuarios

    • 7 respuestas
    • 961 visitas
  19. Started by jhon fredy,

    hola expertos tengo un libro que me envía los datos en forma ordenada de la hoja 2 a la hoja 3 cuando oprimo la flecha , pero al eliminar los números repetidos en la hoja 2 y diferenciar la cantidad de datos de las dos hojas aparece que no son iguales ¿por que será? permutaciones2.xlsm

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 624 visitas
  20. Started by CECILIO,

    Sub cargaRecib() Dim ws2, ws1 As Worksheet, Mat Dim Q& Set ws1 = ActiveSheet 'mio = ActiveWorkbook.Name ws2 = "selecciona el libro a procesar" MsgBox ws2, vbOKOnly ws2 = Application.GetOpenFilename(Title:=ws2) If ws2 = False Then Exit Sub On Error GoTo 0 Set ws2 = Workbooks.Open(ws2) Sheets("XML").Select If [B2] = "" Then MsgBox "Libro u Hoja sin Informacion." End If ReDim Matt(1 To 58) Q = Range([B1], Cells(Rows.Count, "b").End(xlUp)).Rows.Count Mat(1) = Application.Transpose(ws2.[B1].Resize(Q)) End Sub

    • 0

      Reacciones de usuarios

    • 1 respuesta
    • 683 visitas
  21. como le puedo agregar a este código que las celdas que escoge aleatoriamente en mi hoja estadística me las rellene de color amarillo Sub Aleatorios() For x = 1 To 22 f = Int((42 * Rnd) + 1) c = Int((256 * Rnd) + 1) Sheets("analisis").Range("C" & x) = _ Sheets("estadisticas").Cells(f, c) Next End Sub

    • 0

      Reacciones de usuarios

    • 11 respuestas
    • 3k visitas
  22. como puedo modificar este codigo para que me deje un numero de los que se repiten Sub Eliminar_repetidos() Dim Mat, Q%, i%, R%, j%, Dic, Rng As Range, Valor, iniTime! iniTime = Timer Set Dic = CreateObject("Scripting.Dictionary") Mat = Range("A1:SX42"): Q = UBound(Mat): R = UBound(Mat, 2) For i = 1 To Q For j = 1 To R Valor = Mat(i, j) If Valor <> Empty Then Select Case Dic.Exists(Valor) Case True Set Rng = Union(Dic(Valor), Cells(i, j)) Case False Set Rng = Cells(i, j) End Select Set Dic(Valor) = Rng End If Next Next Application.ScreenUpdating = Fa…

    • 0

      Reacciones de usuarios

    • 0 respuestas
    • 427 visitas
  23. Started by emarro,

    Buena noche, por este medio quisiera pedirles su apoyo u orientación para ver la posibilidad de poder consultar a través de VBA la garantía de un equipo de Dell en su sitio web usando el Service Tag que esta en la columna A y que en la B aparezca la fecha de envío, en la C fecha de Inicio, en la D la fecha de Vencimiento y la D el Código de Servicio Expreso, he investigado pero no he obtenido resultados, el Tag para prueba podría ser 2PTCB2S. Si alguien me puede apoyar con este tema les estaría muy agradecido.

    • 0

      Reacciones de usuarios

    • 5 respuestas
    • 1.3k visitas
  24. Hola amigos de Ayuda Excel Tengo el siguiente código que sirve para insertar filas en una hoja (la cual es copiada de la fila 5 y pegada en la primera fila disponible de la columna A. Quiero agregarle una condición al código que evite pegar la fila si la celda de la fila activa correspondiente a la columna K es igual a 0. Es decir que no la copie. Sub Insertarfila() Application.ScreenUpdating = False Dim ult As Long ult = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row + 1 Range("A5:K5").Select Selection.Copy With ActiveSheet.Range("a" & Rows.Count).End(xlUp).Offset(1) .PasteSpecial Paste:=xlPas…

    • 0

      Reacciones de usuarios

    • 8 respuestas
    • 834 visitas
  25. Buenas a todos, Probablemente ya se ha dado solución por partes al problema que encuentro, pero no logro unificar varias formulas que necesito para alojar en una sola celda. El asunto es el siguiente. Ejemplo: En una tabla de excel por ejemplo la celda A7 contiene la formula siguiente =SI.ERROR(INDICE('C:\Users\USUARIO\Documents\CLIENTE\DATOS2020\[DATOS_WEB.xlsx]hojadatos'!$AF:$AF;COINCIDIR(I7;'C:\Users\USUARIO\Documents\CLIENTE\DATOS2020\[DATOS_WEB.xlsx]hojadatos'!$N:$N;0));"") El dato que devuelve es un hipervinculo a una pagina web. (El archivo DATOS_WEB.xls sufre actualizaciones semanales) por ejemplo, la celda A7= https://w…

    • 0

      Reacciones de usuarios

    • 4 respuestas
    • 1.4k 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.