Jump to content

Antoni

Members
  • Content Count

    10,860
  • Joined

  • Last visited

  • Days Won

    694

Everything posted by Antoni

  1. Tu mismo reconoces que no tienes experiencia en VBA, por lo tanto es muy difícil que encuentres soluciones al problema que pretendes resolver. Sube tu archivo y explica que quieres hacer.
  2. Suponiendo que la ruta de la carpeta Secadero esté en C:\Secadero Ruta = "C:\Secadero" en lugar de Ruta = ThisWorkbook.Path
  3. No se puede, a diferencia de un userform donde existe la colección controls, no existe una colección para las variables. Debes utilizar un array. dim cant(10) cant(1)=1 cant(2)=5 ..... .... cant(10)=75 y luego si, ya puedes hacer: Dim i As Byte For i = 1 To 10 Cells(i, 1).Value = cant(i) Next i
  4. Con la solución aportada por Haplox, cambiando "ComboBox" por "Label". Dim ctrl As Control For Each ctrl In Controls If TypeName(ctrl) = "Label" Then ctrl.Caption = "" End If Next
  5. Usa la función Year() de SQL sql = "Where Year(Fecha)>=" & TextBox100 & " And Year(Fecha)<=" & TextBox200
  6. Dim i As Byte For i = 1 To 10 Controls("CbxComp" & i).Value = "" Next i
  7. Convierte a mayúsculas o minúsculas al preguntar. Sub may() For i = 2 To ActiveSheet.UsedRange.Rows.Count If UCase(Cells(i, "A").Value) = UCase(Cells(i, "B").Value) Then Cells(i, "C").Value = "iguales" Else Cells(i, "C").Value = "diferentes" End If Next End Sub
  8. También funcionaría con FrmulaR1C1, en este caso, al no existir rangos por medio, es indiferente. Si quieres el resultado como valor en lugar de formula: Sub DifMesesValor() ' ' Calcula diferencia de meses entre fechas ' Dim Fecha1 As String Fecha1 = Range(InputBox("Dirección de la celda donde está la fecha inicial", "Cálculo meses")) ActiveCell.Formula = Evaluate("=DATEDIF(""" & Right(Fecha1, 2) & "/" & _ Mid(Fecha1, 5, 2) & "/" & _ Left(Fecha1, 4) &
  9. Prueba así: Sub DifMeses() ' ' Calcula diferencia de meses entre fechas ' Dim Fecha1 As String Fecha1 = Range(InputBox("Dirección de la celda donde está la fecha inicial", "Cálculo meses")) ActiveCell.Formula = "=DATEDIF(""" & Right(Fecha1, 2) & "/" & _ Mid(Fecha1, 5, 2) & "/" & _ Left(Fecha1, 4) & """,TODAY(),""m"")" End Sub
  10. A ver si es esto. He añadido una función que permite ordenar un listbox. Pulsa sobre el botón Indicador o Área para ordenar la lista por esos conceptos. Matriz KPI´s OK.xlsm
  11. A veces los árboles no nos dejan ver el bosque. Cuando te pase algo que aparentemente no tiene explicación empieza quitando On Error Resume Next. Hay 5 series de la 1 a la 5 y tu intentas cambiar de la 2 a la 6, por lo que la 1 no la cambias nunca y la 6 no existe y ahí se produce un error, error enmascarado por On Error Resume Next, así se soluciona el problema. .Chart.SeriesCollection(pf - 1).Name = Hoja14.Cells(pf, 3).Value
  12. Prueba esta macro: Sub MaxRango() For x = 2 To Range("A" & Rows.Count).End(xlUp).Row Range("C" & x) = WorksheetFunction.Max(Range("A" & x).Resize(1, 2)) Next End Sub
  13. Has de tener un poco de paciencia, las personas que contestan lo hacen cuando pueden, piensa que son miembros del foro exactamente igual que tu y que no perciben retribución alguna por su colaboración. Piensa además que las explicaciones son algo genéricas, no especificas ni donde están los datos, ni donde están el listbox y el botón "Guardar", ni que datos hay que modificar. Cuando disponga de tiempo le echaré un vistazo.
  14. Abre el adjunto y pulsa el botón, a ver que pasa. actualizar precios Prueba1 (1).xlsm
  15. Te adjunto de nuevo el archivo, si haces click en cualquiera de las imágenes, se crea un archivo .jpg con el face-id seleccionado. Todos los iconos de Excel II
  16. A ver si es lo que buscas. Abre el adjunto y aguarda unos segundos a que se carguen las imágenes. Todos los iconos de Excel
  17. Prueba así: Private Sub Worksheet_Change(ByVal Target As Range) 'Updated by Extendoffice 2019/11/13 Dim xRng As Range Dim xValue1 As String Dim xValue2 As String If Target.Count > 1 Then Exit Sub On Error Resume Next 'Set xRng = Cells.SpecialCells(xlCellTypeAllValidation) Set xRng = Columns("R") '<---------------------------- If xRng Is Nothing Then Exit Sub Application.EnableEvents = False If Not Application.Intersect(Target, xRng) Is Nothing Then xValue2 = Target.Value Application.Undo xValue1 = Target.Value
  18. Cells(i, "B").FormulaLocal = "=Indice(Tablas!$N$6:$Q$8;COINCIDIR(A" & i & ";Tablas!$O$6:$O$8;1);4)"
  19. Añade Application.ScreenUpdating = False al principio de la macro para evitar la actualización de la pantalla cada vez que actualices una celda.
  20. Selecciona un elemento de la lista, modifica el banco/cuenta y pulsa sobre el botón. Libro de Clientes.xlsm
  21. No se puede directamente, imagino que puede existir alguna API que permita controlar el scroll de un listbox, pero yo no la conozco.
×
×
  • Create New...

Important Information

Privacy Policy