¿Cómo seleccionar archivo, copiarlo y renombrarlo?

Para Dante Amor

Maestro... Acá le traigo otro problemita a ver si me puedes ayudar.

Necesito seleccionar un archivo mediante el dialogo de selección de archivo, para renombrarlo (nombre de combobox1) y luego copiarlo o moverlo a cierta carpeta (la misma del workbook).

¿Será posible?

1 respuesta

Respuesta
1

H o l a:

Primero quieres renombrar el archivo, es decir, ¿qué la macro le cambie el nombre?

¿Y después lo quieres copiar a otra carpeta?

¿O cómo sería la secuencia?

¿El combobox tendría el nuevo nombre?

¿El combobox es de un userform o un controlActiveX?

Maestro... lo que necesito es mostrar el típico cuadro de dialogo, tipo explorer, donde puedo seleccionar un archivo desde el pc, y este mismo archivo de extensión DOTX, renombrarlo al escritorio como & combobox1 & "dotx". Todo esto desde un userform.

Muchas gracias por tu tiempo!

H o l a:

Disculpa, pero sigo sin entender.

Vamos por partes.

1. Quieres que te muestre el cuadro de diálogo tipo explorador de windows para que selecciones un archivo.

2. Seleccionas el archivo.

3. ¿Quieres copiarlo a la carpeta de escritorio con un nuevo nombre?

4. ¿Va a tomar el nuevo nombre del combobox1?

Lo que pasa es que me confundes. No es lo mismo renombrar que copiar.

Sería más fácil si pones toda la explicación acompañada de ejemplos, imágenes y datos específicos, de esa forma sería más práctico realizar la macro.

Prueba con la siguiente:

Private Sub CommandButton1_Click()
'Por.Dante Amor
    If ComboBox1 = "" Then
        MsgBox "Escribe un nombre en el combo"
        Exit Sub
    End If
    '
    escritorio = CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\"
    With Application.FileDialog(msoFileDialogFilePicker)
        .Title = "Selecciona archivo"
        .Filters.Clear
        .Filters.Add "Todos los archivos", "*.*"
        .AllowMultiSelect = False
        .InitialFileName = ThisWorkbook.Path & "\"
        '.Show
        If .Show Then
            arch = .SelectedItems.Item(1)
            dia = InStrRev(arch, "\")
            rut = Left(arch, dia)
            nom = Mid(arch, dia + 1)
            pun = InStrRev(nom, ".")
            ext = Mid(nom, pun)
            'no2 = Left(nom, pun - 1)
            FileCopy arch, escritorio & ComboBox1 & ext
            MsgBox "Archivo copiado"
        End If
    End With
End Sub

':)
'S aludos. D a n t e   A m o r . R ecuerda valorar la respuesta. G racias
':)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas