Boa noite, Hary
Crie um formulário
Coloque uma caixa de listagem (nomeie-a de ListaFicheiros)
- tipo de origem de linha: lista de valores
- selecções múltiplas: simples
Coloque um botão de comando (nomeie-o de CmdMover)
cole num módulo:
Sub ActualizaLista()
Dim objFS, objPasta, objFicheiro
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objPasta = objFS.GetFolder("C:\Users\User\Pictures\FotosDetentos")
ListaFicheiros.RowSource = ""
For Each objFicheiro In objPasta.Files
ListaFicheiros.AddItem objFicheiro.Name
Next
End Sub
código ao abrir do formaulário:
Private Sub Form_Open(Cancel As Integer)
Call ActualizaLista
End Sub
código para botão clique:
Private Sub CmdMover_Click()
On Error GoTo MostraErro
'Move Arquivos de uma pasta para Outra
Dim fso, Item
Dim strOrigem As String, strDestino As String
If ListaFicheiros.ItemsSelected.Count = 0 Then
MsgBox "Não tem nenhum ficheiro seleccionado."
Exit Sub
End If
strOrigem = "C:\Users\User\Pictures\FotosDetentos"
LePasta: strDestino = BrowseFolderPastaInicial("Escolha uma pasta para guardar o ficheiro", "C:\Syspen\Digita\Temp\")
If strDestino = "" Then
If MsgBox("Deve escolher uma pasta válida, ou cancelar a operação.", vbOKCancel) = vbYes Then
GoTo LePasta
Else
Exit Sub
End If
End If
Set fso = CreateObject("Scripting.FileSystemObject")
'Se é invalida a pasta de Origem ou Destino
If Not fso.FolderExists(strOrigem) Then
MsgBox strOrigem & " Caminho invalido para a pasta de origem.", vbInformation, "Erro"
ElseIf Not fso.FolderExists(strDestino) Then
MsgBox strDestino & " Caminho invalido para a pasta de destino", vbInformation, "Erro"
'Se não há arquivos a serem movidos
Else
For Each Item In ListaFicheiros.ItemsSelected
fso.MoveFile (strOrigem & "\" & ListaFicheiros.Column(0, Item)), strDestino
Next
Call ActualizaLista
MsgBox strOrigem & " ARQUIVOS MOVIDOS COM SUCESSO.", vbInformation, "Concluído"
End If
Exit Sub
MostraErro:
MsgBox err.Number & vbCr & err.Description
If err.Number = 53 Then MsgBox "Arquivos de Digital não encontrados..."
End Sub
Cumprimentos,
Crie um formulário
Coloque uma caixa de listagem (nomeie-a de ListaFicheiros)
- tipo de origem de linha: lista de valores
- selecções múltiplas: simples
Coloque um botão de comando (nomeie-o de CmdMover)
cole num módulo:
Sub ActualizaLista()
Dim objFS, objPasta, objFicheiro
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objPasta = objFS.GetFolder("C:\Users\User\Pictures\FotosDetentos")
ListaFicheiros.RowSource = ""
For Each objFicheiro In objPasta.Files
ListaFicheiros.AddItem objFicheiro.Name
Next
End Sub
código ao abrir do formaulário:
Private Sub Form_Open(Cancel As Integer)
Call ActualizaLista
End Sub
código para botão clique:
Private Sub CmdMover_Click()
On Error GoTo MostraErro
'Move Arquivos de uma pasta para Outra
Dim fso, Item
Dim strOrigem As String, strDestino As String
If ListaFicheiros.ItemsSelected.Count = 0 Then
MsgBox "Não tem nenhum ficheiro seleccionado."
Exit Sub
End If
strOrigem = "C:\Users\User\Pictures\FotosDetentos"
LePasta: strDestino = BrowseFolderPastaInicial("Escolha uma pasta para guardar o ficheiro", "C:\Syspen\Digita\Temp\")
If strDestino = "" Then
If MsgBox("Deve escolher uma pasta válida, ou cancelar a operação.", vbOKCancel) = vbYes Then
GoTo LePasta
Else
Exit Sub
End If
End If
Set fso = CreateObject("Scripting.FileSystemObject")
'Se é invalida a pasta de Origem ou Destino
If Not fso.FolderExists(strOrigem) Then
MsgBox strOrigem & " Caminho invalido para a pasta de origem.", vbInformation, "Erro"
ElseIf Not fso.FolderExists(strDestino) Then
MsgBox strDestino & " Caminho invalido para a pasta de destino", vbInformation, "Erro"
'Se não há arquivos a serem movidos
Else
For Each Item In ListaFicheiros.ItemsSelected
fso.MoveFile (strOrigem & "\" & ListaFicheiros.Column(0, Item)), strDestino
Next
Call ActualizaLista
MsgBox strOrigem & " ARQUIVOS MOVIDOS COM SUCESSO.", vbInformation, "Concluído"
End If
Exit Sub
MostraErro:
MsgBox err.Number & vbCr & err.Description
If err.Number = 53 Then MsgBox "Arquivos de Digital não encontrados..."
End Sub
Cumprimentos,