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

Ayuda, por favor!

Estas en el tema de Ayuda, por favor! en el foro de Visual Basic clásico en Foros del Web. Muy buenas noches. Ayer, si mal no recuerdo, publiqué un post pidiendo ayuda sobre cómo conseguir exportar un programa de Visual Basic 6.0 a Excel. ...
  #1 (permalink)  
Antiguo 06/05/2010, 15:37
suncoastbreaker
Invitado
 
Mensajes: n/a
Puntos:
Ayuda, por favor!

Muy buenas noches. Ayer, si mal no recuerdo, publiqué un post pidiendo ayuda sobre cómo conseguir exportar un programa de Visual Basic 6.0 a Excel. Nadie respondió - hasta aquí todo normal -. Lo que me dejó un poco sorprendido es que otro usuario publicó, ayer, un post similar y no recibió respuesta alguna. Me imagino que será porque existen otros posts al respecto en la web y no queréis que se sature con las mismas preguntas. Me he revisado varios posts de la web al respecto y no he logrado sacar absolutamente nada en claro. Es por esto que os pido toda vuestra ayuda porque he entrado en mil páginas web y no consigo aclararme. Supongo que tengo graves lagunas teóricas porque me he leido y releido todo, intentando descifrar qué pueden significar esos códigos y estoy llegando a la más absoluta desesperación. He encontrado una dirección http://www.recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual-basic/50.htm que ha arrojado un rayo de esperanza aunque tengo varios problemas pues existen instrucciones, o como se llamen - disculpad mi ignorancia - , que se me escapan del todo, como por ejemplo las que pego a continuación:

- Set obj_Libro = .Workbooks.Add

No sé para qué sirve el set, no sé que puede ser obj_Libro - supongo que el archivo excel - y jamás había visto una expresión del tipo .Workbooks.Add...pero si lo máximo que he llegado a ver es un sólo punto, como cuando hacemos referencia a la propiedad de un button tipo Command1.Width!

- Dim obj_Excel As Object Espero no dejaros boquiabiertos con esto, pero no sé lo que es un objeto :(. He leído algo, pero realmente no sé lo que es.

- Tampoco entiendo esta parte del código
With obj_Excel
' -- Abrir el libro
Set obj_Libro = .Workbooks.Open(sFileName)
End With
¿Qué es eso del With...?

No os pido que me expliquéis lo que es cada cosa pero si os pediría que me enlazárais a alguna página de la propia web o de otra cualquiera indicándome, a ser posible, que me guiáseis en plan "mírate el apartado de objetos porque te van a hacer falta para tal y cual....y mírate esta página en la que explican la instrucción Set....y cuando aparecen dos puntos seguidos como en .Workbooks.Open(sFileName) es porque tal y cual, así que échale un vistazo a esta otra página"
Os lo pido por favor; os estaría eternamente agradecido!

Un saludo y no dejéis de responder.
  #2 (permalink)  
Antiguo 06/05/2010, 16:42
 
Fecha de Ingreso: mayo-2007
Mensajes: 26
Antigüedad: 16 años, 11 meses
Puntos: 0
Respuesta: Ayuda, por favor!

Hola

Como veras yo soy nuevo por aqui. Así que no se si ya hay mas temas sobre como este por el foro. Pero segun dices has mirado bien y nada. Asi que no creo que hagamos mal en hablar de ello. Si ya hay algo y no lo hemos visto, disculpas de antemano por repetir un hilo.

Pasando a hablar de tu problema hay que empezar por decir que no puedes pasar el codigo de un programa de visual basic 6.0 a excel tal cual ya que no es exactamente lo mismo.
Excel y las demas aplicaciones windows usan VBA (visual basic for aplications) y por eso hay cosas que no son exactamente iguales.

Si lo que quieres es tratar con excel debes conocer unos pasos básicos y a partir de ahi buscar mas en concreto lo que necesitas.
Para empezar, famiiarizate con los objetos ara empezar tu aplicacion VBA con excel. Dichos objetos son:
- Aplication (la aplicaion)
- Workbook (el libro excel)
- Worksheet (la hoja de calculo)
- Range (el rango de casillas con el que trabajas)

La inicializacion básica de estos objetos es la siguiente:
Dim app as Excel.Application
Dim wb as Excel.Workbook
Dim ws as Excel.Worksheet
Dim r as Range

Set app = New Excel.Application 'Iniciamos la aplicacion
Set wb = app.Workbooks.Add 'Añadimos un libro excel
Set ws = wb.Worksheets(1) 'colocamos la variable ws en la primera hoja de calcuo del libro

A partir de aqui te mueves por la hoja con el objeto Range (hay mas metodos que el objeto Range)

un ejemplo
Set r = ws.Range("A1:A1") 'Nos posicionamos el la primera celda
r.Offset(0, 0).Value = "Hola" 'Establecemos su valor


Con esto ya tienes para empezar a plantearte que mass necesitas. En cuanto a lo del comando with sirve para no tener que repetir en cada linia toda la secuencia de propiedades. Me explico mejor con un ejemplo.
Si quieres establecer el tipo de letra de una celda, el tamaño y el color, puedes hacer:
r.Offset(0, 0).Font.Bold = True
r.Offset(0, 0).Font.Size = 22
r.Offset(0,0).Font.Name = "Arial"

o bien establecer un punto con with y continuar desde hay
with r.Offset(0,0).Font
.Bold = True
.Size = 22
.name ="Arial"
End With

Si buscas mas cosas una buena ayuda es el msnd que ofrece microsotf en linia sobre el VBA (lo malo que esta en ingles)
Hechale un vistazo en http://msdn.microsoft.com/en-us/library/aa189857%28v=office.10%29.aspx
Y busca por ahi sobre VBA no sobre visual basic.

Cualquier cosa pregunta ;)
  #3 (permalink)  
Antiguo 06/05/2010, 16:47
Avatar de abrahamvj  
Fecha de Ingreso: julio-2006
Ubicación: Lima, Peru
Mensajes: 708
Antigüedad: 17 años, 9 meses
Puntos: 18
Respuesta: Ayuda, por favor!

Yo soy una de las personas que vio tu mensaje, y si pues, no conteste porque es algo que se encuentra por montones en la web, pero ahora me sorprendo mucho mas, ya que dices que has revisado varios post de la web, pero por lo visto no has leido ni una pagina siquiera de algun manual o tutorial de VB (si preguntas lo de With, pues se hace evidente) .

Mira, no esta mal no haber estudiado y querer aprender un lenguaje de programacion, pero eso de querer supuestamente aprender sin leer, pues, NO SIRVE.

Te aseguro que el copiar/pegar codigo sin entender a traves de la lectura no te llevara a nada.

¿Objetos? no puedo creerlo

Objetos: Un formulario, un boton, un combobox, un archivo excel... etc etc etc

¡¡¡LEE!!!... o contrata un profesor o profesora

Abraham
  #4 (permalink)  
Antiguo 06/05/2010, 17:07
suncoastbreaker
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Ayuda, por favor!

Cita:
Iniciado por iseji Ver Mensaje
Hola

Como veras yo soy nuevo por aqui. Así que no se si ya hay mas temas sobre como este por el foro. Pero segun dices has mirado bien y nada. Asi que no creo que hagamos mal en hablar de ello. Si ya hay algo y no lo hemos visto, disculpas de antemano por repetir un hilo.

Pasando a hablar de tu problema hay que empezar por decir que no puedes pasar el codigo de un programa de visual basic 6.0 a excel tal cual ya que no es exactamente lo mismo.
Excel y las demas aplicaciones windows usan VBA (visual basic for aplications) y por eso hay cosas que no son exactamente iguales.

Si lo que quieres es tratar con excel debes conocer unos pasos básicos y a partir de ahi buscar mas en concreto lo que necesitas.
Para empezar, famiiarizate con los objetos ara empezar tu aplicacion VBA con excel. Dichos objetos son:
- Aplication (la aplicaion)
- Workbook (el libro excel)
- Worksheet (la hoja de calculo)
- Range (el rango de casillas con el que trabajas)

La inicializacion básica de estos objetos es la siguiente:
Dim app as Excel.Application
Dim wb as Excel.Workbook
Dim ws as Excel.Worksheet
Dim r as Range

Set app = New Excel.Application 'Iniciamos la aplicacion
Set wb = app.Workbooks.Add 'Añadimos un libro excel
Set ws = wb.Worksheets(1) 'colocamos la variable ws en la primera hoja de calcuo del libro

A partir de aqui te mueves por la hoja con el objeto Range (hay mas metodos que el objeto Range)

un ejemplo
Set r = ws.Range("A1:A1") 'Nos posicionamos el la primera celda
r.Offset(0, 0).Value = "Hola" 'Establecemos su valor


Con esto ya tienes para empezar a plantearte que mass necesitas. En cuanto a lo del comando with sirve para no tener que repetir en cada linia toda la secuencia de propiedades. Me explico mejor con un ejemplo.
Si quieres establecer el tipo de letra de una celda, el tamaño y el color, puedes hacer:
r.Offset(0, 0).Font.Bold = True
r.Offset(0, 0).Font.Size = 22
r.Offset(0,0).Font.Name = "Arial"

o bien establecer un punto con with y continuar desde hay
with r.Offset(0,0).Font
.Bold = True
.Size = 22
.name ="Arial"
End With

Si buscas mas cosas una buena ayuda es el msnd que ofrece microsotf en linia sobre el VBA (lo malo que esta en ingles)
Hechale un vistazo en http://msdn.microsoft.com/en-us/library/aa189857%28v=office.10%29.aspx
Y busca por ahi sobre VBA no sobre visual basic.

Cualquier cosa pregunta ;)

Muchas gracias por tu respuesta, creo que ahora me ha quedado más claro. De hecho, acabo de encontrar en una pagina web - la única hasta el momento de todas las que he visto - la explicación del uso del With. Le echaré un vistazo a ese enlace del msdn, que no es que no lo haya consultado otras veces sino que en todas ellas nunca he conseguido aclararme muy bien.
  #5 (permalink)  
Antiguo 06/05/2010, 17:14
suncoastbreaker
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Ayuda, por favor!

Cita:
Iniciado por abrahamvj Ver Mensaje
Yo soy una de las personas que vio tu mensaje, y si pues, no conteste porque es algo que se encuentra por montones en la web, pero ahora me sorprendo mucho mas, ya que dices que has revisado varios post de la web, pero por lo visto no has leido ni una pagina siquiera de algun manual o tutorial de VB (si preguntas lo de With, pues se hace evidente) .

Mira, no esta mal no haber estudiado y querer aprender un lenguaje de programacion, pero eso de querer supuestamente aprender sin leer, pues, NO SIRVE.

Te aseguro que el copiar/pegar codigo sin entender a traves de la lectura no te llevara a nada.

¿Objetos? no puedo creerlo

Objetos: Un formulario, un boton, un combobox, un archivo excel... etc etc etc

¡¡¡LEE!!!... o contrata un profesor o profesora

Abraham
Vas demasiado deprisa y hablas sin saber un carajo. Punto primero, creo que he dejado/dejé bastante claro que no quiero copiar ningún código. Así que el que tiene que leer las cosas un poco eres tú. Si te hubieses fijado bien, pedí únicamente enlaces con los contenidos teóricos para entender que es cada cosa. No creo que cualquier código pueda copiarse y pegarse en cualquier progama así como así; ni lo sé, ni me importa, yo quiero entender el porqué de las cosas y hacer el código yo mismo. Lo de que no me he leído ni un manual vas también de listillo así que piensa un poco antes de escribir que vas de sobrado para encimar no aportar absolutamente nada. Consejo: para la próxima vez LEE tú lo que pone la gente antes de hacer suposiciones.
  #6 (permalink)  
Antiguo 06/05/2010, 23:37
Avatar de abrahamvj  
Fecha de Ingreso: julio-2006
Ubicación: Lima, Peru
Mensajes: 708
Antigüedad: 17 años, 9 meses
Puntos: 18
Respuesta: Ayuda, por favor!

Ahhh... mira pues, entonces lo que querias era "solo evitar la fatiga" y que busquen los enlaces por ti

Bueno, esta bien, sino quieres leer, no lo hagas, total el que no aprendera seras tu

Abraham
  #7 (permalink)  
Antiguo 07/05/2010, 05:16
suncoastbreaker
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Ayuda, por favor!

Cita:
Iniciado por abrahamvj Ver Mensaje
Ahhh... mira pues, entonces lo que querias era "solo evitar la fatiga" y que busquen los enlaces por ti

Bueno, esta bien, sino quieres leer, no lo hagas, total el que no aprendera seras tu

Abraham
Joder, como se nota que eres de aquella parte; cuando se os mete algo en la cabeza, "erre que erre". Veo que argumentos poquitos porque aún explicándote las cosas, nada de nada; será que no das para más. Te lo resumo brevemente: quiero contenidos teóricos - qué era lo del CreateObject, por ejemplo - y no copiar códigos y lo de los enlaces creo que ya he explicado que he mirado muchisimos enlaces y ninguno me resultaba aclaratorio porque cuando explicaban una cosa metían otra nueva que al buscarla no me aparecía explicada para qué servía exactamente. La próxima vez que digas algo párate un poco a pensar antes de juzgar qué ha hecho o ha dejado de hacer cierto usuario sino tienes ni idea de cuánto ha trabajado en algo.
  #8 (permalink)  
Antiguo 07/05/2010, 07:55
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 14 años, 5 meses
Puntos: 53
Respuesta: Ayuda, por favor!

Hola:

Parece que este post está tomando unos derroteros que deberíamos atajar, porque no entra dentro de la filosofía del foro. No me negarás amigo "suncoastbreaker" que nuestro compañero "abrahamvj" algo tiene de razón en sus palabras, puesto que puedo decirte que prácticamente TODOS los libros de Visual Basic, que no son pocos, que yo he leido, empiezan con una frase similar a esta: "El Visual Basic es una programación orientada a objetos" y después suelen hacer referencia a lo que son los objetos, por tanto no pretendo saber si o no has leido suficiente, pero, lo importante no es leer sino comprender.

Si vemos tu primer mensaje en el foro decía como título "Tengo un gran problema" y comentabas en el mismo que habías hecho unas 900 lineas de código de programa que ahora no funcionaba por los motivos que fueran. En fin, personalmente me cuesta bastante creer que alguien que ha desarrollado 900 lineas de código, no separa lo que es el Whit y End With, lo que es el Set y mucho menos lo que son Objetos.

Por otro lado, no estaría de más, darse un garbeo por las FAQ del foro y por el mensaje de Política del foro y aprovechar la ocasión para leer las normas ya que se especifica muy claramente que no se pongan mensajes del tipo "Ayuda, por favor" o "Tengo un gran problema". En manos de todos está que el foro siga su curso normal y que los que ayudan con sus respuestas no se cansen de hacerlo.

Debe tenerse en cuenta que aunque cueste asumirlo, las críticas, que generalmente nunca son bien recibidas, se hacen sobre todo con el afán de motivar y no de ofender. Ante una pregunta que en principio puede parecer sin sentido es mucho mas fácil obviarla y olvidarse de ella que "perder el tiempo" en beneficio del que preguntó con una pequeña reprimenda. Dice un refrán que "Quien bien te quiere te hará llorar" y aquel que aconseja muchas veces resulta escaldado por intentar ayudar, personalmente creo que aunque siempre es bien recibida una palmada en la espalda, en la mayoría de las ocasiones se obtienen mejores resultados de uno mismo cuando alguien nos hecha una reprimenda y nos hace ver que, aunque no estamos equivocados, estamos equivocando el enfoque de nuestro problema.

Bueno, donde dije digo, digo diego, si alguien se siente ofendido pido anticipadamente disculpas y espero que demos por zanjado este asunto, unos estamos aquí para aprender, nunca es tarde para ello y siempre hay alguien que sabe mas que nosotros, y otros están para ayudarnos a no tropezar o si estamos ya en el suelo, para ayudarnos a levantarnos.

Un saludo a todos.
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...
  #9 (permalink)  
Antiguo 07/05/2010, 08:48
suncoastbreaker
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Ayuda, por favor!

Cita:
Iniciado por erbuson Ver Mensaje
Hola:

Parece que este post está tomando unos derroteros que deberíamos atajar, porque no entra dentro de la filosofía del foro. No me negarás amigo "suncoastbreaker" que nuestro compañero "abrahamvj" algo tiene de razón en sus palabras, puesto que puedo decirte que prácticamente TODOS los libros de Visual Basic, que no son pocos, que yo he leido, empiezan con una frase similar a esta: "El Visual Basic es una programación orientada a objetos" y después suelen hacer referencia a lo que son los objetos, por tanto no pretendo saber si o no has leido suficiente, pero, lo importante no es leer sino comprender.

Si vemos tu primer mensaje en el foro decía como título "Tengo un gran problema" y comentabas en el mismo que habías hecho unas 900 lineas de código de programa que ahora no funcionaba por los motivos que fueran. En fin, personalmente me cuesta bastante creer que alguien que ha desarrollado 900 lineas de código, no separa lo que es el Whit y End With, lo que es el Set y mucho menos lo que son Objetos.

Por otro lado, no estaría de más, darse un garbeo por las FAQ del foro y por el mensaje de Política del foro y aprovechar la ocasión para leer las normas ya que se especifica muy claramente que no se pongan mensajes del tipo "Ayuda, por favor" o "Tengo un gran problema". En manos de todos está que el foro siga su curso normal y que los que ayudan con sus respuestas no se cansen de hacerlo.

Debe tenerse en cuenta que aunque cueste asumirlo, las críticas, que generalmente nunca son bien recibidas, se hacen sobre todo con el afán de motivar y no de ofender. Ante una pregunta que en principio puede parecer sin sentido es mucho mas fácil obviarla y olvidarse de ella que "perder el tiempo" en beneficio del que preguntó con una pequeña reprimenda. Dice un refrán que "Quien bien te quiere te hará llorar" y aquel que aconseja muchas veces resulta escaldado por intentar ayudar, personalmente creo que aunque siempre es bien recibida una palmada en la espalda, en la mayoría de las ocasiones se obtienen mejores resultados de uno mismo cuando alguien nos hecha una reprimenda y nos hace ver que, aunque no estamos equivocados, estamos equivocando el enfoque de nuestro problema.

Bueno, donde dije digo, digo diego, si alguien se siente ofendido pido anticipadamente disculpas y espero que demos por zanjado este asunto, unos estamos aquí para aprender, nunca es tarde para ello y siempre hay alguien que sabe mas que nosotros, y otros están para ayudarnos a no tropezar o si estamos ya en el suelo, para ayudarnos a levantarnos.

Un saludo a todos.
Podéis pensar lo que queráis sobre un usuario, pero de ahí a decirle lo que ha hecho o ha dejado de hacer en sus narices creo que tiene poco de justo. Que los primeros indicios te hagan creerlo y cometas el error de aseverar algo, vale, pero si el usuario ha dejado bien claro que no es así que mínimo que no replicar y seguir afirmando algo. Por lo que a mi respecta me he devanado los sesos con esto del Visual Basic partiendo desde cero. Estoy aprendiendo sólo partiendo de la nada, sin la más mínima ayuda de nadie. Me he bajado un manual muy práctico llamado "Aprenda Visual Basic como si estuviera en primero" del que me he hecho la mayor parte de ejercicios. He entrado en muchas webs, como la de "elguille" que aprovecho para decir que su manual sobre Visual Basic Clásico es muy bueno. He creado decenas de programas para practicar todos y cada uno de los nuevos contenidos teóricos que iba aprendiendo para comprobar si los había entendido o no. Sé manejar funciones y procedimientos, así como crearlos y llamarlos, manejo eventos, sentencias de control, los botones principales, etc... que para vosotros, gurús de la informática, serán el ABC del VB pero que mi tiempo me han costado sin haber entrado jamás a ni un solo foro para preguntar nada, ni aún cuando no sabía cómo hacerlo puesto que me gustar intentar entender las cosas hasta el extremo. Lo de exportar a Excel me lo he leído de distintos foros pero en todos hay sólo código. Si fuese alguien que quiere copiar sólo código no lo hubiese hecho ya? He querido entender cada una de las "palabrejas" que ahí aparecían, buscando en diversas páginas haciendo busquedas del tipo : "uso del Set", "uso del workbook",... y mil variantes más sin dar con absolutamente nada de nada. Así que si pedir un miserable enlace SÓLO Y EXCLUSIVAMENTE DE CONTENIDOS TEÓRICOS - no estoy gritando - que no incluya código ni nada tiene algo de malo entonces poned bien clarito que esta web es sólo para usuarios megasuperavanzados y acabamos antes. Vamos que tiene narices que yo lea por ahí como la gente pide códigos descaradamente y otros amablemente se los peguen - cosa que repito, no he pedido ni quiero - y que yo pidiendo un enlace más esclarecedor con teoría obtenga respuestas con emoticonos tan jocosos como o . Por lo que a mi respecta vuestra palabrería sobre lo que he hecho o he dejado de hacer dista mucho de una actitud prudente, más que nada porque hacer suposiciones sobre lo que uno ha trabajado o no cuando realmente se ha esforzado es de bocazas.
Ah, y por cierto, lo de los objetos no lo tenía nada claro porque al no estar nada familiarizado con la informática la explicación que daban era muy abstracta - repito, cuando uno no tiene ni idea de informártica una explicación puede sugerir mucho y nada a la vez -. Si no lo entiendes es que debes de ser una mente muy brillante pero a la vez olvidadiza porque estoy seguro que el VB no lo habrás aprendido por ciencia infusa y con muchos escollos te habrás encontrado.
  #10 (permalink)  
Antiguo 07/05/2010, 08:51
suncoastbreaker
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Ayuda, por favor!

Lo olvidaba, eso de "las críticas, que generalmente nunca son bien recibidas, se hacen sobre todo con el afán de motivar y no de ofender" te ha quedado muy bien, sobre todo cuando uno ve que le ponen esos emoticonos tan alagadores. Anda, anda.
  #11 (permalink)  
Antiguo 07/05/2010, 09:39
Avatar de abrahamvj  
Fecha de Ingreso: julio-2006
Ubicación: Lima, Peru
Mensajes: 708
Antigüedad: 17 años, 9 meses
Puntos: 18
Respuesta: Ayuda, por favor!

No pensaba decir nada mas pero:

¿El manual de "... como si estuviera en primero", mira pues, en la "pagina 2 y 3" (8 y 9) hablan de los objetos (y no de forma abstracta, sino muy directamente)... y en el de Guille, en su Entrega 11 aclara muy bien lo del "with".. .y sobre "Set", ya pues, obviamente hay mas en ambos manuales, ya que NO es exclusivo para trabajar sobre Excel.

Ah eso iba, y por eso mis palabras, se hace evidente que no leiste... no es lo mismo ver rapidamente, que leer y comprender.

Hummm.... por mi basta

Abraham
  #12 (permalink)  
Antiguo 07/05/2010, 09:47
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 14 años, 5 meses
Puntos: 53
Respuesta: Ayuda, por favor!

Tienes razón querido suncoastbreaker, cuando dices lo de "Si no lo entiendes es que debes de ser una mente muy brillante pero a la vez olvidadiza ", deben ser cosas de la edad, menos mal que no le pasa a todo el mundo, aunque parece ser que se te ha olvidado que en el anterior mensaje tuyo de "Tengo un gran problema", intenté ayudarte al decirte que usaras el CCleaner para ver si tenías problemas de registro y aunque te puse en enlace a su página no conseguiste averiguar la diferencia como tu mismo decías entre el CCleaner y el Scandisk, lamento que te cueste comprender las cosas pero en esto ya no puedo ayudarte.

Tambien decias que habias leido por ahí que el svchost.exe era muy malote, no se, creo que este comentario no le sentaría muy bien a microsoft, aunque esto no me toca a mi juzgarlo. Dices también que no tienes muy claro lo que es una Copia de Seguridad, pues bien creo, aunque es solo una opinión, que antes de meterte en programación deberías repasar lo básico y esencial.

En fin, ha sido un placer mantener esta pequeña y agradable conversación porque, no sólo de informática tenemos que hablar en los foros, así el aburrimiento se hace mas llevadero.

Por mi parte, asunto zanjado. Disculpa las ofensas, probablemente en el fondo tienes toda la razón y pregunta tranquilamente tus dudas que aquí estamos para esto.

Un saludo y que pases un buen fin de semana.
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...
  #13 (permalink)  
Antiguo 08/05/2010, 08:04
suncoastbreaker
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Ayuda, por favor!

Cita:
Iniciado por erbuson Ver Mensaje
Tienes razón querido suncoastbreaker, cuando dices lo de "Si no lo entiendes es que debes de ser una mente muy brillante pero a la vez olvidadiza ", deben ser cosas de la edad, menos mal que no le pasa a todo el mundo, aunque parece ser que se te ha olvidado que en el anterior mensaje tuyo de "Tengo un gran problema", intenté ayudarte al decirte que usaras el CCleaner para ver si tenías problemas de registro y aunque te puse en enlace a su página no conseguiste averiguar la diferencia como tu mismo decías entre el CCleaner y el Scandisk, lamento que te cueste comprender las cosas pero en esto ya no puedo ayudarte.

Tambien decias que habias leido por ahí que el svchost.exe era muy malote, no se, creo que este comentario no le sentaría muy bien a microsoft, aunque esto no me toca a mi juzgarlo. Dices también que no tienes muy claro lo que es una Copia de Seguridad, pues bien creo, aunque es solo una opinión, que antes de meterte en programación deberías repasar lo básico y esencial.

En fin, ha sido un placer mantener esta pequeña y agradable conversación porque, no sólo de informática tenemos que hablar en los foros, así el aburrimiento se hace mas llevadero.

Por mi parte, asunto zanjado. Disculpa las ofensas, probablemente en el fondo tienes toda la razón y pregunta tranquilamente tus dudas que aquí estamos para esto.

