Dificultad con Macros

Iniciado por ssccaann43 ©, 15 Diciembre 2010, 20:43 PM

0 Miembros y 1 Visitante están viendo este tema.

ssccaann43 ©

Bien, expongo un poco algo que debo resolver y no encuentro manera de como hacerlo..

Debo armar una macro en excel, que recorra ciertas filas para hacer un insert en una BD...

Sinceramente nunca me he metido con macros, estoy un poco perdido, agradezco una orientación... dejo una imagen del archivo excel que debo manejar, para hacerles una idea...



Deseo es leer los registros y luego hacer un insert en la BD... saludos
  ;D
- Miguel Núñez
Todos tenemos derechos a ser estupidos, pero algunos abusan de ese privilegio...
"I like ^TiFa^"

BlackZeroX

#1
.
Si es un excel puedes usar SQL.


Tema similar (solo que a un mshflexgrid):

Como exportar MSHFlexgrid1 a Excel? - Expertos en vb6.0

En si en el vba al escribir una clase te vienen las subclases o propiedades de la misma, es como en vb6...

Dulces Lunas!¡.
The Dark Shadow is my passion.

ssccaann43 ©

Brother quiero hacer todo lo contrario...! Esa información  ya esta en el archivo excel..!

Debo construir la macro dentro del Excel, para que al ejecutarla pues la informacion que contenga en las celdas, pueda insertarla en una BD...! Me sigues?
- Miguel Núñez
Todos tenemos derechos a ser estupidos, pero algunos abusan de ese privilegio...
"I like ^TiFa^"

BlackZeroX

#3
Cita de: BlackZeroX▓▓▒▒░░ en 15 Diciembre 2010, 21:27 PM

En si en el vba al escribir una clase te vienen las subclases o propiedades de la misma, es como en vb6...


No me explique bien vdd?.

Has de cuenta que una hoja en excel es un form de vb6, las hojas traen eventos al igual que los forms, bueno aprovecha dichos eventos, ademas cada celda digase que son textbox con indices, por asi llamarlos asiq ue con cells o range puedes hacer referencia a los mismos.

y en el vba puedes usar CreateObject para manejar ADO

Código (Vb) [Seleccionar]


Set rst = CreateObject("ADODB.Recordset")
Set cn = CreateObject("ADODB.Connection")  
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data " & _  
                            "Source=C:\Archivos de programa\Microsoft " & _  
                            "Visual Studio\VB98\NWIND.MDB;Persist Security Info=False"



...

tambien para indicar una celda espesificamente puedes usar

la propiedad Cells de la hoja. vba te va dando las pautas...

Dulces Lunas!¡.
The Dark Shadow is my passion.

ssccaann43 ©

Bueno, ya vere como me doy trompadas con eso...!
- Miguel Núñez
Todos tenemos derechos a ser estupidos, pero algunos abusan de ese privilegio...
"I like ^TiFa^"

ssccaann43 ©

Black, al menos crees poder guiarme como hacer quizas un for segun la imagen para obtener los valores ubicados desde la fila 5 a la fila 8, leyendo desde la A hasta la K.? Estoy perdido, te lo juro que estoy perdido, busco ejemplos y nada...!
- Miguel Núñez
Todos tenemos derechos a ser estupidos, pero algunos abusan de ese privilegio...
"I like ^TiFa^"

79137913

HOLA!!!

Aca te dejo un codigo que pinta las celdas si en su interior hay un 1 :

Código (vb) [Seleccionar]

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    For X = 2 To 7
        If Range("B" & X) = 1 Then
            Range("B" & X).Interior.ColorIndex = 35
        Else
            Range("B" & X).Interior.ColorIndex = 0
        End If
        If Range("C" & X) = 1 Then
            Range("C" & X).Interior.ColorIndex = 35
        Else
            Range("C" & X).Interior.ColorIndex = 0
        End If
    Next
End Sub


GRACIAS POR LEER
"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

79137913                          *Shadow Scouts Team*

Novlucker

Cita de: ssccaann43 en 15 Diciembre 2010, 22:47 PM
Black, al menos crees poder guiarme como hacer quizas un for segun la imagen para obtener los valores ubicados desde la fila 5 a la fila 8, leyendo desde la A hasta la K.? Estoy perdido, te lo juro que estoy perdido, busco ejemplos y nada...!

Ejemplos hay a patadas por todos lados :¬¬ , a ver si esto te aclara las cosas
Código (vb) [Seleccionar]
For Each c In Range("A5:K8")
   MsgBox c.Value
Next

Ten en cuenta que cuando se recorren los valores van por filas

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

ssccaann43 ©

- Miguel Núñez
Todos tenemos derechos a ser estupidos, pero algunos abusan de ese privilegio...
"I like ^TiFa^"

BlackZeroX

#9
.
Pero ten en cuenta Range es para el nombre de las celdas mientras que cell es por coordenadas...

Código (Vb) [Seleccionar]


Cells(Fila, Columna).Value = un valor X

o

Cells(48, 5).Value = un valor X

o para colorear = que Range...

Cells(5, 9).Interior.ColorIndex = 5 



Cells te devuelve la misma clase o propiedades de Range. solo que no te aparecen las propiedades dichas...

Dulces Lunas!¡.
.
The Dark Shadow is my passion.