Recorre hojas extrae datos para resumen



En un foro me consultan sobre como recorrer las hojas del libro de Excel y extraer datos para hacer un resumen; en un post anterior se expuso algo relacionado, ya que la macro recorre las hojas para listarlas y agregarla a un combobox; en este caso se requiere hacer un resumen recorriendo las hojas y extrayendo datos de dichas hojas, en el link abre libros extrae datos y hace resumen, se agrega una variante que consiste que en vez de recorrer las hojas del libro, extrae datos de libros diferentes.


Antes de seguir con el desarrollo y en el caso que no tengas conocimiento suficiente sobre el manejo de hojas de Excel, te recomiendo antes de introducirte en el mundo de las macros, que leas un excelente libro sobre Excel el que te ayudará manejar las planillas de cálculo, debes hacer click acá, si quieres un libro sobre Excel, en inglés, entonces debes hacer click acá.
MASTERCARD PAYONEER


Muchas veces cuando se trabaja con libros donde se listan ventas mensuales, por sucursal o cualquier otro dato, se necesita recorrer hoja por hoja y extraer ciertos datos para realizar un resumen, este post muestra en detalle como la macro va recorriendo hoja por hoja del libro de Excel se fija en las celdas que tienen los datos necesarios para el resumen y los copia en la hoja Resumen, que se llama en este ejemplo. Es una macro sencilla, pero muy útil y que da muchos dolores de cabeza a los más novatos en el tema de macros.

Desde el link del final se puede descargar el archivo de ejemplo de esta manera podrás ver su funcionamiento en forma más detallada. El código de VBA o Macro de Excel crea una hoja denominada resumen si es que ya no está creada, luego determina cuantas hojas hay en el libro de Excel, para hacer un bucle que va desde la hoja2 a la última, la hoja1 no se tiene en cuenta, porque es donde se hace el resumen; posteriormente selecciona las celdas con los datos necesarios para el resumen y los copia en la hoja resumen, por último da formato a las celdas para que se vea más ordenado, descarga el ejemplo desde el link del final.



Código que se debe insertar en un módulo



Sub HaceResumen()
On Error Resume Next
Application.ScreenUpdating = False
Dim hoja As Worksheet
Dim x, i, fila, fila1 As Integer

If Sheets(1).Name <> "Resumen" Then
Sheets.Add Before:=Worksheets(1)
ActiveSheet.Name = "Resumen"
Else
Sheets(1).Select
End If

x = Sheets.Count
col = 2

For i = 2 To x
Sheets(i).Range("B2").Copy Destination:=Sheets("Resumen").Cells(2, col)
Sheets(i).Range("B3").Copy Destination:=Sheets("Resumen").Cells(3, col)
col = col + 1
Next i
     
Sheets("Resumen").Columns("A:M").Select
With Selection
.RowHeight = 12.75
.Interior.Pattern = xlNone
.Interior.TintAndShade = 0
.Interior.PatternTintAndShade = 0
.Font.Name = "Arial"
.Font.Size = 10
.Font.Bold = False
End With
Sheets("Resumen").Range("C:T").EntireColumn.AutoFit
Range("A1").Select
Application.ScreenUpdating = True
End Sub




Si te fue de utilidad puedes INVITARME UN CAFÉ y de esta manera ayudar a seguir manteniendo la página, CLICK para descargar en ejemplo en forma gratuita.



If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.


Si te gustó por favor compártelo con tus amigos
If you liked please share it with your friends      

Combobox lista archivos




En foros de sobre programación de macros en VBA para excel, se ha preguntado en varias oportunidades sobre la forma de listar archivos o ficheros y agregarlos en un combobox, si bien el el post listar archivos y subcarpetas se hace un listado, pero el mismo es copiados en las celdas de la hoja de cálculo; en el ejemplo que a continuación presento, se listan los archivos en un combobox.

El post combobox lista y selecciona hoja, está relacionado ya que se agrega al combobox un listado, pero en este caso es de las hojas de Excel, que al hacer click en un items del combobox se desplaza hasta dicha hoja.

Antes de seguir con el desarrollo y en el caso que no tengas conocimiento suficiente sobre el manejo de hojas de Excel, te recomiendo antes de introducirte en el mundo de las macros, que leas un excelente libro sobre Excel elclick acá, si quieres un libro sobre Excel, en inglés, entonces debes hacer click acá.
que te ayudará manejar las planillas de cálculo, debes hacer 
MASTERCARD PAYONEER


Si realizamos macros a menudo, seguramente alguna vez tuvimos la necesidad de tener listados todos los archivos de una capeta determinada, para que luego de ser seleccionado se realice alguna acción con este archivo, ya sea extraer datos o cualquier otro procedimiento de VBA; en este ejemplo se explica con claridad como se puede listar archivos y agregarlos a un combobox; el código que se encuentra más abajo y en el archivo de ejemplo; permite abrir un cuadro de diálogo para seleccionar una carpeta, una vez seleccionada, los archivos que se encuentran en dicha directorio son listados en un combobox, al presionar el botón aceptar, en este ejemplo, copia el nombre del archivo en la columna A; pero tiene múltiple usos, como por ejemplo se podría seleccionar un archivo para que una macro busque datos en dicha hoja o bien guarde datos.

Para listar los archivos se usa FileSystemObject, este comando da acceso al sistema de archivos del sistema en este ejemplo se crea un objeto con Set fso = CreateObject("Scripting.FileSystemObject"); para utilizar el explorador de archivos de Windows sencillo y que se pueda seleccionar una carpeta se utiliza Path = CreateObject("shell.application").browseforfolder(0, "Seleccione Carpeta", 0).Items.Item.Path

Al final de este post se encuentra un link del cual podrás descargar el archivo de ejemplo, de esta manera verás su funcionamiento en forma más detallada. El código de VBA o Macro de Excel hace un listado de los archivos que se encuentran en la carpeta seleccionada desde el cuadro de diálogo de Windows, listando y agregando a un combobox los archivos o ficheros encontrados.


Código que se debe insertar en un formulario


Private Sub CommandButton1_Click()
On Error Resume Next
Dim uf As Integer
If ComboBox1 = Empty Then
MsgBox ("Debe seleccionar archivo"), vbCritical, "AVISO"
ComboBox1.SetFocus
Exit Sub
End If
uf = Sheets("hoja1").Range("A" & Rows.Count).End(xlUp).Row
Cells(uf + 1, 1) = ComboBox1
End Sub

Private Sub CommandButton2_Click()
Unload Me
End Sub


     

Private Sub UserForm_Initialize()
On Error Resume Next
DisplayAlerts = True
Application.ScreenUpdating = True
Dim Path As String
Dim fila As Integer
fila = 2
'Se crea FileSystemObject que da acceso al sistema de archivos del sistema
Set fso = CreateObject("Scripting.FileSystemObject")
'Indicamos la ruta de donde vamos a obtener
Path = CreateObject("shell.application").browseforfolder(0, "Seleccione Carpeta", 0).Items.Item.Path
 If Path = "" Then
 MsgBox "No has seleccionado ningún directorio, selecciona un directorio .", , "AVISO"
 Exit Sub
 End If
'También podemos indicarla en forma fija si siempre es la misma
'Path = "C:\Users\MyNotebook\Documents\Fotos Productos"

'Definimos variables para determinar nombre de archivos y subcarpetas
Set carpeta = fso.getfolder(Path)
Set ficheros = carpeta.Files

'Archivos
For Each ficheros In ficheros
 
    b = ficheros.Name
    ComboBox1.AddItem b
Next ficheros

DisplayAlerts = True
Application.ScreenUpdating = True
End Sub


Código que se inserta en un módulo

Sub showuf()
UserForm1.Show
End Sub



Si te fue de utilidad puedes INVITARME UN CAFÉ y de esta manera ayudar a seguir manteniendo la página, CLICK para descargar en ejemplo en forma gratuita.



If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.


Si te gustó por favor compártelo con tus amigos
If you liked please share it with your friends      

Listar archivos y subcarpetas con macro VBA



En este post te voy a mostrar una macro para listar los archivos o ficheros y subcarpetas de una carpeta determinada de Windows, estando vinculado con el presentado anteriormente Macro que abre explorador de archivo de Windows e inserta foto, con la variante que se abre el explorador para seleccionar el archivo; también se muestra en abre explorador de archivo o ficheros de windows como se puede usar el explorador de archivos de Windows para seleccionar un archivo y usarlo en una macro.

Si quieres profundizar tu manejo de Excel o en el caso que no tengas conocimiento suficiente sobre el manejo de hojas de Excel, te recomiendo antes de introducirte en el mundo de las macros, que leas un excelente libro sobre Excel el que te ayudará manejar las planillas de cálculo, debes hacer click acá, si quieres un libro sobre Excel, en inglés, entonces debes hacer click acá.
MASTERCARD PAYONEER


Es bastante frecuenta tener que listar los archivos y subcarptetas de un directorio, también es común listar archivos en un combobox; con el objeto de ser usado en una macro, este ejemplo precisamente hace eso Lista los archivos y subcarpetas de Windows, presionando el botón que se encuentra en el ejemplo, que se puede descargar desde el link del final, se corre una macro que lo que hace es listar todas las carpetas y subcarpetas que se encuentran en el directorio seleccionado, en este caso el listado se copia en una hoja de Excel, no obstante se puede agregar la lista de archivos y subcarptetas a un combobox, tema que será explicado más adelante.

Desde el link del final se puede descargar el archivo de ejemplo de esta manera podrás ver su funcionamiento en forma más detallada. El código de VBA o Macro de Excel no tiene ningún tipo de restricciones por lo que puedes bajar el archivo y adaptarlo y manipular el código como desees.


Código que se debe insertar en Worksheet de la hoja donde haremos correr la macro



Sub ListaArchivos()
On Error Resume Next
DisplayAlerts = True
Application.ScreenUpdating = True
Dim Path As String
Dim fila As Integer
fila = 2
'Se crea FileSystemObject que da acceso al sistema de archivos del sistema
Set fso = CreateObject("Scripting.FileSystemObject")
'Indicamos la ruta de donde vamos a obtener
Path = CreateObject("shell.application").browseforfolder(0, "Seleccione Carpeta", 0).Items.Item.Path
 If Path = "" Then
 MsgBox "No has seleccionado ningún directorio, selecciona un directorio .", , "AVISO"
 Exit Sub
 End If
'También podemos indicarla en forma fija si siempre es la misma
'Path = "C:\Users\MyNotebook\Documents\Fotos Productos"

'Definimos variables para determinar nombre de archivos y subcarpetas
Set carpeta = fso.getfolder(Path)
Set SubCarp = carpeta.subfolders
Set ficheros = carpeta.Files

Sheets("hoja1").Range("A2:d1000").ClearContents





     

'Subcarpetas
For Each SubCarp In SubCarp
a = SubCarp.Name
Sheets("Hoja1").Cells(fila, 1) = Path
Sheets("Hoja1").Cells(fila, 2) = a
fila = fila + 1
Next SubCarp

'Archivos
For Each ficheros In ficheros
 
    b = ficheros.Name
    Sheets("Hoja1").Cells(fila, 1) = Path
    Sheets("Hoja1").Cells(fila, 3) = b
    fila = fila + 1
Next ficheros

'Cells("A:Z").EntireColumn.AutoFit
DisplayAlerts = True
Application.ScreenUpdating = True
End Sub






Si te fue de utilidad puedes INVITARME UN CAFÉ y de esta manera ayudar a seguir manteniendo la página, CLICK para descargar en ejemplo en forma gratuita.



If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.


Si te gustó por favor compártelo con tus amigos
If you liked please share it with your friends      

Macro abre explorador archivos inserta foto



En un post anterior se mostró una macro que insertar imágenes en Excel, en esta macro se hacía un bucle recorriendo todas las filas donde esta la URL de la foto o imagen y la insertaba en Excel; aquí te explico una variante un poco más sofisticada, también inserta una foto en Excel, pero para ello la macro abre el explorador de archivos de Windows, permitiendo que el usuario seleccione la imagen y luego la inserta, en Macro que abre el explorador de Windows, se explica más sobre como manipular dicho explorador; en listar archivos y subcarpetas se presenta una macro que también abre un explorador sencillo para seleccionar la carpeta donde se encuentran las subcarptetas y archivos a listar.

En este ejemplo lo que se hecha mano al explorador de archivos de Windows, para que el usuario seleccione la foto que desea, una vez seleccionada la foto, esta se inserta en la hoja de Excel, previo le cambia las propiedades de alto, ancho, disposición de la imagen, ello para que se peguen en forma ordenada una debajo de la otra y en la fila correspondiente; también agrega el nombre del archivo, para ello se pone en practica lo visto en el post extraer cadenas de texto; también se le da formato a las celdas para adaptarlas al alto de la imagen; es un ejemplo que pone en practica trabajar con el explorador de archivos de Windows, armar cadenas de texto o string y forma de insertar o trabajar con imágenes en Excel.

MASTERCARD PAYONEER

Recomiendo antes de seguir adelante en el mundo de las macros, que leas un excelente libro sobre Excel el que te ayudará manejar las planillas de cálculo, debes hacer click acá, si quieres un libro sobre Excel, en inglés, entonces debes hacer click acá.


Desde el link del final se puede descargar el archivo de ejemplo de esta manera podrás ver su funcionamiento en forma más detallada. El código de VBA o Macro de Excel presentado aquí inserta imágenes en Excel, para ello abre el explorador de archivos de Excel para que el usuario elija el archivo que desee, la macro inserta la imagen seleccionada, dándole formato como así también a las celdas donde se escribe la URL y nombre del archivo elegido en el cuadro de diálogo.


Código a insertar en un módulo



Sub InsertaImagen()
Application.ScreenUpdating = False
On Error Resume Next
Dim uf As Integer
Dim path As Variant
Dim desc As String
uf = Sheets("hoja1").Range("A" & Rows.Count).End(xlUp).Row
path = Application.GetOpenFilename("Archivos JPG PNG BMP  (*.jpg*;*.png*;*.bmp*), *.jpg*;*.png*;*.bmp*")
'Encuentra el nombre del archivo
FullName = Split(path, Application.PathSeparator)
a = FullName(UBound(FullName))
pto = InStr(a, ".")
nomarch = Left(a, pto - 1)

Sheets("hoja1").Cells(uf + 1, 1) = uf
Sheets("hoja1").Cells(uf + 1, 2) = nomarch
Sheets("hoja1").Cells(uf + 1, 3) = path
Sheets("hoja1").Rows(uf + 1).Select
With Selection
.RowHeight = 150
.VerticalAlignment = xlCenter
End With





     


Columns("D:D").ColumnWidth = 37.43

If uf = 1 Then
superior = 23
Else
superior = 150 * (uf - 1) + 23
End If

Sheets("hoja1").Pictures.Insert(path).Select
With Selection
        .Name = uf
        .Top = superior
        .Left = 400
        .Width = 150
        .Height = 150
End With

Application.ScreenUpdating = True
End Sub





Si te fue de utilidad puedes INVITARME UN CAFÉ y de esta manera ayudar a seguir manteniendo la página, CLICK para descargar en ejemplo en forma gratuita.



If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.


Si te gustó por favor compártelo con tus amigos
If you liked please share it with your friends      

Macro abre explorador de archivos de Windows



Al programar macros en reiteradas veces tendremos que abrir el explorador de archivos de Windows para seleccionar un archivo y que este sea usado en la macro, lo difícil es encontrar como se logra esto; no obstante método Application.GetOpenFilename soluciona nuestro problema, te voy a mostrar en primer lugar su sintaxis y posteriormente agregaré varios ejemplos sobre su uso, he incorporado un archivo de muestra donde filtra varios tipos de archivos, también como se usa la propiedad Multiselect, es decir que se puedan seleccionar varios archivos a la vez y que estos puedan ser usados en la macro. En el ejemplo Macro que lista archivos y subcarptetas se encuentra un ejemplo relacionado con este pos, al igual que en el ejemplo de Macro que abre explorador de archivos e inserta fotos; también se expone una macro relacionada en el post busca archivo en directorio, si no lo encuentra abre el explorador de archivos.

MASTERCARD PAYONEER

La Application.GetOpenFilename abre el cuadro de dialogo de Windows o explorador de archivos de Windows, con este método lo que se hace es obtener la dirección del archivo que se selecciona o el nombre escrito por el usuario, pero no se abre ningún archivo, como sucede con cualquier programa; en otras palabras y ejemplificando; supongamos que en Excel  se selecciona el archivos y luego el menú abrir, aparece el explorador de archivos de Windows, pero si nosotros hacemos click en algún archivo, en este caso de Excel, se abre el archivo; con Application.GetOpenFilename el archivo no se abre, sino que solo se obtiene su dirección, que puede ser puesta en una variable y usado por la macro.

La sintaxis es la siguiente: 

expresión.GetOpenFilename(FileFilterFilterIndexTitleButtonTextMultiSelect) 


Expresión: es una variable que representa un objeto Application, es obligatorio.

FileFilter: puede ser opcional, es una cadena que especifica los criterios de filtrado de archivos.

FilterIndex: es opcional, es el número de índice de los criterios de filtrado de archivos va desde 1 hasta el número de filtros especificado por FileFilter, si se omite, se usa el primer filtro de archivo.