Un saludo y que pases un buen fin de semana.
Y te estoy muy agradecido por la ayuda ofrecida con lo del CCleaner y el Scandisk, de veras. Respecto a lo del svchost.exe creo que has confundido términos puesto que con lo de "malote" me refería a lo dañino que podía ser el virus svchost.exe y no el svchost.exe creado por microsoft. Aquí se demuestra que no todo se entiende a la primera y no por culpa del receptor de la información, sino por la del emisor por dar por hecho que su lenguaje es claro - en tu caso, la culpa fue mia por dar por hecho que sabías que me refería al virus y en la del caso de los manuales supongo que un 50% de "culpa" del redactor y un 50% culpa mía por no dominar todas las facetas de las que se hablan en el escrito -. Me gustaría que la próxima vez se diferenciara cuando un usuario quiere aprender siendo guiado por gente más versada en la materia y cuando quiere plagiar directamente.
Lo del With he terminado comprendiéndolo y supone un ahorro a la hora de programar ya que al determinar las propiedades de un...textbox por ejemplo, no tienes que estar repitiendo la palabra text1 "x" veces al especificar otras tantas propiedades; ¿me equivoco?
En cuanto a lo del workbook creo que se refiere a un archivo excel, el worksheet a una hoja dentro de un archivo excel y...bueno con el Set y el CreateObject no lo tengo tan claro aún - es más, aún no he encontrado una respuesta satisfactoria - pero seguiré investigando.
Después de todo este "tocho" quisiera agradecer al primer usuario que me respondió en unas cuantas líneas y que me ha sido de mucha ayuda para situarme. Así mismo agradecer a los usuarios que se han dignado a responderme en este debate.

Buenas tardes.
  #14 (permalink)  
Antiguo 08/05/2010, 10:39
Avatar de abrahamvj  
Fecha de Ingreso: julio-2006
Ubicación: Lima, Peru
Mensajes: 708
Antigüedad: 17 años, 9 meses
Puntos: 18
Respuesta: Ayuda, por favor!

1- Exacto, el "With" nos ayuda a "resumir" codigo.

2- Sobre WorkBook, WorkSheet, etc, pues no son objetos del VB 6.0, sino que son objetos del Excel, por lo que para conseguir/aprender sus nombres deberias leer un manual de VBA de Excel. Una forma rapida de aprender/conseguir los nombres de los objetos del Excel, es usar la grabadora de macros que viene en dicho programa y que captura precisamente el codigo VBA de las acciones que se realizan en dicho programa.

Digamos que esa es un de las dificultades de trabajar sobre otro programa, no basta leer/saber VB 6.0 sino que hay que conocer otros lenguajes y los objetos de dicho "otro" programa (que redundante me acabo de sentir )

3- Lo que hace Set (en resumen) es asignar un objeto a una variable. ¿Como se come eso? Siguiendo el ejemplo que te envio "iseji"

' Aqui declaramos la variable app como una instancia de Excel
Dim app as Excel.Application

'Aqui, pues ya sabiendo que app sera un objeto/instancia Excel, le damos el valor lo que creara y abrira el Excel
Set app = New Excel.Application

'Si aqui quisieramos ya "ver" la instancia Excel podriamos poner
app.Visible = True
'OJO, esta propiedad Visible de Excel, es de VBA no de VB... por eso decia que habia que leer sobre VBA de Excel

Bueno, si te ofendi disculpame. Aqui estamos para ayudar, pero como veraz ahora no solo VB debes leer, sino sonbre VBA

Saludos


Abraham
  #15 (permalink)  
Antiguo 08/05/2010, 11:17
suncoastbreaker
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Ayuda, por favor!

Cita:
Iniciado por abrahamvj Ver Mensaje
1- Exacto, el "With" nos ayuda a "resumir" codigo.

2- Sobre WorkBook, WorkSheet, etc, pues no son objetos del VB 6.0, sino que son objetos del Excel, por lo que para conseguir/aprender sus nombres deberias leer un manual de VBA de Excel. Una forma rapida de aprender/conseguir los nombres de los objetos del Excel, es usar la grabadora de macros que viene en dicho programa y que captura precisamente el codigo VBA de las acciones que se realizan en dicho programa.

Digamos que esa es un de las dificultades de trabajar sobre otro programa, no basta leer/saber VB 6.0 sino que hay que conocer otros lenguajes y los objetos de dicho "otro" programa (que redundante me acabo de sentir )

3- Lo que hace Set (en resumen) es asignar un objeto a una variable. ¿Como se come eso? Siguiendo el ejemplo que te envio "iseji"

' Aqui declaramos la variable app como una instancia de Excel
Dim app as Excel.Application

'Aqui, pues ya sabiendo que app sera un objeto/instancia Excel, le damos el valor lo que creara y abrira el Excel
Set app = New Excel.Application

'Si aqui quisieramos ya "ver" la instancia Excel podriamos poner
app.Visible = True
'OJO, esta propiedad Visible de Excel, es de VBA no de VB... por eso decia que habia que leer sobre VBA de Excel

Bueno, si te ofendi disculpame. Aqui estamos para ayudar, pero como veraz ahora no solo VB debes leer, sino sonbre VBA

Saludos


Abraham
Gracias por la respuesta. De hecho, he averiguado que VBA se ejecuta desde el propio Excel, cosa diferente de lo que quería/quiero hacer que es desde VB 6 poder exportar los datos de mi programa a una hoja de Excel. Aún así, y corrígeme si me equivoco, todas las acciones que has reflejado en tu mensaje se pueden hacer desde VB 6.0 a excepción de la mencionada propiedad Visible, que se debería usar desde VBA.
Y ya repasando el resto de código que has pegado, Dim app as Excel.Application me permitiría establecer el tipo de la variable app como una aplicación de excel y Set app = New Excel.Application me permitiría crear un nuevo archivo de excel... o me equivoco, no sé :S. Desde aquí te estoy muy agradecido por tu aportación.
  #16 (permalink)  
Antiguo 08/05/2010, 11:56
Avatar de abrahamvj  
Fecha de Ingreso: julio-2006
Ubicación: Lima, Peru
Mensajes: 708
Antigüedad: 17 años, 9 meses
Puntos: 18
Respuesta: Ayuda, por favor!

Si, el VBA es propio de Excel, pero para controlar el Excel desde VB, las instrucciones, propoiedades, etc que usaras serand e Excel y son iguales a las del VBA.

Para dejarme entender mejor, es como programar VBA desde VB. ejemplo:

Dim ExcelApp As Object

'creamos/abrimos el Excel
Set ExcelApp = CreateObject("excel.Application")

'with para trabajar con dicho "objeto" Excel
With ExcelApp
'agregamos una hoja nueva
.Workbooks.Add
' en la primera hoja en ciertas celdas, agregamos texto
.Activeworkbook.Sheets(1).Cells(1, 1) = "ID"
.Activeworkbook.Sheets(1).Cells(1, 2) = "Monto unico"
.Activeworkbook.Sheets(1).Cells(1, 3) = "Pension"
.Activeworkbook.Sheets(1).Cells(1, 4) = "Similar"
.Activeworkbook.Sheets(1).Cells(1, 5) = "Diferente"
.Activeworkbook.Sheets(1).Cells(1, 6) = "Prioridad"
.Activeworkbook.Sheets(1).Cells(1, 7) = "Monto"
.Activeworkbook.Sheets(1).Cells(1, 8) = "Por que"
.Activeworkbook.Sheets(1).Cells(1, 9) = "Dinero"
.Activeworkbook.Sheets(1).Cells(1, 10) = "Especies"
.Activeworkbook.Sheets(1).Cells(1, 11) = "Nombre"
.Activeworkbook.Sheets(1).Cells(1, 12) = "Region"
.Activeworkbook.Sheets(1).Cells(1, 13) = "Provincia"
.Activeworkbook.Sheets(1).Cells(1, 14) = "Distrito"
.Activeworkbook.Sheets(1).Cells(1, 15) = "CCPP"
.Activeworkbook.Sheets(1).Cells(1, 16) = "Fecha"
.Visible = True
End With

Set ExcelApp = Nothing

Como se lo de Sheets, Range, etc... Por el VBA :)

Abraham
  #17 (permalink)  
Antiguo 08/05/2010, 12:56
suncoastbreaker
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Ayuda, por favor!

Cita:
Iniciado por abrahamvj Ver Mensaje
Si, el VBA es propio de Excel, pero para controlar el Excel desde VB, las instrucciones, propoiedades, etc que usaras serand e Excel y son iguales a las del VBA.

Para dejarme entender mejor, es como programar VBA desde VB. ejemplo:

Dim ExcelApp As Object

'creamos/abrimos el Excel
Set ExcelApp = CreateObject("excel.Application")

'with para trabajar con dicho "objeto" Excel
With ExcelApp
'agregamos una hoja nueva
.Workbooks.Add
' en la primera hoja en ciertas celdas, agregamos texto
.Activeworkbook.Sheets(1).Cells(1, 1) = "ID"
.Activeworkbook.Sheets(1).Cells(1, 2) = "Monto unico"
.Activeworkbook.Sheets(1).Cells(1, 3) = "Pension"
.Activeworkbook.Sheets(1).Cells(1, 4) = "Similar"
.Activeworkbook.Sheets(1).Cells(1, 5) = "Diferente"
.Activeworkbook.Sheets(1).Cells(1, 6) = "Prioridad"
.Activeworkbook.Sheets(1).Cells(1, 7) = "Monto"
.Activeworkbook.Sheets(1).Cells(1, 8) = "Por que"
.Activeworkbook.Sheets(1).Cells(1, 9) = "Dinero"
.Activeworkbook.Sheets(1).Cells(1, 10) = "Especies"
.Activeworkbook.Sheets(1).Cells(1, 11) = "Nombre"
.Activeworkbook.Sheets(1).Cells(1, 12) = "Region"
.Activeworkbook.Sheets(1).Cells(1, 13) = "Provincia"
.Activeworkbook.Sheets(1).Cells(1, 14) = "Distrito"
.Activeworkbook.Sheets(1).Cells(1, 15) = "CCPP"
.Activeworkbook.Sheets(1).Cells(1, 16) = "Fecha"
.Visible = True
End With

Set ExcelApp = Nothing

Como se lo de Sheets, Range, etc... Por el VBA :)

Abraham
Mil gracias de nuevo, creo que ya tengo todo mucho más claro. Voy a crearme pequeños programas de prueba para comprobar que he entendido todo correctamente.
  #18 (permalink)  
Antiguo 10/05/2010, 06:03
suncoastbreaker
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Ayuda, por favor!

