Saltar al contenido

Antoni

Exceler C
  • Contador de contenido

    11885
  • Unido

  • Última visita

  • Días con premio

    910

Todo se publica por Antoni

  1. Function InsertQRCode(celda As Range) As String Dim QRCodeURL As String On Error Resume Next ActiveSheet.Shapes("QR").Delete QRCodeURL = "https://quickchart.io/qr?text=" & celda.Value With ActiveSheet.Pictures.Insert(QRCodeURL) .Name = "QR" .Left = 500 .Top = 25 .Width = 300 .Height = 300 End With InsertQRCode = "" End Function Adáptalo a tus necesidades.
  2. Utiliza la función CDbl() en lugar de Val().
  3. Me lo ha chivado la grabadora de macros al darle formato "Contabilidad". 😜
  4. Prueba el adjunto. MiNumerosListView.xlsm
  5. A ver si lo he entendido. Prueba visualizar.xlsm
  6. 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
  7. Sub OcultaFilas() Rows("8:20").EntireRow.Hidden = True 'ocultar rango Selection.EntireRow.Hidden = False 'mostrar selección End Sub
  8. Prueba a ver si es esto lo que quieres. CALENDARIO PRUEBA (1).xlsm
  9. 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
  10. 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
  11. 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
  12. 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
  13. Prueba el adjunto. Introduce una fecha en el textbox y pulsa <Enter> Miny_Calendario_Di_Antoni.xlsm
  14. Si, cualquier fórmula que pongas en una celda puede ser replicada desde una macro.
  15. No encuentra el valor de la variable prod en esta instrucción: Set pro_d = .Range("A5:A" & ufd).Find(prod)
  16. 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
  17. Revisa el adjunto. Cargar Facturas 01.xlsm
  18. Click derecho sobre el botón\Asignar macro y escoge la macro que quieras.
  19. He cambiado el nombre a los label para facilitar la programación. Spostare_Giorni_Sett_In_Un_Calendario.xlsm
  20. Sube tu archivo y explícate mejor.
  21. 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
  22. 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
  23. La macro del video es la de JSDJSD, que igualmente funciona sin problemas. La mía la puedes descargar de mi primera respuesta.
×
×
  • 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.