viernes, 29 de septiembre de 2017

VBA Access. Seleccionar fichero, carpeta, nombre de fichero guardar como, nombre de fichero a abrir

Option Compare Database
Option Explicit

'*****************************
'    'Ejemplo de uso
'    'selecciona 1 fichero de Excel
'    Dim RutaDoc() As String
'    RutaDoc = SelectItem(msoFileDialogFilePicker, "*.xls,*.xlsx", False, "Selección de fichero Excel")
'    
'    'comprueba si se ha seleccionado un fichero
'    If Len(Join(RutaDoc)) > 0 Then
'        Debug.Print "Fichero seleccionado: " & RutaDoc(0) 
'    End If
'*****************************/

Public Enum MsoFileDialogType
    msoFileDialogOpen = 1           'Permite al usuario abrir un archivo.
    msoFileDialogSaveAs = 2         'Permite al usuario guardar un archivo.
    msoFileDialogFilePicker = 3     'Permite al usuario seleccionar un archivo.
    msoFileDialogFolderPicker = 4   'Permite al usuario seleccionar una carpeta.
End Enum

Public Function SelectItem(ByVal tipo As MsoFileDialogType, Optional ByVal filtro As String, Optional ByVal bMultiSelect As Boolean = False, Optional TituloVentana As String = "") As String()
On Error GoTo error
    Dim fDialog As Object
    Dim intResult As Integer
    Dim i As Long
    Dim items() As String

    Set fDialog = Application.FileDialog(tipo)

    'Optional: FileDialog properties
    'fDialog.AllowMultiSelect = False
    'fDialog.title = "título de ventana"
    'fDialog.InitialFileName = "C:\"
   
    'Optional: Add filters
    'fDialog.Filters.Clear
    'fDialog.Filters.Add "File images", "*.jpeg"
    'fDialog.Filters.Add "All files", "*.*"

    'Optional
    'Application.FileDialog(tipo).ButtonName = "nombre del botón personalizado El nombre del botón : 'Abrir' por defecto"

    If TituloVentana <> "" Then fDialog.Title = TituloVentana

    fDialog.AllowMultiSelect = bMultiSelect

    If tipo = msoFileDialogFilePicker Then
        'limpiamos historial de filtros
        fDialog.Filters.Clear
        'aplicamos filtro
        If Nz(filtro, "") <> "" Then
            fDialog.Filters.Add filtro, filtro
        End If
    End If

    intResult = Application.FileDialog(tipo).Show
    If intResult <> 0 Then
        For i = 0 To Application.FileDialog(tipo).SelectedItems.Count - 1
            ReDim Preserve items(i)
            items(i) = Application.FileDialog(tipo).SelectedItems(i + 1)
        Next
    End If
   
    Set fDialog = Nothing
    SelectItem = items

Exit Function
Resume
error:
    Set fDialog = Nothing
    MsgBox Err.Description
End Function

1 comentario:

  1. Snippets Xavier: Vba Access. Seleccionar Fichero, Carpeta, Nombre De Fichero Guardar Como, Nombre De Fichero A Abrir >>>>> Download Now

    >>>>> Download Full

    Snippets Xavier: Vba Access. Seleccionar Fichero, Carpeta, Nombre De Fichero Guardar Como, Nombre De Fichero A Abrir >>>>> Download LINK

    >>>>> Download Now

    Snippets Xavier: Vba Access. Seleccionar Fichero, Carpeta, Nombre De Fichero Guardar Como, Nombre De Fichero A Abrir >>>>> Download Full

    >>>>> Download LINK

    ResponderEliminar

VBA Access. Redondeo de números decimales con el método medio redondeo. Alternativa a la función Round (bankers round)

 Private Function Redondeo(ByVal Numero As Variant, ByVal Decimales As Integer) As Double     'Aplica método medio redondeo (half round ...