fijar informacion en celdas

10/01/2005 - 23:10 por Ricardo Hdz | Informe spam
Hola Grupo
tengo una macro que me trae informacion de una base de
datos en access a una hoja de excel, pero al momento en
que me trae la informacion me la pega en excel tal y como
esta en la base de datos, lo que yo quiero hacer es
asignarle celdas especificas a la informacion.
me trae la informacion asi
ID MOLDURA COLOR
1 9362103 rojo
2 1321023 azul
3 1234567 verde

y la quiero asignar asi
ID 1
MOLDURA 9362103 COLOR rojo

es como decir celda "B4" = Historia.NumMoldura
"B3" = Historia.ID
"D5" = Historia.Color

Espero me puedan ayudar

Saludos.
 

Leer las respuestas

#1 Héctor Miguel
11/01/2005 - 09:33 | Informe spam
hola, Ricardo !

... una macro ... me trae ... de una base de datos en access a una hoja de excel
... pero ... la pega ... tal y como esta en la base de datos ... yo quiero ... asignarle celdas especificas [...]
me trae la informacion asi
ID MOLDURA COLOR [...]
y la quiero asignar asi
ID 1
MOLDURA 9362103 COLOR rojo
es como decir celda
"B4" = Historia.NumMoldura
"B3" = Historia.ID
"D5" = Historia.Color [...]



suponiendo los 'campos/columnas' de la base de datos que requieres importar es 1°, 2° y 3° [0, 1 y 2]
y que 'el orden' de salida para la hoja en excel es...
registro 1 = 'B3', 'B4' y 'D5'
registro 2 = 'B6', 'B7' y 'D8' [etc. es decir, cada registro -de access- 'ocupa' 3 filas -en excel-]...
prueba con la siguiente macro y... ¿comentas?
=> no olvides modificar la ruta al archivo y el nombre de la tabla por 'las reales' <= Y...
=> establecer PRIMERO una referencia en el proyecto de macros a la biblioteca de objetos:
'Microsoft ActiveX Data Objects x.x' [donde x.x es el numero de version de la biblioteca] <= OJO
saludos,
hector.
en un modulo de codigo 'normal' ==Sub ImportarTablaDeAccess()
Dim ArchivoMDB As String, Tabla As String, Rango As String, _
Conexion As ADODB.Connection, Registros As ADODB.Recordset, Fila As Long
ArchivoMDB = "C:\Ruta y\Carpetas al\Archivo.mdb"
Tabla = "Nombre_de_la_tabla_en_access"
Rango = "b3"
Set Conexion = New ADODB.Connection
Conexion.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & ArchivoMDB & ";"
Set Registros = New ADODB.Recordset
Registros.Open Tabla, Conexion, adOpenStatic, adLockOptimistic, adCmdTable
On Error Resume Next: Registros.MoveFirst: On Error GoTo 0
With Range(Rango)
Do While Not Registros.EOF: On Error Resume Next
.Offset(Fila) = Registros.Fields(0).Value
.Offset(Fila + 1) = Registros.Fields(1).Value
.Offset(Fila + 2, 2) = Registros.Fields(2).Value
Fila = Fila + 3: On Error GoTo 0: Registros.MoveNext
Loop
End With
Registros.Close: Set Registros = Nothing: Conexion.Close: Set Conexion = Nothing
End Sub

Preguntas similares