si manejo el 2007 pero solamente me abre el primer archivo no entiendo el por que u.u mi macro completa quedo asi pero igual no encuentro como salatar el error cuando ya abrió todo el archivo de excel
Private Type BROWSEINFO ' used by the function GetFolderName
hOwner As Long
pidlRoot As Long
pszDisplayName As String
lpszTitle As String
ulFlags As Long
lpfn As Long
lParam As Long
iImage As Long
End Type
Private Declare Function SHGetPathFromIDList Lib shell32.dll _
Alias SHGetPathFromIDListA (ByVal pidl As Long, ByVal pszPath As String) As Long
Private Declare Function SHBrowseForFolder Lib shell32.dll _
Alias SHBrowseForFolderA (lpBrowseInfo As BROWSEINFO) As Long
Function GetFolderName(Msg As String) As String
' returns the name of the folder selected by the user
Dim bInfo As BROWSEINFO, path As String, r As Long
Dim X As Long, pos As Integer
bInfo.pidlRoot = 0& ' Root folder = Desktop
If IsMissing(Msg) Then
bInfo.lpszTitle = Select a folder.
' the dialog title
Else
bInfo.lpszTitle = Msg ' the dialog title
End If
bInfo.ulFlags = &H1 ' Type of directory to return
X = SHBrowseForFolder(bInfo) ' display the dialog
' Parse the result
path = Space$(512)
r = SHGetPathFromIDList(ByVal X, ByVal path)
If r Then
pos = InStr(path, Chr$(0))
GetFolderName = Left(path, pos - 1)
Else
GetFolderName =
End If
End Function
Sub TestGetFolderName()
Dim FolderName As String
FolderName = GetFolderName( Select a folder )
If FolderName = Then
MsgBox No seleccionaste una carpeta.
Else
MsgBox FolderName
End If
MsgBox Terminado , vbInformation
Dim archivo As String
Dim j As Integer
j = 1
ChDir c:\
FolderName = FolderName & \
MsgBox FolderName, vbInformation
If Len(Trim(FolderName)) = 0 Then Exit Sub
ChDir FolderName
Workbooks.Open FolderName & Dir( *.xlsx , vbArchive)
MsgBox FolderName & ActiveWorkbook.Name, vbInformation
archivo = ActiveWorkbook.Name
Do While archivo <>
'impresión en dormato pdf
Worksheets.Select
j = Len(ActiveWorkbook.Name) 'conocer la longitud del nombre incluye la extensión
Name = & Left(ActiveWorkbook.Name, j - 4) &
ruta = ActiveWorkbook.path & \ & Name
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
ruta, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
'abrir el siguiente libro en la misma path de la carpeta
Workbooks.Close
Workbooks.Open FolderName & Dir
On Error GoTo salir
archivo = ActiveWorkbook.Name
Do Until Err.Number <> 0
On Error Resume Next
Workbooks.Open FolderName & Dir
MsgBox FolderName & Dir, vbInformation
DoEvents
Loop
Loop
salir:
End Sub
en esta combine información que usted me proporciono con otra que encontré creo que en el mismo foro el cual abre busca la carpeta, si pudiera encontrar el como saltar el bucle me seria de gran ayuda ademas si usted puede correrla y verificar que le guarde en pdf todos sus archivos de excel ya que a mi me salta unos y otros si me los guarda
disculpe si esta un poco extenso
He probado con excel 2016 y no funciona, y con excel 2007 si - Poc Poc