Detección de pendriver con excel

Consulta hay alguna fórmula o macro para que excel detecte si hay o no una unidad pendriver en el equipo

1 Respuesta

Respuesta
1

Prueba con:

Const lDispositivoRemovible = 1
Sub DetectarPenDrive()
    Dim FSo As FileSystemObject, FSDrive As Object, sTexto As String
    Set FSo = New Scripting.FileSystemObject
    For Each FSDrive In FSo.Drives
        If FSDrive.DriveType = lDispositivoRemovible And FSDrive.DriveLetter <> "A" Then
            sTexto = sTexto & vbNewLine & "Posible pendrive - unidad " & FSDrive.DriveLetter & ": - nombre: " & FSDrive.VolumeName
        End If
    Next FSDrive
    If Len(sTexto) <> 0 Then MsgBox sTexto, vbOKOnly
End Sub

Para que funcione el código hay que establecer una referencia a la librería "Microsoft Scripting Runtime" desde Herramientas->Referencias

Saludos_

La copie en mi libro, y al ver las referencias me aparecen muchas y la verdad no supe como relacionarlos :S

ejecute el archivo que me enviaste pero no hace nada 

Tienes que ejecutar la macro teniendo al menos un pendrive enchufado en el equipo. A mí me lo detecta.

Se me olvidaba: si no hay ningún pendrive, el código no hace nada.

lo probé como indicas y arroja un text box cuando hay un pendriver en el equipo, eso hace sierto

Application.DisplayFullScreen = True
MsgBox "SE PROCEDERA A GENERAR BACKUP AL SISTEMA", vbInformation, "ACQ SOFTWARE"
Sheets("MAIN MENU").Select
Shell "C:\AcqProyects\Bodega Equipos Rgis\testrgis.bat", vbNormalFocus
ActiveWorkbook.Sabe
Application.Quit

Ese código necesito que ejecute en ves del texto y si no hay pendriver que aparezca en text box

Prueba con:

Const lDispositivoRemovible = 1
Sub DetectarPenDrive()
    Dim FSo As FileSystemObject, FSDrive As Object, sTexto As String
    Set FSo = New Scripting.FileSystemObject
    For Each FSDrive In FSo.Drives
        If FSDrive.DriveType = lDispositivoRemovible And FSDrive.DriveLetter <> "A" Then
            sTexto = sTexto & vbNewLine & "Posible pendrive - unidad " & FSDrive.DriveLetter & ": - nombre: " & FSDrive.VolumeName
        End If
    Next FSDrive
    If Len(sTexto) = 0 Then
        MsgBox "No se encuentra ningún pendrive", vbCritical + vbOKOnly
    Else
        Application.DisplayFullScreen = True
        MsgBox "SE PROCEDERA A GENERAR BACKUP AL SISTEMA", vbInformation, "ACQ SOFTWARE"
        Sheets("MAIN MENU").Select
        Shell "C:\AcqProyects\Bodega Equipos Rgis\testrgis.bat", vbNormalFocus
        ActiveWorkbook.Save
        Application.Quit
    End If
End Sub

Lógicamente no he podido verificar que el código funcione si hay un pendrive (lo que va después del Else)  porque no tengo el fichero .bat

Saludos_

Al ejecutar me indica que hay un error de compilación:

No se ha definido el tipo definido por el usuario

¿

Algún lugar donde te pueda enviar el libro?

No uso dropbox. ¿Has establecido la referencia a la librería "Microsoft Scripting Runtime" tal como decía en mi primera respuesta?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas