elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Excel y VB 6.0 (Checkbox)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Excel y VB 6.0 (Checkbox)  (Leído 3,824 veces)
Enemy

Desconectado Desconectado

Mensajes: 285


Que vuelva el personal de hace 15 años al foro!


Ver Perfil
Excel y VB 6.0 (Checkbox)
« en: 9 Abril 2013, 20:23 pm »

Buenas gente, me gustaria saber si podrian darme una mano con un temita de VB.

Estoy trabajando con un archivo .SLK de excel el cual tiene una base de datos y lo que hago es remplazar el texto de ciertas celdas, guardar y salir.

Es un parche lo que estoy haciendo y como mi programa tiene varias opciones y cosas para parchar, doy la opcion de que parchar y que no, queria poner un checkbox para marcar que es lo que van a parchar (modificar ese archivo de excel).

Mi idea principal era tener un boton para cada funcion pero ese mismo archivo no se deja guardar asi nomas, si o si tengo que usar la funcion "SaveAs" de excel en otra carpeta con el mismo nombre en este caso "patch" y hay que apretar boton por boton para parchar todo y hace todo lo mismo una y otra vez. Como puedo hacer para que el usuario tilde las opciones y que luego al apretar un solo boton que dira "Parchar" se produzcan los cambios que arme por separado?

No se si me explique bien, aca dejo un ejemplo de lo que tengo:

Código
  1.  
  2. Private Sub Boton1_Click()
  3.  
  4. Dim Excel As Object
  5. Dim ArchivoExcel As Object
  6. Dim Unidades As String
  7. Dim AL As Integer
  8. Dim AM As Integer
  9. Dim AN As Integer
  10.  
  11. AL = 38
  12. AM = 39
  13. AN = 40
  14.  
  15. Unidades = "C:\Original\Unidades.slk"
  16.  
  17. Set Excel = CreateObject("Excel.Application")
  18. Excel.Visible = False
  19. Set ArchivoExcel = Excel.Workbooks.Open(Unidades)
  20.  
  21. ArchivoExcel.Worksheets("PestañaUnidades").Cells(250, AL) = "HOLA"
  22.  
  23. ArchivoExcel.SaveAs "C:\Patch\Unidades.slk"
  24. ArchivoExcel.Close SaveChanges:=False
  25. Set ArchivoExcel = Nothing
  26. Excel.Quit
  27. Set Excel = Nothing
  28. MsgBox "El color de las unidades ha sido correjido", vbOKOnly, "Listo!"
  29. End Sub
  30.  
  31.  

Lo que hace ese boton es cambiarle el color a ciertas unidades, el otro boton corrije rutas de otras unidades ajenas a estos.

Estoy usando esa ruta (C:/etc) porque aun esta en fase de desarrollo pero usare App.path y demas.

Y en otro boton tengo al distinto:

Código
  1.  
  2. Dim Excel As Object
  3. Dim ArchivoExcel As Object
  4. Dim Unidades As String
  5. Dim C As Integer
  6.  
  7. C = 3
  8.  
  9. Unidades= "C:\Original\Unidades.slk"
  10.  
  11. Set Excel = CreateObject("Excel.Application")
  12. Excel.Visible = False
  13. Set ArchivoExcel = Excel.Workbooks.Open(Unidades)
  14.  
  15. ArchivoExcel.Worksheets("PestañaUnidades").Cells(475, C) = "units\Custom\blabla\payaso.mdx"
  16.  
  17. ArchivoExcel.SaveAs "C:\Patch\Unidades.slk"
  18. ArchivoExcel.Close SaveChanges:=False
  19. Set ArchivoExcel = Nothing
  20. Excel.Quit
  21. Set Excel = Nothing
  22. MsgBox "La ruta de las unidades han sido correjidas", vbOKOnly, "Listo!"
  23. End Sub
  24.  
  25.  

Los codes fueron modificados para un mejor entendimiento, son mas completos, esta todo en ingles y etc

E iran mas opcioes de parchado.. Como ven, cada boton hace algo diferente sobre el mismo archivo, entonces, como hago para poner todo esto en cada opcion del checkbox sin tener que abrir y guardar de formas diferentes el mismo archivo? me gustaria usar algo como:

Marcar opciones, apretar boton parchar, se abre archivo, se modifica contenido segun opciones elejidas, se guarda en ruta personalizada, se cierra excel, Msgbox avisando que fue parchado con exito, fin de programa.

Por cada vez que aprieto un boton, copia el original a la carpeta patch y trabaja con ese archivo, por lo tanto si yo apretara un boton, luego el otro, este sustituiria al anterior y seria un parche distinto, remplazando lo parchado anterior mente, ya que trabaja con la copia del original. Podria trabajar tambien con el anteriormente parchado pero habria que dejarlo en oootra ruta diferente porque recuerden que este no se deja guardar asi mismo sino es "Guardar Como" y no puedo andar agregando montones de carpetas por cada boton que tenga.. y seran alrededor de 5 botones.

Espero haberme explicado lo suficiente.

Que puedo hacer en este caso? ojala reciba la ayuda que espero, gracias de antemano.

Pd: Ya extrañaba este foro.


« Última modificación: 10 Abril 2013, 13:47 pm por Bakura182 » En línea

Enemy

Desconectado Desconectado

Mensajes: 285


Que vuelva el personal de hace 15 años al foro!


Ver Perfil
Re: Excel y VB 6.0 (Checkbox)
« Respuesta #1 en: 10 Abril 2013, 04:53 am »

125 visitas, 0 respuestas.. ok


En línea

MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.518


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: Excel y VB 6.0 (Checkbox)
« Respuesta #2 en: 10 Abril 2013, 06:32 am »

Creo que no te entendí bien, pero te tiro ideas a ver si "le pego":

1) Cuando defines eventos para controles (botones incluídos) defines una sub, la cual puede ser llamada desde otra sub/función.

Osea, puedes tener algo como:

Código
  1. Private Sub Boton1_Click()
  2.  
  3. Boton2_Click
  4. Boton3_Click
  5. Boton4_Click
  6. Boton5_Click
  7.  
  8. End Sub
  9.  

Lo que sería idéntico a hacerle click a cada botón secuencialmente.

2) No entendí muy bien lo que sigue, pero: si cada botón hace cambios en la planilla y después guarda la misma: No sería mejor hacer todos los cambios juntos y guardar 1 sola vez? Necesitas guardar por cada cambio realizado? O podrias "recordar" los cambios pedidos y después, en un momento determinado, aplicar los cambios pedidos y guardar?

Saludos!
En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

ignorantev1.1


Desconectado Desconectado

Mensajes: 617


/\ Así acabo cuando quiero programar...


Ver Perfil WWW
Re: Excel y VB 6.0 (Checkbox)
« Respuesta #3 en: 10 Abril 2013, 06:57 am »

¿Será esto?  :huh:

Código
  1. Dim Excel As Object
  2. Dim ArchivoExcel As Object
  3. Dim Unidades As String
  4. Dim C As Integer
  5. Dim Cambios as String '<---------
  6. C = 3
  7.  
  8. Unidades= "C:\Original\Unidades.slk"
  9.  
  10. Set Excel = CreateObject("Excel.Application")
  11. Excel.Visible = False
  12. Set ArchivoExcel = Excel.Workbooks.Open(Unidades)
  13.  
  14. if  CorrejirRuta.Value = 1 then 'CheckBox "corregir Ruta"
  15.    ArchivoExcel.Worksheets("PestañaUnidades").Cells(475, C) = "units\Custom\blabla\payaso.mdx"
  16.    Cambios=Cambios & "La ruta de las unidades blablabla" & vbcrlf '<--- Rejistra los cambios
  17. end if
  18.  
  19. if  CambiarColor.Value = 1 then  'CheckBox "Cambiar color"
  20.    ArchivoExcel.Worksheets("PestañaUnidades").Cells(250, AL) = "HOLA"
  21.    Cambios=Cambios & "El color de las unidades blablabla" & vbcrlf
  22. end if
  23.  
  24. if  HacerOtraCosa.Value = 1 then  'CheckBox "Hacer otra cosa"
  25.    ArchivoExcel.OtraCosa("HACER OTRA COSA")
  26.    Cambios=Cambios & "Se hizo otra cosa blablabla" & vbcrlf
  27. end if
  28.  
  29. ArchivoExcel.SaveAs "C:\Patch\Unidades.slk"
  30. ArchivoExcel.Close SaveChanges:=False
  31. Set ArchivoExcel = Nothing
  32. Excel.Quit
  33. Set Excel = Nothing
  34. ' MsgBox "La ruta de las unidades han sido correjidas", vbOKOnly, "Listo!"  <------- NO!
  35. Msgbox "Cambios efectuados: " & vbcrlf & Cambios '<---- Presenta los cambios de jalón
  36.  
  37.  

¡Saludos! (Al menos lo intenté)
En línea

Enemy

Desconectado Desconectado

Mensajes: 285


Que vuelva el personal de hace 15 años al foro!


Ver Perfil
Re: Excel y VB 6.0 (Checkbox)
« Respuesta #4 en: 10 Abril 2013, 14:33 pm »

¿Será esto?  :huh:

Código
  1. Dim Excel As Object
  2. Dim ArchivoExcel As Object
  3. Dim Unidades As String
  4. Dim C As Integer
  5. Dim Cambios as String '<---------
  6. C = 3
  7.  
  8. Unidades= "C:\Original\Unidades.slk"
  9.  
  10. Set Excel = CreateObject("Excel.Application")
  11. Excel.Visible = False
  12. Set ArchivoExcel = Excel.Workbooks.Open(Unidades)
  13.  
  14. if  CorrejirRuta.Value = 1 then 'CheckBox "corregir Ruta"
  15.    ArchivoExcel.Worksheets("PestañaUnidades").Cells(475, C) = "units\Custom\blabla\payaso.mdx"
  16.    Cambios=Cambios & "La ruta de las unidades blablabla" & vbcrlf '<--- Rejistra los cambios
  17. end if
  18.  
  19. if  CambiarColor.Value = 1 then  'CheckBox "Cambiar color"
  20.    ArchivoExcel.Worksheets("PestañaUnidades").Cells(250, AL) = "HOLA"
  21.    Cambios=Cambios & "El color de las unidades blablabla" & vbcrlf
  22. end if
  23.  
  24. if  HacerOtraCosa.Value = 1 then  'CheckBox "Hacer otra cosa"
  25.    ArchivoExcel.OtraCosa("HACER OTRA COSA")
  26.    Cambios=Cambios & "Se hizo otra cosa blablabla" & vbcrlf
  27. end if
  28.  
  29. ArchivoExcel.SaveAs "C:\Patch\Unidades.slk"
  30. ArchivoExcel.Close SaveChanges:=False
  31. Set ArchivoExcel = Nothing
  32. Excel.Quit
  33. Set Excel = Nothing
  34. ' MsgBox "La ruta de las unidades han sido correjidas", vbOKOnly, "Listo!"  <------- NO!
  35. Msgbox "Cambios efectuados: " & vbcrlf & Cambios '<---- Presenta los cambios de jalón
  36.  
  37.  

¡Saludos! (Al menos lo intenté)


Claaaro exacto, ese mismo uso del checkbox queria saber, muchas gracias ignorantev1.1 con esto ya termino (creo) el parche.

- Con esto solo me quedaria que hacer en caso de no tildar ninguna opcion.  :huh: Porque si presiono el boton, abre el archivo, lo guarda asi como esta y lo cierra y el msj de los cambios efectuados me sale vacio. Ya probe con Do while, con desabilitarlo hasta, etc etc, pero no pego una sola. Alguna idea?

Gracias a ambos.
« Última modificación: 10 Abril 2013, 18:05 pm por Bakura182 » En línea

ignorantev1.1


Desconectado Desconectado

Mensajes: 617


/\ Así acabo cuando quiero programar...


Ver Perfil WWW
Re: Excel y VB 6.0 (Checkbox)
« Respuesta #5 en: 10 Abril 2013, 18:26 pm »

Citar
- Con esto solo me quedaria que hacer en caso de no tildar ninguna opcion.   Porque si presiono el boton, abre el archivo, lo guarda asi como esta y lo cierra y el msj de los cambios efectuados me sale vacio. Ya probe con Do while, con desabilitarlo hasta, etc etc, pero no pego una sola. Alguna idea?

Código
  1. If CorrejirRuta.Value = 0 and CambiarColor.Value = 0 and HacerOtraCosa.Value = 0 Then '<--- Y así hasta el fin del mundo.
  2.    Exit sub
  3. end if
  4.  

O si utilizaras una matriz de controles para las "CheckBox":

Código
  1. Dim Bandera as boolean
  2. Dim i as integer
  3.  
  4. While Not Bandera and i < Opcion.Count 'Asumiendo que "Opcion" sea el nombre de las "Checkbox".
  5.   Bandera = (Opcion(i).Checked = 1) 'Si hay alguna "CheckBox" marcada se vuelve "True"
  6.   i=i+1
  7. wend
  8.  
  9. if Not Bandera then exit sub
  10.  
  11. 'Blablabla
  12.  

Saludos.
En línea

Enemy

Desconectado Desconectado

Mensajes: 285


Que vuelva el personal de hace 15 años al foro!


Ver Perfil
Re: Excel y VB 6.0 (Checkbox)
« Respuesta #6 en: 11 Abril 2013, 05:15 am »

naah... podes creer que estaba haciendo esto mira:

Código
  1. If Check1.value = 0 & Check2.value = 0 & Check3.value = 0 & Check4.value = 0 & Check5.value = 0 then
  2. MsgBox "There is no changes to apply!", vbCritical, "Did you pick an option first?"
  3. Exit sub
  4. End if
  5.  

Y hasta que vi que usaste "And" en vez de "&", me di cuenta que me la estaba mandando en colores todo el tiempo. No me merezco menos que esto:


Muchisimas gracias Ignorantev1.1, aparte de ayudarme, me hiciste darme cuenta por la pavada que no me salia una simpe condicion.

Espero que no te moleste que te agregue a los creditos.
« Última modificación: 11 Abril 2013, 05:17 am por Bakura182 » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Bloquear un checkbox
Programación Visual Basic
karmany 2 6,602 Último mensaje 28 Diciembre 2005, 17:19 pm
por karmany
programacion en visual basic.ayuda para importar de excel a excel
Programación Visual Basic
Railil 2 4,620 Último mensaje 20 Junio 2006, 16:08 pm
por Railil
duda con checkbox
Programación Visual Basic
::: Devil ::: 1 1,505 Último mensaje 4 Octubre 2007, 20:13 pm
por APOKLIPTICO
Buscar en excel con comandos sql y VB de excel
Programación Visual Basic
josuecm 1 3,941 Último mensaje 30 Julio 2011, 00:51 am
por raul338
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines