Ayuda con macro!

buen dia expertos anteriormente solicite ayuda para hacer funcionar esta macro, gentilmente elsa matilde me dios una ayudita con unos comandos nuevos, mi problema es que no puedo hacerla funcionar de ninguna forma, me podrían ayudar,

lo que quiero hacer con esta macro es utilizar la opción aplication getopenfilename

para abrir un archivo que no se como se llama, por eso abro la ventana para buscarlo, este archivo lo quiero colocar en una variable para poder modificarlo y luego copiarle información de otros libros abiertos y pegarlo en el libro que con la opción, aplication getopenfilename.

esta es la macro, por favor échenle un vistazo agradeceré toda la ayuda que me puedan brindar

Dim progra As String
progra = Application.GetOpenFilename
If progra = "Falso" Then
MsgBox "Proceso Cancelado...", vbInformation
Exit Sub
Else
End If
Workbooks.Open (progra)

Columns("C:C").Select
Selection.Delete Shift:=xlToLeft
Columns("D:D").Select

1 Respuesta

Respuesta
1

La macro no dá error, lo que parece que te falta es el nombre de los otros libros como para pasar a ellos o buscar información de allí.

Luego del getopen... el libro activo es 'progra' con toda su ruta, entonces utiliza una variable:

librox = activeWorkbook.name

Previamente podes guardar también el de los otros libros, por lo menos el que estuvo activo hasta que llamaste a esta instrucción:

libro1 = Activeworkbook.name y así con todos los que necesites.

PD) queda solo 1 semana para que termine la promo de los manuales 2010 !

perdón por la ignorancia pero no he logrado que funcione mi macro, creo que no entiendo eso de como llamar a la variable después de abrir el archivo con la opción getopenfilename

si me pudieras explicar un poquito la sintaxis al utilizar este comando como una variables y tal vez un ejemplo simple no estaría demás,

esta es mi macro y no logro que funcione porque cuando quiero borrar la columna "D" del libro que abrí con el getopenfilename no lo hace y me hace otras cosas. no se que me falta.

Sub Macro1()
'
' Macro1 Macro
'
'
Dim progra As String
progra = Application.GetOpenFilename
If progra = "Falso" Then
MsgBox "Proceso Cancelado...", vbInformation
Exit Sub
Else
End If
Workbooks.Open (progra)
Selection.Delete Shift:=xlToLeft
Columns("D:D").Select
Selection.Delete Shift:=xlToLeft
Range("E8").Select
Windows("códigos.xlsm").Activate
Columns("C:D").Select
Selection.Copy
Windows(progra).Activate
Range("C1:D1").Select
ActiveSheet.Paste
Range("D8").Select
Windows("códigos.xlsm").Activate
Workbooks.Open Filename:="C:\Users\Molder\Documents\ventas.xlsx"
Range("B12:C33").Select
Application.CutCopyMode = False
Selection.Copy
Windows(progra).Activate
ActiveWindow.SmallScroll Down:=-6
Range("E1").Select
ActiveSheet.Paste
Range("E32").Select
Windows("códigos.xlsm").Activate
End Sub

Paso a explicar tu código (*)

Dim progra As String
progra = Application.GetOpenFilename
If progra = "Falso" Then
MsgBox "Proceso Cancelado...", vbInformation
Exit Sub
Else
End If
Workbooks.Open (progra)

'aquí el libro activo es el que acabas de abrir, pero la variable 'progra' tiene la ruta completa, x eso es mejor que utilices una variable para guardar solo su nombre

libro2=activeworkbook.name

Selection.Delete Shift:=xlToLeft

'aquí hacés mención a Selection... pero acabas de abrir el libro y aún no seleccionaste nada

'lo que sigue está bien si el libro que abirste tiene 1 sola hoja o sabes con certeza que se abrió en la hoja donde querés borrar la col D, mejor te lo asegurás con la siguiente línea, reemplazá Hoja2 x el nombre de tu hoja en libro progra

ActiveWorkbook.Sheets("Hoja2").select

Columns("D:D").Select
Selection.Delete Shift:=xlToLeft
Range("E8").Select
Windows("códigos.xlsm").Activate

'aquí volviste a tu libro y copiaste el contenido de col C:D
Columns("C:D").Select
Selection. Copy

'reemplazá la siguiente línea x la que dejo en negrita
'Windows(progra). Activate 'línea inhabilitada

Workbooks(libro2). Activate

'como ya seleccioné antes la hoja, solo hago mención a ella como ActiveSheet.
Activesheet.Range("C1:D1").Select
ActiveSheet.Paste
Range("D8").Select

'no hace falta volver al li bro código xq a continuación estás abriendo un 3er libro
'Windows("códigos.xlsm").Activate 'inhabilitada

Workbooks.Open Filename:="C:\Users\Molder\Documents\ventas.xlsx"

'aquí valen las mismas indicaciones de seleccionar previamente una hoja salvo que el libro tenga 1 sola.

ActiveWorkbook.Sheets("tu_hoja").select
Range("B12:C33").Select
Application.CutCopyMode = False
Selection.Copy

'nuevamente queda inhabilitada la sgte y en su reemplazo van las 2 negritas
'Windows(progra).Activate

workbooks(libro2).activate

Activeworkbook.sheets("Hoja2").select
ActiveWindow.SmallScroll Down:=-6
Range("E1").Select
ActiveSheet.Paste
Range("E32").Select
Workbooks("códigos.xlsm").Activate

'aquí regreso al libro original.

'ATENCIÓN: ahora han quedado 3 libros abiertos, siendo el activo el de nombre 'códigos'

End Sub

PD) En lugar de Windows acosstumbrate a usar Workbooks.

PD2) Así cómo te dejo esta macro explicada, así son los ejemplos de mis manuales: con aclaración línea x línea.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas