Академический Документы
Профессиональный Документы
Культура Документы
6.
StatusBar. Devuelve o establece el texto en la barra de estado.
7.
Worksheets. Es la coleccin de archivos abiertos en una instancia de Excel.
Ejemplos
Asigar un texto a la barra de estado.
Application.StatusBar = Ejemplo de texto
Devolver la cantidad de archivos abierto.
MsgBox Application.Workbooks.Count
Coleccin Workbooks
Es la coleccin de todos los archivos abiertos en Excel. El objeto Workbooks tiene
los siguientes mtodos importantes:
1.
2.
3.
ActiveWorkbook.
2.
ThisWorkbook.
Si el archivo que deseamos aplicarle un mtodo del objeto Workbooks es diferente
al archivo activo, podemos utilizar:
1.
Workbooks(Archivo.xlsx).Mtodo
Ejemplos
Cerrar el Libro2.
Workbooks(Libro2.xlsx).Close
Abrir un archivo.
Workbooks.Open (C:\Users\Sergio A Campos H\Documents\Archivo.xlsx)
Coleccin Sheets
Es la coleccin de las hojas que tiene un libro de Excel. El objeto Worksheets tiene
los siguientes mtodos:
1.
2.
3.
4.
5.
[Propiedad] Visible. Define si una hoja es visible o no.
Otras referencias que podemos manejar las hojas de clculo son:
1.
ActiveSheet. Es la hoja activa.
2.
Worksheets. Similar a Sheets.
Ejemplos
Aadir una hoja.
Sheets.Add
Ocultar la hoja 2.
Sheets(Hoja2).Visible = False
Mostrar la cantidad de hojas en el libro.
MsgBox Worksheets.Count
Objeto Range
Se refiere a un conjunto de celdas, filas o columnas en una hoja de clculo. El
objeto Rangetiene los siguientes mtodos:
1.
Activate. Activa una sola celda.
2.
3.
4.
5.
6.
7.
Select. Selecciona una celda o todo un rango.
De la misma manera el objeto Range tiene entre otros, las siguientes propiedades:
1.
Address. Devuelve la direccin del rango.
2.
3.
4.
5.
6.
7.
Offset. Se refiere a un rango desplazado hacia cualquier direccin.
8.
Value. Devuelve o establece un texto a un rango.
Si deseamos referirnos slo a una celda, podemos usar:
1.
2.
Range(A1). Se refiere a la celda A1.
3.
[A1]. Se refiere a la celda A1.
Ejemplos
Asignar un valor a un rango.
Range(A1:A10).Value = Texto
Asignar una frmula a una celda.
Range(B1).FormulaLocal = =CONTARA(A1:A10)
4 maneras de ingresar un valor a una celda
Para asignar un valor a una celda, nos podemos ir de lo particular a lo general,
todo dependiendo de si estamos en la hoja donde est celda o referirnos a una
celda en otra hoja y otro libro.
[A1].Value = A
Range(A2).Value = B
Sheets(Hoja1).Range(A3).Value = C
Workbooks(Libro1).Sheets(Hoja1).Range(A4).Value = D
Tags: Application, Excel, Excel vba, EXCELeINFO, Range, Workbooks, Worksheets
La siguiente macro que les comparto es en base a una consulta que me hicieron en
en Blog. La pregunta deca:
La idea es la siguiente: Tengo n archivos y todos ellos contienen en la celda
E6 una valor que quiero modificar. Los nuevos valores los tengo en un listado
tambin en excel, que relaciona cada archivo.
Existe alguna manera de grabar una macro para cambiar automticamente
todos los archivos en lugar de abrir uno por uno?
Fue entonces cuando ca en la cuenta que ya antes haba visto que usuarios tenan
esa duda, por lo que decid hacer este artculo.
Modificando un archivo en particular
En la siguiente macro, modificamos la ruta y nombre completo en la
variable NombreArchivo.
Sub Modificar1XLCerrado()
'Declaramos variables
Dim Archivo As Application
Dim NombreArchivo As String
'
'Creamos el objecto Excel
Set Archivo = CreateObject("Excel.Application")
'
With Archivo
'
'Asignamos el nombre del archivo
NombreArchivo = "C:\carpeta\Libro1.xlsx"
'
'Validamos si el archivo ya est abierto
If IsFileOpen(NombreArchivo) Then
Else
'
With .Workbooks.Open(NombreArchivo)
'Hacemos las modificaciones en el archivo
.Worksheets("Hoja1").Range("A1").Value = "Total1"
.Worksheets("Hoja1").Range("A2").Value = 11
'Cerramos el archivo guardando cambios
.Close SaveChanges:=True
End With
End If
'
'Cerramos la aplicacin de Excel
.Quit
End With
End Sub
Modificando varios archivos
Para esta macro recomiendo hacer una lista con las rutas y los nombres de los
archivos a modificar. Antes de ejecutar la macro debemos seleccionar el listado
para que el constructorFor Each Next haga el resto. La lista la podremos generar
con mi herramienta que viene dentro de EXCELeINFO addin para enlistar archivos.
La siguiente es una tabla de ejemplo.
Macro
Sub ModificarXLCerrados()
'Declaramos variables
Dim Archivo As Application
Dim Celda As Object
Dim NombreArchivo As String
'
'Creamos el objecto Excel
Set Archivo = CreateObject("Excel.Application")
'
With Archivo
'
'Recorremos cada celda de la seleccin para tomar el nombre de cada archivo
For Each Celda In Selection
NombreArchivo = Celda.Value
'
'Validamos si el archivo ya est abierto
If IsFileOpen(NombreArchivo) Then
Else
'
With .Workbooks.Open(NombreArchivo)
'Hacemos las modificaciones en el archivo
.Worksheets("Hoja1").Range("A1").Value = "Total"
.Worksheets("Hoja1").Range("A2").Value = 10
errnum = Err
On Error GoTo 0
IsFileOpen = True
' Another error occurred.
Case Else
Error errnum
End Select
End Function
Tags: CreateObject, Excel, EXCELeINFO, IsFileOpen, Modificar Excel sin abrirlo
2 Comments
2 Responses
1.
mario vergara
23 January, 2014 at 12:47
Gracias!
Reply
2.
SebaXX
16 March, 2014 at 20:13
ok11
ok12
ok13
ok14
ok15
Diario_ene_2008.xls
Diario_Feb_2008.xls
Diario_Mar_2008.xls
Diario_Abr_2008.xls
Diario_May_2008.xls
Lo primero que vas a hacer, es crear una funcin dentro de la cual vas a
colocar todo el cdigo que voy a mostrarte a continuacin. Si an tienes
dudas de cmo crear una funcin en VBA, puedes pinchar aqu
La funcin que vas a crear, para el ejemplo, debe tener el nombre
abrirArchivo.
El nombre del archivo y su ruta.
strArchivo = C:\MiCarpeta\MiArchivo.xls
Y con eso ya tendras almacenado el nombre de tu archivo. Pero, y si
quisiera abrir un archivo diferente cada vez? Pues entonces, lo haremos
interactivo!
Usando el mtodo GetOpenFilename
Application.GetOpenFilename
Al final, el cdigo que tengas, debe verse as:
Nota
strArchivo = Application.GetOpenFilename
Abriendo el archivo.
Nota
39.
' Set the title of the dialog box.
40.
.Title = "Select One or More Files"
41.
42.
' Clear out the current filters, and then add your own.
43.
.Filters.Clear
44.
.Filters.Add "Access Databases", "*.MDB"
45.
.Filters.Add "Access Projects", "*.ADP"
46.
.Filters.Add "All Files", "*.*"
47.
48.
' Show the dialog box. If the .Show method returns True, the
49.
' user picked at least one file. If the .Show method returns
50.
' False, the user clicked Cancel.
51.
If .Show = True Then
52.
' Loop through each file that is selected and then add it to the list box.
53.
For Each varFile In .SelectedItems
54.
Me.FileList.AddItem varFile
55.
Next
56.
Else
57.
MsgBox "You clicked Cancel in the file dialog box."
58.
End If
59. End With
60. End Sub
61. Guarde el formulario como Form1y cirrelo.
62. En la ventana Base de datos, seleccione Form1y, a continuacin, haga clic
en Abrir para abrir el formulario en la vista formulario.
63. Haga clic en Agregar archivos. Aparecer el cuadro de
dilogo Seleccione uno o ms archivos .
64. Seleccione uno o ms archivos y, a continuacin, haga clic en Aceptaro
haga clic en Cancelar.
Si selecciona uno o ms archivos, observar que los nombres de archivo aparecen en el
cuadro de lista. Si hace clic en Cancelar, puede aparecer un mensaje que indica que
se hizo clic en Cancelar.
Volver arriba | Enviar comentarios
Mtodo 1
Este cdigo de Visual Basic utiliza las constantes xlDialogOpen y xlDialogSaveAs para
mostrar el cuadro de dilogo.
Para abrir un archivo:
Application.Dialogs(xlDialogOpen).Show
Para abrir un archivo denominado "myacct.xls" en el directorio "c:\personal":
Application.Dialogs(xlDialogOpen).Show _
("c:\personal\myacct.xls")
Para guardar un archivo:
Application.Dialogs(xlDialogSaveAs).Show
Para guardar un archivo en el directorio "c:\public" denominado "acct.xls":
Application.Dialogs(xlDialogSaveAs).Show _
("c:\public\acct.xls")
Mtodo 2
Utilice los mtodos GetOpenFilename y GetSaveAsFilename para recuperar el nombre
de archivo junto con los mtodos Open o Close.
Para abrir un archivo:
Workbooks.Open filename:=Application.GetOpenFilename
Para guardar el libro activo:
Activeworkbook.SaveAs filename:=Application.GetSaveAsFilename
Mtodo 3
Utilizar los equivalentes del lenguaje de macros de Microsoft Excel 4.0 para mostrar los
cuadros de dilogo.
Para abrir un archivo:
Application.ExecuteExcel4Macro("OPEN?()")
Para guardar un archivo:
Application.ExecuteExcel4Macro("SAVE.AS?()")
Para obtener informacin adicional, consulte los siguientes artculos en Microsoft
Knowledge Base:
104581 Macro para cambiar el valor predeterminado *. XL * a *. * en el cuadro de
dilogo Abrir
Volver arriba | Enviar comentarios
AZUROUS IN EXCEL
There may be times when you need to ask the user to select
a file to open. This can be done using the open file dialog. Keep
in mind that the open file dialogs doesnt actuallyopen anything.
It returns the path of the file or files selected.
You can download the workbook for this article here.
Jump To:
Example 1
Example 2
Custom Title
Start Folder Path, InitialFilePath
Filter File Types, Filters
-
is
then
dialog doesnt
printed
in
cell
A2.
Note
that
theopen
only
file
returns
Result:
The line below tells the program to only allow the user to select
one file:
Application.FileDialog(msoFileDialogOpen).AllowMultiSelect
= False
The line below makes the open file dialog visible to the user:
intChoice
Application.FileDialog(msoFileDialogOpen).Show
If the user cancels the dialog, intChoice will return 0. The line
below returns the path selected by the user:
strPath = Application.FileDialog( _
msoFileDialogOpen).SelectedItems(1)
to select
1 the
user
is
file
dialog doesnt
only
Dim i As Integer
Result:
Custom Title:
By default the title of the Open File Dialog is Open File:
Using
the
.Title property
you
can
set
the dialog. In the example below the title Random Title For
Dialog will be used:
Sub Example3()
Dim intChoice As Integer
Result:
below
the open
file
Result:
But when the open file dialog appears, we only want the user to
see the .txt files. This can be achieved by applying a filter:
Sub Example5()
Dim intChoice As Integer
Result:
The line below removes all other filter options from the filter list:
Call Application.FileDialog(msoFileDialogOpen).Filters.Clear
The line below adds a custom filter. The name of the custom
filter is Text Files Only. The expressions *.txt means that we
only want the files that end in .txt to appear in the dialog:
Call Application.FileDialog(msoFileDialogOpen _
).Filters.Add("Text Files Only", "*.txt")