Saltar al contenido

Antoni

Exceler C
  • Contador de contenido

    11884
  • Unido

  • Última visita

  • Días con premio

    910

Todo se publica por Antoni

  1. Utiliza la función CDbl() en lugar de Val().
  2. Me lo ha chivado la grabadora de macros al darle formato "Contabilidad". 😜
  3. Prueba el adjunto. MiNumerosListView.xlsm
  4. A ver si lo he entendido. Prueba visualizar.xlsm
  5. No todos los controles tienen las mismas propiedades: Private Sub Guardar(sh As Worksheet, r As String, ctrl As Control) If ctrl.Visible Then Select Case TypeName(ctrl) Case "Label" sh.Range(r).Value = ctrl.Caption Case "TextBox" sh.Range(r).Value = ctrl.Value End Select End If End Sub
  6. Sub OcultaFilas() Rows("8:20").EntireRow.Hidden = True 'ocultar rango Selection.EntireRow.Hidden = False 'mostrar selección End Sub
  7. Prueba a ver si es esto lo que quieres. CALENDARIO PRUEBA (1).xlsm
  8. Te dejo una función, puedes usarla en macros y formularios o como fórmula. Function Edad(Identidad As String) As Variant Dim Año, Mes, Día '-- If Not IsNumeric(Identidad) Or Not Len(Identidad) = 11 Then Edad = "#Error Identidad" Exit Function End If '-- Año = CInt(Left(Identidad, 2)) If Año > Year(Date) - 2000 Then Año = Año + 1900 Else Año = Año + 2000 End If '-- Mes = CInt(Mid(Identidad, 3, 2)) Día = CInt(Mid(Identidad, 5, 2)) Edad = Year(Date) - Año '-- If Mes > Month(Date) Or _ (Mes = Month(Date) And Día > Day(Date)) Then Edad = Edad - 1 Exit Function End If End Function Cumpleaños Foro.xlsm
  9. Prueba esta macro, vale para cualquier cantidad de filas/columnas. Const Naranja As Long = 6403322 Const Morado As Long = 11423218 Const Verde As Long = 4896057 Const Rojo As Long = 6709491 '-- Sub Resaltes() Dim Sales As Range, Fcst As Range Application.ScreenUpdating = False '-- For x = 2 To Range("A" & Rows.Count).End(xlUp).Row Step 2 For y = 4 To Cells(1, Columns.Count).End(xlToLeft).Column '-- Set Fcst = Cells(x, y) Set Sales = Cells(x, y).Offset(1) '-- Sales.Interior.ColorIndex = xlNone Fcst.Interior.ColorIndex = xlNone '-- If Sales <> "" Then If Round(Sales) = 0 And Round(Fcst) > 0 Then Sales.Interior.Color = Rojo Fcst.Interior.Color = Rojo End If '-- If Round(Sales) <> 0 And Round(Sales) < Round(Fcst) Then Sales.Interior.Color = Naranja Fcst.Interior.Color = Naranja End If '-- If Round(Sales) = Round(Fcst) Then Sales.Interior.Color = Verde Fcst.Interior.Color = Verde End If '-- If Round(Sales) <> 0 And Round(Fcst) < Round(Sales) Then Sales.Interior.Color = Morado Fcst.Interior.Color = Morado End If '-- End If Next Next End Sub
  10. Otra más: Sub BORRAR_COBRADAS() Dim i As Long For i = Range("A" & Rows.Count).End(xlUp).Row To 2 Step -1 If Range("L" & i) = "COBRADA" Then Rows(i).Delete End If Next End Sub
  11. Otra forma a partir de las tablas, los nombres de las hojas, el combo bancos y el nombre de las tablas deben ser iguales. Para Foro.xlsm
  12. Prueba el adjunto. Introduce una fecha en el textbox y pulsa <Enter> Miny_Calendario_Di_Antoni.xlsm
  13. Si, cualquier fórmula que pongas en una celda puede ser replicada desde una macro.
  14. No encuentra el valor de la variable prod en esta instrucción: Set pro_d = .Range("A5:A" & ufd).Find(prod)
  15. Te propongo ir creando las filas de forma automática a medida que vayas entrando información . Cuando selecciones una celda de la columna A vacía, si hay información en la celda de la fila anterior, las fórmulas se insertarán de forma automática. Abre el adjunto y selecciona la celda A50 para ver el resultado de lo que te acabo de describir. PRUEBA INSERTAR 500 FILAS.xlsm
  16. Revisa el adjunto. Cargar Facturas 01.xlsm
  17. Click derecho sobre el botón\Asignar macro y escoge la macro que quieras.
  18. He cambiado el nombre a los label para facilitar la programación. Spostare_Giorni_Sett_In_Un_Calendario.xlsm
  19. Sube tu archivo y explícate mejor.
  20. Debes cambiar la secuencia, primero seleccionar la carpeta de destino y luego los archivos. Sub SelectMultipleArch() '------------------------------------------------------------ ' Escoger carpeta de destino With Application.FileDialog(msoFileDialogFolderPicker) .Title = "Seleccione carpeta de destino" .ButtonName = "Aceptar" .InitialFileName = Range("j2") 'ruta que pongo en celda' "C:\" If .Show = -1 Then 'si se escoge una carpeta y se cliquea aceptar Secfolder = .SelectedItems(1) End If If Secfolder = "" Then Exit Sub 'se ha pulsado cancelar End With '------------------------------------------------------------ ' Escoger archivos a copiar With Application.FileDialog(msoFileDialogFilePicker) .AllowMultiSelect = True .Title = "Selecciona archivos" .Filters.Clear .Filters.Add "excel", "*.xlsm;*.xls" .Filters.Add "todos", "*.*" If .Show = True Then For Each fPath In .SelectedItems FileCopy fPath, Secfolder & "\" & extractFileName(fPath) Next End If End With End Sub
  21. Prueba así: Private Sub Worksheet_Change(ByVal Target As Range): On Error GoTo ErrorFecha '------------------------------------------------------- If Not Intersect(Target, Range("A1830")) Is Nothing Then If IsDate(Range("A1830")) Then If Range("A1830") < Date - 7 Or Range("A1830") > Date + 3 Then MsgBox "No puede superar los siete días", vbCritical Rows(1830).Delete Range("A1830").Select Else If Not Intersect(Target, Rows(1830)) Is Nothing Then Rows(3).EntireRow.Delete Target.Offset(0, 1).Select End If End If End If End If Exit Sub '------------------------------------------- ErrorFecha: Range("A1830").ClearContents End Sub
  22. La macro del video es la de JSDJSD, que igualmente funciona sin problemas. La mía la puedes descargar de mi primera respuesta.
  23. ¿No estarás intentando ejecutar la macro desde la hoja SERVICIOS?, porqué el botón RESUMEN MENSUAL no tiene ninguna macro asignada. En cualquier caso puedes seguir la maco paso a paso,
×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.