Visual Basic - Problema con Visual Basic y excel

Life is soft - evento anual de software empresarial
 
Vista:

Problema con Visual Basic y excel

Publicado por Mauricio Asprilla (1 intervención) el 28/05/2007 04:24:35
Buenas, es que tengo un inconveniente con un programa que estoy haciendo en visual basic.
Yo soy un principiante en el mundo de la programación, y estoy ayudando a una empresa a crear un programa que copie fragmentos de una hoja de cálculo de excel y la exporte a otro archivo, el cual éllos definen el nombre. Bueno, por ese lado no hay problema, funciona perfectamente, pero esta gente quiere, que con cierta información que esté escrita en una celda de una columna, sirva para poder seleccionar toda la fila que contiene a esa celda, y pegarla en otro archivo de Excel, intenté hacerlo con un bucle, pero me saca un error de tiempo de ejecución, y se me agotaron las ideas para poder terminar ese programa, alguien que sepa, y lea esta pregunta, por favor responderla para así sacar este programa adelante.

Muchisimas gracias.
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

RE:Problema con Visual Basic y excel

Publicado por Andres Escobar (63 intervenciones) el 29/05/2007 00:27:18
Hola mauricio pues en lo poquito que entiendo de tu problema pienso que esta seria la solucion a el:

lo primero que debes hacer es crear la referencia a excel
luego lo que hacemos es crear una variable al objeto de excel

Dim XL As Excel.Workbook

con este codigo abres el archivo de excel:
Set XL = GetObject("C:\Office_Address_List.xls")
XL.Application.Visible = True
XL.Application.Windows(1).Visible = True
XL.Application.Sheets("Office").Select '
XL.Application.DisplayAlerts = False 'Desabilita cualquier mensaje de alerta

vamos ahora a recorrer cada una de las celdas para ver si tiene el valor que necesitamos para este ejemplo voy a crear un bucle de unas 10 repeticiones y el valor que va a buscar es MEDELLIN, si encuentra alguna coincidencia entonces selecciona la columna D y la copia, luego abre otro archivo y alli copia todo el contenido de esa columna en la colomna B del archivo nuevo

Dato= MEDELLIN
For reg = 1 To 200
If XL.Application.ActiveSheet.Range("B" & reg) = Dato Then
XL.Application.ActiveSheet.Columns("A:A").Select
XL.Application.Selection.Copy
XL.Application.ActiveWorkbook.Saved = True
XL.Application.Quit 'cierra el archivo actual
Set XLn = GetObject("C:\Nuevo.xls") 'abre el nuevo archivo
XLn.Application.Visible = True
XLn.Application.Windows(1).Visible = True
XLn.Application.Sheets("Hoja1").Select '
XLn.Application.DisplayAlerts = False 'desabilita cualquier alerta que pueda generar
XLn.Application.ActiveSheet.Columns("B:B").Select
XLn.Application.ActiveSheet.Paste
XLn.Application.ActiveWorkbook.Save
XLn.Application.ActiveWorkbook.Saved = True
XLn.Application.Quit 'cierra el archivo nuevo
Set XL = GetObject("C:\Office_Address_List.xls") 'abre nuevamente el anterior para continuar con la comprobacion
XL.Application.Visible = True
XL.Application.Windows(1).Visible = True
XL.Application.Sheets("Office").Select '
End If
Next reg

espero te sirva de algo esta rutina
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