Cambiar carpeta por medio de macros

Hola experto
Quisiera que me ayudaran
En este código
Lo que deseo hacer
Es preguntar al usuario
La carpeta del mes que desea remplazar
Es decir donde esta mes 1 y mes2
Solicito los 2 meses a remplazar el primero origen y el otro que deseo remplazar
en donde dice
selection remplace y dice una dirección donde dice abril quiero que este la variable mes 1
y donde dice mayo que este la variable mes2
para que cuando el usuario le de en los input box
el mes 1 aparezca en donde dice abril
y mes 2 donde dice mayo
para poder remplazar la carpeta de ese mes
espero me puedan ayudar
saludos cordiales
Sub cambiarmes()
If Selection.Rows.Count < 65536 Then
MsgBox "Seleccione la columna para que se pueda efectuar el cambio"
Else
mes1 = InputBox("mes que desea sustituir?", "ORIGEN", Now())
If mes1 = Empty Then Exit Sub 'mejorar con revisión validez fecha
mes2 = InputBox("mes nuevo?", "DESTINO", Now())
If mes2 = Empty Then Exit Sub 'mejorar con revisión fecha
'Le preguntarás al usuario por las fechas a sustituir y la nueva, y
Selection.Replace What:="GPP\Reportes\MORELOS\REPORTE\ABRIL\[MORELOS", _
Replacement:="GPP\Reportes\MORELOS\REPORTE\MAYO\[MORELOS", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Exit Sub
End If
End Sub

3 respuestas

Respuesta
1
Supongo que este código te funciona y lo que quieres es poderlo reutilizar con cualquier mes, si es así se me ocurre que puedes hacerlo así, antes de la instrucción Selection. Replace:
dim origen as string
dim destino as string
origen="GPP\Reportes\Morelos\Reporte\" & mes1 & "\[Morelos"
destino = "GPP\Reportes\Morelos\Reporte\" & mes2 & "\[Morelos"
Selection.Replace What:= origen, _
Replacement:= destino, _
SearchOrder:=xlByRows, _
MatchCase:=False, _
ReplaceFormat:=false
end if
end sub
Respuesta
1
Intenta esto
Sub cambiarmes()
If Selection.Rows.Count < 65536 Then
MsgBox "Seleccione la columna para que se pueda efectuar el cambio"
Else
mes1 = InputBox("mes que desea sustituir?", "ORIGEN", Now())
If mes1 = Empty Then Exit Sub 'mejorar con revisión validez fecha
mes2 = InputBox("mes nuevo?", "DESTINO", Now())
If mes2 = Empty Then Exit Sub 'mejorar con revisión fecha
'Le preguntarás al usuario por las fechas a sustituir y la nueva, y
Selection.Replace What:="GPP\Reportes\MORELOS\REPORTE\" + mes1 + "\[MORELOS", _
Replacement:="GPP\Reportes\MORELOS\REPORTE\" + mes2 + "\[MORELOS", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Exit Sub
End If
End Sub
Ojala te sirva saludos. También funciona en lugar de + usar el ampersand "&""para concatenar los strings.
Respuesta
1
En vez de escribir Selection.Replace What:="GPP\Reportes\MORELOS\REPORTE\ABRIL\[MORELOS", puedes escribir lo siguiente: Selection.Replace What:= A1, lo que significa que la macro vaya a buscar lo que dice en A1. Por lo tanto en A1 debe decir "GPP\Reportes\MORELOS\REPORTE\ABRIL\[MORELOS" y para ir cambiando el mes lo que debes hacer es tener esa frase en otra celda, por ejemplo:
GPP\Reportes\MORELOS\REPORTE en la B1
ABRIL en la B2
[MORELOS en la B3
En la A1 debes concatenar("B1";"B2";"B3") para que aparezca GPP\Reportes\MORELOS\REPORTE\ABRIL\[MORELOS
Por lo tanto, los meses debes cargarlos en la celda B2.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas