Access - Modificar Excel desde Access

 
Vista:
sin imagen de perfil

Modificar Excel desde Access

Publicado por Boris (1 intervención) el 25/01/2022 13:56:10
Hola a Todos:

Tengo una duda como lo puedo hacer para dada una planilla excel que yo selecciono desde un formulario de access, agregar un valor en la octava columna de dicha planilla.

Ejemplo práctico; la cantidad de filas con registros pueden ser 10 como a veces pueden ser 100 filas. La primera fila siempre contiene los nombres de los campos, y, lo que siempre es fijo es la cantidad de columnas, 7.

Lo que quiero hacer es dada una condición por ejemplo si el valor de la celda B2 es falsa o verdadera, colocar en la celda H2 Falso o Veradero, según sea el rersulatado de la condición. Y así recorrer toda la columna hasta la celda final B10 ó B100.

Lo que tengo es lo siguiente. Abro díalogo para abrir archivo excel

Set OpenDialog = Application.FileDialog(3)
OpenDialog.AllowMultiSelect = False
OpenDialog.Title = "SELECCIONE ARCHIVO DE EXCEL..."
OpenDialog.Filters.Clear
OpenDialog.Filters.Add "EXCEL Files", "*.xlsx;*.xls;*.xlsm"
OpenDialog.Filters.Add "All Files", "*.*"
OpenDialog.Show

En este momento es dónde quiero leer y modificar el Excel solo en la última columna. En pocas palabras agregar una nota de resultado en la columna H según condición.

Luego hago un traspaso a una tabla temporal de Access.

DoCmd.SetWarnings False
DoCmd.TransferSpreadsheet acImport, , "TMP_CRG", Path, True
DoCmd.SetWarnings False

Alguien se anima ?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Norberto
Val: 1.094
Oro
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Modificar Excel desde Access

Publicado por Norberto (80 intervenciones) el 08/02/2022 10:59:05
Hola:

Una vez que tienes elegido el libro de Excel a través del cuadro de diálogo lo que tienes que hacer es abrirlo desde Access.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
...
    Dim xlsApp As Excel.Application, xlsWrkBk as Excel.WorkBook, xlsSheet as Excel.WorkSheet, xlsRango as Excel.Range
    ...
 
    Set xlsApp = CreateObject("Excel.Application") 'Abrimos una instancia de Excel
    Set xlsWrkBk = xlsApp.WorkBooks.Open OpenDialgo.SelectedItems(1) 'Abrimos el libro
    Set xlsSheet = xlsWrkBk.WorkSheets(1) 'Seleccionamos la primera hoja
    Set xlsRAngo = xlsSheet.Range("B2") 'Seleccionamos la celda B2
    Do Until isEmpty(xlsRango) 'Mientras haya algo en la celda seleccionada
        xlsRango.Offset(0,6) = LoQueSeaQueQuierasPoner  'Ponemos algo en la celda de la columna H
        Set xlsRango = xlsRango.Offest(1) 'Seleccionamos la siguiente fila
        DoEvents
    Loop
 
    ...
    xlsWrkBk.Save 'Guardamos el libro
    xlsApp.Quit 'Salimos de Excel
 
    'Vaciamos las variables de objeto
    Set xlsApp = Nothing
    Set xlsWrkBk = Nothing
    Set xlsSheet = Nothing
    Set xlsRAngo = Nothing
...

Para que funcione tienes que añadir la referencia a Microsoft Excel XX.X Object Library.

Un saludo,

Norberto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar