Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Elección de un Rango

Estas en el tema de Elección de un Rango en el foro de Visual Basic clásico en Foros del Web. No logro seleccionar un rango de columnas no consecutivas de una hoja excel desde Visual Basic 6.0. Teóricamente sería algo así: Range("B2:B7, D2:D7"), por poner ...
  #1 (permalink)  
Antiguo 30/07/2010, 16:15
suncoastbreaker
Invitado
 
Mensajes: n/a
Puntos:
Elección de un Rango

No logro seleccionar un rango de columnas no consecutivas de una hoja excel desde Visual Basic 6.0. Teóricamente sería algo así: Range("B2:B7, D2:D7"), por poner un ejemplo. Pero es que desde VB6 poniendo eso me da error. Alguna idea? Por cierto, si alguien ha leído mi anterior post, no he resuelto el problema así que para probar el programa cada vez he de generar el .exe y es un coñazo porque sólo ahí puedo ver el tipo de error.
  #2 (permalink)  
Antiguo 30/07/2010, 22:14
Avatar de lokoman  
Fecha de Ingreso: septiembre-2009
Mensajes: 502
Antigüedad: 14 años, 7 meses
Puntos: 47
Respuesta: Elección de un Rango

Hola!
Puedes intentar con esta instruccion:
Código vb:
Ver original
  1. xlSheet.Range("C1:C10,E1:E10").Select
  #3 (permalink)  
Antiguo 31/07/2010, 06:11
suncoastbreaker
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Elección de un Rango

Pero cual sería la diferencia con lo que yo he puesto? Lo de xlSheet? Voy a probarlo y te comento ;).
  #4 (permalink)  
Antiguo 31/07/2010, 07:10
suncoastbreaker
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Elección de un Rango

Ah! Se me ha ido la cabeza completamente. Tu código no funciona y de hecho no puede funcionar porque es "igual" que el mio, a excepción de xlSheet. Supongo que tu harías algo así, más o menos, así:
Dim xlApp("o ExcelApp") As Excel.Application
Dim xlbook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
..................
Set xlSheet = xlbook.Worksheets(1)
...............
xlSheet.Range("C1:C10,E1:E10").Select

Los puntos suspensivos quieren decir que hay código de por medio.
Yo en cambio, como quería probar el código que escogiese columnas no consecutivas lo hice a lo bruto, directamente así:
With ExcelApp
.Workbooks.Add
.ActiveWorkbook.Sheets(1).Range("A2:A7,C2:C7").Sel ect
End With
Evidentemente hay unas cuantas líneas anteriores a las de arriba pero te pongo la parte más importante. Resulta que mi código no funciona y supongo que el tuyo tampoco debería porque sustancialmente es lo mismo, no?
Por otro lado, abrí un tema al que nadie me respondió; a ver si puedes ayudarme. Resulta que tenía un programa hecho en vb6 que exportaba datos a una hoja excel. El programa siempre funcionó correctamente, pero de buenas a primeras cuando tenía que exportar, en modo de ejecución, se quedaba colgado el programa. Además de esto, no lograba generar archivos .exe; un desastre. Volví a bajar VB6 de otro sitio y lo reinstalé. Ahora resulta que si genera archivos .exe pero no consigo hacerlo funcionar en modo de ejecución al tener que exportar los datos a excel. Cuando quiero hacerlo me muestra "error 70 en tiempo de ejecución, permiso denegado" y en el editor de código se me marca en amarillo la linea siguiente:
Set ExcelApp = CreateObject("Excel.Application").
Tienes idea de por qué pasa esto y cómo se puede solucionar? Es que es muy engorroso porque para ver si el programa funciona correctamente, ante nuevos cambios, no puedo comprobarlo en modo de ejecución. Tengo que estar creando constantemente ejecutables y comprobar que funcionen correctamente y ya me estoy desesperando. Anda, échame una mano, que por regla general en este foro, ayuda con problemas he recibido poquita.
Un saludo.
  #5 (permalink)  
Antiguo 31/07/2010, 16:21
suncoastbreaker
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Elección de un Rango

Desesperante...
  #6 (permalink)  
Antiguo 04/08/2010, 10:29
Avatar de lokoman  
Fecha de Ingreso: septiembre-2009
Mensajes: 502
Antigüedad: 14 años, 7 meses
Puntos: 47
Respuesta: Elección de un Rango

Disculpa la tardanza...
Es buena practica identificar el xlSheet, xlApp, etc.. en ocasiones te falla la aplicacion en la segunda corrida, me explico:
Al ejecutar la aplicacion, puede exportar a excel sin problemas, pero al ejecutar nuevamente la rutina, te daria error, que se corrige identificando el xlSheet, xlApp, etc..

Lo del error "error 70 en tiempo de ejecución, permiso denegado", es posible que esté en un medio de solo lectura? que office es el que tienes? si es el 2010 te podria dar problemas.

Intenta este Codigo, a ver si te sirve (Pon una referencia a Excel y Completalo):
Código vb:
Ver original
  1. Sub Exportar_Excel()
  2.     Dim xlApp As Excel.Application
  3.     Dim xlBook As Excel.Workbook
  4.     Dim xlSheet As Excel.Worksheet
  5.    
  6.     Set xlApp = New Excel.Application 'asignar las referencias a las variables
  7.    Set xlBook = xlApp.Workbooks.Add
  8.     Set xlSheet = xlBook.Worksheets.Add
  9.    
  10.     xlSheet.Cells(1, 1).Value = "TITULO"
  11.     xlSheet.Cells(1, 1).Interior.ColorIndex = 33
  12.     xlSheet.Cells(1, 1).Font.Bold = True
  13.     xlSheet.Cells(1, 1).HorizontalAlignment = xlCenter
  14.    
  15.     xlSheet.Cells(2, 1).Value = Now()
  16.     xlSheet.Cells(2, 1).Font.Bold = True
  17.     xlSheet.Cells(2, 1).HorizontalAlignment = xlCenter
  18.    
  19.     xlApp.Range("C1:C10,E1:E10").Select
  20.  
  21. 'Salvar la hoja de excel
  22.    xlSheet.Name = "EXPORT"
  23.    
  24.     xlSheet.SaveAs "c:\NombreArchivo.xls"
  25.    
  26.     xlBook.Close
  27.     xlApp.Quit
  28.     Set xlApp = Nothing
  29.     Set xlBook = Nothing
  30.     Set xlSheet = Nothing
  31. End Sub

Etiquetas: rango
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:51.