Title: también es opcional, especifica el Titulo que tendrá el cuadro de diálogo, si se omite será por defecto "Abrir" el titulo.

ButtonText: es opcional, se usa solo en Macintosh, no nos ocuparemos de él.

MultiSelect: es opcional, pero importante ya que en muchos casos se querrá seleccionar más de un archivo a la vez; el valor True permite seleccionar varios nombre de archivo y False solo se permite un nombre, si se omite este argumento toma el valor predeterminado o por defecto False, el valor devuelto es de tipo Variant como en todos los argumentos de este método.

Antes de seguir con el desarrollo y en el caso que no tengas conocimiento suficiente sobre el manejo de hojas de Excel, te recomiendo antes de introducirte en el mundo de las macros, que leas un excelente libro sobre Excel el que te ayudará manejar las planillas de cálculo, debes hacer click acá, si quieres un libro sobre Excel, en inglés, entonces debes hacer click acá.

Ahora explicare un poco más acerca del argumento FileFilter, este consta de pares de cadenas de filtros de archivos seguidas de la especificación de filtro de archivo comodín de MS-DOS, separados cada par y cada parte por comas. Se enumera cada par individual en el cuadro de lista desplegable Tipo de archivo. Por ejemplo, la siguiente cadena especifica dos filtros de archivos, texto y complementos: "Archivos de texto (*.txt),*.txt,Archivos de complementos (*.xla),*.xla"; para que puedas entender más a fondo lo expuesto, sugiero que se bajes el archivo desde el link del final, veas su funcionamiento y codificación.

Para usar varias expresiones comodín de MS-DOS para un solo tipo de filtro de archivo, se debe separar dichas expresiones con ";" (punto y coma); ejemplo, "Archivos de Excel (*.xl*; *.txt),*.xl*;*.txt"; en este caso se filtran todos los archivos de Excel y Texto, aquí se agrega como filtro *.xl*, siendo * (comodin), en este caso se filtran los fichero cuyo nombre de archivo sea cualquiera, es decir todos los archivos y la extensión empiece con ".xl" sea cual fuere los siguientes caracteres, con esto se filtra la mayoría de los formatos de puede generar Excel, es decir extensión:

.xlsx: formato predeterminado para archivos de Excel posteriores a versión 2007.
.xlsm: formato para archivos de Excel que contengan macros.
.xlsb: formato para archivos binarios.
.xltx: formato de archivos para plantillas en versiones de Excel posteriores a versión 2007.
.xltm: formato de archivos para plantillas con macros en versiones de Excel posteriores a versión 2007.
.xls: formato de archivo Excel en versiones de Excel 97 a 2003.
.xlt: formato de archivo para plantillas en versiones de Excel 97 a 2003.
.xlam: formato de archivo de complemento en versiones posteriores a la versión 2007.
.xla: formato de complemento en versiones Excel 97 a 2003.
.xlw: formato de archivos de Excel en versión 4.0.

En caso que se omita el parámetro FileFilter, se tomá el valor por defecto que es "Todos los archivos (*.*),*.*".

Desde el link del final se puede descargar el archivo de ejemplo de esta manera podrás ver su funcionamiento en forma más detallada. El código de VBA o Macro de Excel abre el explorador de archivos de Windows ó cuadro de diálogo de Windows para abrir archivos, en los siguientes códigos se muestra la forma de utilizar Application.GetOpenFilename; principalmente la forma de filtrar archivos y seleccionar varios archivo con multiselect.

Código que se debe insertar en Módulo de la hoja donde haremos correr la macro.

En el siguiente vídeo podrás observar un explicación de como funcionan las macros que se incorporan es este ejemplo:




Código que filtra todos los archivos



Sub AbreExploradorTodos()
myfile = Application.GetOpenFilename()
Cells(2, 2) = myfile
End Sub


Código que filtra archivos de Excel

Sub AbreExploradorExcel()
myfile = Application.GetOpenFilename("Archivos Excel (*.xl*), *.xl*")
Cells(3, 2) = myfile
End Sub

Código que filtra archivos de Word

Sub AbreExploradorWord()
myfile = Application.GetOpenFilename("Archivos Word (*.doc*), *.doc*")
Cells(4, 2) = myfile
End Sub

Código que filtra archivos Txt

Sub AbreExploradorTexto()
myfile = Application.GetOpenFilename("Archivos de Texto (*.txt*), *.txt*")
Cells(5, 2) = myfile
End Sub

