Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 07/29/2021 in all areas

  1. Sub EncriptaDesencriptaPNAC() Application.ScreenUpdating = False x = 2 i = Timer Do Until Range("A" & x) = "" For y = 1 To 7 Cells(x, y) = EncriptaDesencripta(Cells(x, y)) Next If x Mod 5000 = 0 Then Application.StatusBar = "Procesando fila: " & x & " Tiempo total: " & Timer - i Application.ScreenUpdating = True DoEvents Application.ScreenUpdating = False End If x = x + 1 Loop End Sub Prueba así, en la barra de estado de Excel irá apareciendo el avance del proceso, el tiempo total para encriptar el archivo que has subido ha sido de 45 minutos más o menos. (2 GB de RAM a 1,8 Mz) En cuanto a la búsqueda en el formulario, es inviable desencriptar los datos cada vez que cargas el formulario. El único proceso de búsqueda es por valor exacto, por aproximación no es posible por la gran cantidad de información. Excel no esta pensado para tratar volúmenes de información como el que planteas. Si te interesa una búsqueda como la planteada, sube un archivo con unos centenares de registros y el formulario correcto, ya que en el último archivo el formulario y los datos no se corresponden.
    1 point
  2. ¡Ya está! Para mostrar una imagen que está en la hoja, hay que convertirla a jpg previamente. Abre el adjunto y pulsa sobre un código QR de la columna C. GENERADOR CODIGO QR.xlsm
    1 point
  3. Antoni

    Centrar títulos MsgBox

    No se puede, utiliza un userform con un label.
    1 point
  4. Onkey, tiene un argumento opcional, que es llamar a un procedimiento, bueno ahi agregas el mensaje y listo Sub MostrarMensaje() If Application.OnKey Key:="{c}" Then "MiSub" End Sub Sub MiSub() VBA.MsgBox "Hola mundo" End Sub Saludos
    1 point
  5. Estimados Gracias por leer tema, pero les comento que lo he solucionado usando este codigo vba: Sub Copia_formato() 'Evitamos el parpadeo de la macro mientras trabaja Application.ScreenUpdating = False 'Creamos 1 variable donde almacenamos los nombre de las hojas del libro. Dim nom As String 'Creamos una variable para el valor de la cantida de hojas del libro. Dim Canthoja As Integer 'Contamos las hojas menos una. Canthoja = Sheets.Count - 1 'Creamos un ciclo desde 0 hasta la ultima hoja del libro menos una. For i = 0 To Canthoja 'Pasamos el nombre de la hoja activa a la variable nom. nom = ActiveSheet.Name 'Creamos una condición para movernos por las hojas. If ActiveSheet.Name <> Sheets(Sheets.Count).Name Then 'Seleccionamos la hoja3 y copiamos el rango A1:AH56. Worksheets("Certificado").Range("K1:AR56").Copy Worksheets(nom).Range("K1").Select Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False 'En la hoja activa pego. ActiveSheet.Paste 'Elimino las formulas y dejo los valores. Selection.Value = Selection.Value 'Borro las columnas desde la A a J. Range("A:J").Delete 'Creo un ciclo por each desde la primera fila hasta el rango A1:A57 For Each fila In Range("A1:A57") 'Verifico que las filas tengan la altula 12.75 y sino lo tienen les paso el valor. If fila = Empty Then fila.EntireRow.RowHeight = 12.75 Else fila.EntireRow.RowHeight = 12.75 'Salto a la siguiente fila. Next fila 'entonces pasamos a la siguiente hoja ActiveSheet.Next.Select End If 'Nos movemos a la proxima hoja. Next i Application.ScreenUpdating = True 'Volvemos la primera hoja del libro. Sheets("Certificado").Select End Sub[/CODE] Y usando la formula [CODE]EXTRAE(texto;posición_inicial;núm_de_caracteres)[/CODE] en cada una de las celdas donde necesitaba la información. Les dejo el código por si alguno les interesa o por si desean jugar un poquito con el para realizar algunas mejoras. Doy por cerrado este tema. Saludos. Gracias.
    1 point
×
×
  • Create New...

Important Information

Privacy Policy