Me he empapado de varios conceptos estos días: objetos, cómo crearlos y cómo asignarles propiedades y métodos en un módulo de clase y cómo hacer uso de ellos en el Form. Además me he mirado a fondo este enlace que recomiendo encarecidamente: http://www.xltoday.net/vba_ejemplos_hojas.asp. Me ha ayudado a entender cómo se hacen ciertas acciones, así que los interesados, echadle un vistazo.
Aún así, me ha surgido un problema. He pegado el trozo de código de Abraham en el Form_Load() - tranquilo, no es el que voy a usar en mi programa, sólo probaba que funcionaba - y mi sorpresa ha sido mayúscula al ver que VB me mandaba el siguiente mensaje de error:
"El componente ActiveX no puede crear el Objeto". Se me plantean dos posibles orígenes que expliquen la aparición del error:
1º. Realmente, no tengo Microsoft Excel sino Open Office Calc, así que no sé si puede deberse a que al crear el objeto excel.application VB no pueda crearlo puesto que carezco de Microsoft Excel.
2º. Que lo haya puesto en el Form_Load(). A mi me parece raro, pero no tanto después de que una vez coloqué en el Form_Load código para crear un dibujo en un Picturebox mediante el método Line. Al ejecutar el programa no aparecía absolutamente nada en el PictureBox.

¿Cual creéis que puede ser el motivo por el cual obtengo este error? ¿Sabríais cómo podría arreglarlo? He probado buscando en google "exportar datos de vb 6 a openoffice calc" más otras variantes y no he encontrado nada.

Un saludo y gracias por adelantado.
  #19 (permalink)  
Antiguo 10/05/2010, 09:02
Avatar de abrahamvj  
Fecha de Ingreso: julio-2006
Ubicación: Lima, Peru
Mensajes: 708
Antigüedad: 17 años, 9 meses
Puntos: 18
Respuesta: Ayuda, por favor!

Tu primera opcion es la acertada. Como no tiene Excel, pues obviamente no se puede crear dicho objeto.

No olvides que asi sean similares, si un programa es otro, pues la programacion cambia. Yo no tengo OpenOffice pero mira este enlace:

http://www.recursosvisualbasic.com.a...pen-office.htm

Abraham
  #20 (permalink)  
Antiguo 10/05/2010, 12:39
suncoastbreaker
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Ayuda, por favor!

Cita:
Iniciado por abrahamvj Ver Mensaje
Tu primera opcion es la acertada. Como no tiene Excel, pues obviamente no se puede crear dicho objeto.

No olvides que asi sean similares, si un programa es otro, pues la programacion cambia. Yo no tengo OpenOffice pero mira este enlace:

[url]http://www.recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual-basic/415-visual-basic-con-open-office.htm[/url]

Abraham
Gracias nuevamente. He optado por bajarme la versión de prueba de microsoft office 2007 cuya duración es de 60 días. Ya os comentaré mis progresos, no para molestaros, sino porque creo haber entendido bastante bien, finalmente, esto de exportar datos a Excel. Gracias de nuevo Abraham!
  #21 (permalink)  
Antiguo 14/05/2010, 17:24
suncoastbreaker
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Ayuda, por favor!

Cita:
Iniciado por abrahamvj Ver Mensaje
Si, el VBA es propio de Excel, pero para controlar el Excel desde VB, las instrucciones, propoiedades, etc que usaras serand e Excel y son iguales a las del VBA.

Para dejarme entender mejor, es como programar VBA desde VB. ejemplo:

Dim ExcelApp As Object

'creamos/abrimos el Excel
Set ExcelApp = CreateObject("excel.Application")

'with para trabajar con dicho "objeto" Excel
With ExcelApp
'agregamos una hoja nueva
.Workbooks.Add
' en la primera hoja en ciertas celdas, agregamos texto
.Activeworkbook.Sheets(1).Cells(1, 1) = "ID"
.Activeworkbook.Sheets(1).Cells(1, 2) = "Monto unico"
.Activeworkbook.Sheets(1).Cells(1, 3) = "Pension"
.Activeworkbook.Sheets(1).Cells(1, 4) = "Similar"
.Activeworkbook.Sheets(1).Cells(1, 5) = "Diferente"
.Activeworkbook.Sheets(1).Cells(1, 6) = "Prioridad"
.Activeworkbook.Sheets(1).Cells(1, 7) = "Monto"
.Activeworkbook.Sheets(1).Cells(1, 8) = "Por que"
.Activeworkbook.Sheets(1).Cells(1, 9) = "Dinero"
.Activeworkbook.Sheets(1).Cells(1, 10) = "Especies"
.Activeworkbook.Sheets(1).Cells(1, 11) = "Nombre"
.Activeworkbook.Sheets(1).Cells(1, 12) = "Region"
.Activeworkbook.Sheets(1).Cells(1, 13) = "Provincia"
.Activeworkbook.Sheets(1).Cells(1, 14) = "Distrito"
.Activeworkbook.Sheets(1).Cells(1, 15) = "CCPP"
.Activeworkbook.Sheets(1).Cells(1, 16) = "Fecha"
.Visible = True
End With

Set ExcelApp = Nothing

Como se lo de Sheets, Range, etc... Por el VBA :)

Abraham
He probado varios códigos creado por mi y me van de maravilla!
Os pego un enlace que me ha sido utilísimo:
http://hojadecalculo.umh.es/vba/Apuntes.Amp.htm
Espero que os sirva tanto como a mi.

Etiquetas: favor
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 08:15.