Código que filtra archivos JPG

Sub AbreExploradorJPG()
myfile = Application.GetOpenFilename("Archivos de Imagenes (*.jpg*), *.jpg*")
Cells(6, 2) = myfile
End Sub

Código que filtra archivos PDF

Sub AbreExploradorPdf()
myfile = Application.GetOpenFilename("Archivos PDF (*.pdf*), *.pdf*")
Cells(7, 2) = myfile
End Sub

Código que filtra archivos de Word, Excel y PDF a la vez

Sub AbreExploradorWordExcelPdf()
myfile = Application.GetOpenFilename("Archivos Word Excel PDF (*.doc*;*.xls*;*.pdf*), *.doc*;*.xls*;*.pdf*")
Cells(8, 2) = myfile
End Sub

Código que filtra archivos JPG, PNP y BMP a la vez

Sub AbreExploradorJpgPngBmp()
myfile = Application.GetOpenFilename("Archivos JPG PNG BMP  (*.jpg*;*.png*;*.bmp*), *.jpg*;*.png*;*.bpm*")
Cells(9, 2) = myfile
End Sub



    

Código que aplica un título al cuadro de diálogo

Sub AbreExploradorTitle()
myfile = Application.GetOpenFilename("Archivos Excel (*.xls*), *.xls*", , "SELECCIONE ARCHIVO PARA EJECUTAR LA MACRO DE VBA")
Cells(10, 2) = myfile
End Sub

Código que permite seleccionar varios archivos a la vez, MULTISELECT

Sub AbreExploradorMultiselect()
myfile = Application.GetOpenFilename("Archivos Excel (*.xls*), *.xls*", , , , True)
If TypeName(myfile) = "Boolean" Then Exit Sub
file = 11
For i = LBound(myfile) To UBound(myfile)
Cells(file, 2) = myfile(i)
file = file + 1
Next i
End Sub


Otros post de utilidad:
Recorrer filas y contar celdas con datos
Recuperar password o contraseña de hoja bloqueada



Si te fue de utilidad puedes INVITARME UN CAFÉ y de esta manera ayudar a seguir manteniendo la página, CLICK para descargar en ejemplo en forma gratuita.



If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.


Si te gustó por favor compártelo con tus amigos
If you liked please share it with your friends      

Eliminar la contraseña de proyectos de VBA




El presente post te muestra como eliminar la contraseña o password de proyectos de VBA propios es decir que debemos tener el derecho de autor, caso contrario sería incorrecto; para realizar el desbloqueo se necesita tener algo de conocimiento y estar familiarizado con comandos de MSDOS, en el caso que no los tengas o no tengas tiempo suficiente para poder realizar el desbloqueo, te ofrecemos nuestros servicios de desbloqueo de proyectos de VBAdesbloqueo de hojas de Excel y automatización de Hojas de Excel

Previo a mostrar el como eliminar la contraseña o password de proyectos de VBA, si estás usando macros para automatizar tu libro de Excel seguramente te es necesario saber seleccionar o referenciar celdas, en FORMAS DE SELECCIONAR O REFERENCIAR CELDAS CON VBA (Spanish Edition) encontrarás una excelente ayuda; si trabajas con fechas en Excel, fíjate en el siguiente link que te puede ser de utilidad FORMATOS Y FUNCIONES DE FECHA Y HORA DE MICROSOFT EXCEL (Spanish Edition)




  

En muchos casos nos encontramos con macros que se encuentran bloqueadas y que no nos acordamos el password o contraseña del proyecto de Visual Basic, por ello no podemos modificar y en algunos casos ver el código dentro si el mismo fue bloqueado para su visualización, lo que aquí se presenta responde las siguientes preguntas: como eliminar contraseña de proyectos de VBA, como recuperar contraseña de proyectos VBA, como crackear contraseñas de proyetos de VBA, como desbloquear proyectos de VBA, como anular clave o password de proyectos de VBA, como ver macros bloqueadas por clave en proyecto de VBA; en definitiva muestro como se puede acceder a un proyecto de VBA bloqueado por clave o password para el caso que hayamos perdido la misma; esto se relaciona en algo con el post recuperar contraseña de hojas de excel bloqueadas, la diferencia es que en este último caso podemos acceder al libro pero no a cierta hoja que se encuentra bloqueada con contraseña y que no recordamos.
MASTERCARD PAYONEER


Existe un gran libro sobre Excel el cual te ayudará manejar las planillas de cálculo, haz click acá, si quieres un libro sobre Excel, en inglés, entonces debes hacer click acá. Si lo que necesitas es aprender o profundizar sobre la programación de macros con VBA este es uno de los mejores cursos on line que he visto en internet.

Para poder desbloquear el proyecto de VBA, se deben seguir los siguientes pasos:


1. Se debe guardar el archivo como Libro de Excel 97-2003, si es que el archivo no tiene originalmente ese formato.

2. Una vez realizado esto en caso necesario, se debe ir a  Inicio y Ejecutar y escribimos CMD, cargandose el Editor de DOS.

3. Luego en el editor de DOS tipeamos edit/70




4. Aparece una pantalla azul, que es el viejo editor de Texto del DOS.



5. Luego Abrimos el archivo que contiene la contraseña que queremos eliminar del proyecto de VBA desde el editor de DOS.




    

6. Una vez abierto el archivo presionamos Buscar o Search y buscamos la palabra DPB. Puede suceder que DPB este, pero cortado por la línea y el buscador no lo encuentre, es decir puede aparecer "DP" en el final de la línea y en la línea siguiente  "B", entonces el buscador no lo va a encontrar, es por ello que en caso que no encuentres "DPB", busca el texto  "GC=" o "Host Extender Info", y delante de estas palabras, hay varios códigos raros pero busca unas líneas arriba y encontrarás "DPB" que reemplazarás por "DBx".




7. Cuando se encuentre la palabra DPB, reemplazamos por DBx, teniendo muchísimo cuidado de no borrar otros caracteres, ya que podemos inutilizar el archivo, tal cual se muestra en las imágenes siguientes.







8. Realizado lo anterior guardamos el archivo y cerramos el editor de DOS.

9. Abrimos el archivo de Excel que contiene el proyecto de VBA del cual no sabemos la contraseña, sale un mensaje de "error no esperado (40230)", damos escape o aceptar varias veces y desaparece.




10. Presionamos ALT + F11 para abrir el editor, si intentamos acceder al archivo nos sale "error no esperado (40230)".


11. Luego vamos a "Herramientas", posteriormente a "Propiedades de VBAProject..., en este cuadro de diálogo presionamos la pestaña "Protección" y escribimos una contraseña nueva y fácil de recordar como 1234 o presionamos el atajo de teclado ALT + H P. (cuadro de diálogo para ingresar el password).



12. Guardamos y cerramos el libro.


13. Abrimos el libro, presionamos ALT + F11, luego click en el archivo, nos solicita el password del proyecto de VBA e introducimos el nuevo que habíamos escrito y listo ya tenemos el proyecto de VBA sin restricciones.



14. Esto se debe usar para acceder a proyecto  de VBA de los cuales hayamos olvidado el password, pero sobre el cual tenemos derecho para su uso, no se debe usar para violar archivos sobre los cuales no tenemos el derecho de uso ni propiedad del mismo.






Si te fue de utilidad puedes INVITARME UN CAFÉ y de esta manera ayudar a seguir manteniendo la página.



If this post was helpful INVITE ME A COFFEE and so help keep up the page.


Si te gustó por favor compártelo con tus amigos
If you liked please share it with your friends      

Recuperar Password o Contraseña de hoja bloqueada



En un anterior pos se había expuesto una macro que crea un formulario que solicita password de acceso, ahora voy a mostrar como recuperar un password o contraseña de una hoja bloqueada o desbloquear hoja de excel; en desbloquear un proyecto de VBA se expone como desbloquear o recuperar clave de proyecto de VBA; es muy normal que por una cuestión de privacidad o seguridad se bloqueen las hojas, ya sea para que no se puedan ingresar nuevos datos o para que no se eliminen accidental o intencionalmente fórmulas o formatos.

Sucede que en muchas ocasiones se nos olvida el password o clave, con el consiguiente problema que no podemos modificar la hoja, entonces tenemos que ingresar de nuevo los datos, las fórmulas y aplicar los formatos que teníamos antes a los fines de rehacer la hoja, a pesar que nos lleva el doble de trabajo, esto no es problema cuando se trata de hojas simples; pero que sucede con planillas complejas sería muy trabajoso volver a realizar la hoja nuevamente, para ello y dar una solución te muestro esta macro que recupera el password o contraseña de hojas bloqueadas o protegidas.

Antes de seguir con el desarrollo y en el caso que no tengas conocimiento suficiente sobre el manejo de hojas de Excel, te recomiendo antes de introducirte en el mundo de las macros, que leas un excelente libro sobre Excel el que te ayudará manejar las planillas de cálculo, debes hacer click acá, si quieres un libro sobre Excel, en inglés, entonces debes hacer click acá.
MASTERCARD PAYONEER


Este ejemplo de macro o procedimiento de VBA que recupera password funciona de una manera muy sencilla, desde el link del final se puede descargar el archivo de ejemplo, de esta manera podrás ver su funcionamiento en forma más detallada.

El código de VBA o Macro de Excel que recupera password de hoja bloqueada se debe ingresar en un módulo, posicionarse en la hoja bloqueada y ejecutar la macro; en este ejemplo la hoja1 se encuentra bloqueada con el clave"1234" si se intenta modificar sale un letrero que no se puede, porque se encuentra bloqueada, para desbloquearla hay que ingresar el password, si no se recuerda el contraseña se tiene un problema que con esta macro se soluciona, lo que se debe hacer es ejecutar la macro denominada "DesprotegerHoja", corriendo un código que determina un password alternativo y por ende desbloquea la hoja dejando de esta manera la hoja de Excel accesible como si no tuviera clave, en otras palabras elimina la clave.

En el caso que seas principiante en el tema de las macros, lo que debes hacer es presiona Alt + F11, con ello se inicia el Editor de Visual Basic; posteriormente se debe insertar un módulo y pegar el código que se encuentra más abajo o en el archivo de ejemplo que descargues de esta página; luego te posicionas en la hoja que deseas desbloquear y ejecutas la macro.

La macro la puedes correr desde la ficha programador, seguidamente haz click en menú y luego en macros; o desde el Editor de Visual Basic; seleccionas el módulo donde esta el código de VBA, luego debes seleccionar la macro "DesprotegerHoja", según se muestra en la imagen;

Si no tienes habilitado la ficha programador en Excel, debes hacerlo desde "Archivo", luego "Opciones de Excel", posteriormente seleccionar "Personalizar cinta de Opciones" y tildar el menú programador en la parte derecha del formulario (ver la imagen anterior); luego de estos pasos quedará habilitado el menú programador pudiendo ejecutar macros desde dicho menú, para este caso seleccionar la macro "DesprotegerHoja".

Básicamente esta macro recupera el password, clave o contraseña de una hoja bloqueada, o desbloquear hoja de excel, como prefieras denominarlo; en otras palabras determina una clave alternativa y con ella desbloquea la hoja solucionando el problema del olvido de la clave de desbloqueo de la hoja de Excel. En el link del final podrás descargar el ejemplo y adaptarlo a lo que necesites.

Este código se debe usar con cuidado, en el sentido de que no está hecho para violar archivos sobre los cuales no se tiene el derecho de uso o propiedad del mismo, el fin de este código es poder desbloquear hojas de las cuales no recordamos la contraseña, password o clave de hojas de archivos o ficheros de los cuales tengamos el derecho de autor o uso de los mismos.

Código que se inserta en un módulo



Sub DesprotegerHoja()
On Error Resume Next
Dim a, b, c, d, e, f, g, h, i, j, k, l As Integer
Dim freepass
For a = 65 To 66: For b = 65 To 66: For c = 65 To 66
For d = 65 To 66: For e = 65 To 66: For f = 65 To 66
For g = 65 To 66: For h = 65 To 66: For i = 65 To 66
For j = 65 To 66: For k = 65 To 66: For l = 32 To 126

freepass = Chr(a) & Chr(b) & Chr(c) & Chr(d) & Chr(e) & Chr(f) _
& Chr(g) & Chr(h) & Chr(i) & Chr(j) & Chr(k) & Chr(l)
ActiveSheet.Unprotect freepass

    

If ActiveSheet.ProtectContents = False Then
MsgBox "Su hoja fue desprotegida correcatamente, el password alternativo fue: " & freepass, vbInformation, "****FREEPASS http://programarexcel.com****"
Exit Sub
End If
Next: Next: Next: Next: Next: Next
Next: Next: Next: Next: Next: Next

End Sub





Si te fue de utilidad puedes INVITARME UN CAFÉ y de esta manera ayudar a seguir manteniendo la página, CLICK para descargar en ejemplo en forma gratuita.



If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.


Si te gustó por favor compártelo con tus amigos
If you liked please share it with your friends