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

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 [13] 14 15 16 17 18 19 20 21
121  Programación / Programación Visual Basic / Re: Exportar a EXCEL en: 18 Septiembre 2009, 06:03 am
Vuelvo a comentar...
Finalmente pude lograrlo. Costó pero con esfuerzo se pudo.

Parece que hay que aplicarlo de esta manera:

Sheet.Range("A1:J1").Font.Bold = True
Sheet.Range("A1:J1").HorizontalAlignment = xlCenter
Sheet.Range("A1:J1").Interior.ColorIndex = 33
Sheet.Range("A1:J1").Interior.Pattern = xlSolid

Para la parte que sigue después del rango, lo saqué con el código de VBA que obtuve antes.

Pero la verdad que es rarísimo, como dije antes, es la primera vez que me pasa que el VB no me ayuda cuando voy escribiendo el código o poniendo el . (punto) para que me aparezca la propiedad a utilizar.

Les dejo imágen que como va quedando:



Muchas gracias igualmente.

Cualquier duda, pregunten si no entendieron como usarla.
122  Programación / Programación Visual Basic / Re: Exportar a EXCEL en: 18 Septiembre 2009, 05:50 am
Gente, pude poner en negrita. Pero más de eso no pude avanzar.
La verdad es rarísimo. No es como los otros componentes que vos agregas y te vas GUIANDO PORQUE EL VB TE VA AYUDANDO A MEDIDA QUE VAS TIPEANDO. En este no te arroja ninguna ayuda y no sabes si lo que escribis está bien o mal :S.

La verdad rarísimo.

El que sepa poner alguna cosa más me avisa por favor.

Código
  1. rivate Sub GridAExcel()
  2. Dim Excel As Excel.Application
  3. Dim i As Integer, j As Integer
  4. Dim Sheet As Object
  5. Dim Book As Object
  6. Screen.MousePointer = vbHourglass
  7.  
  8. Set Excel = CreateObject("Excel.Application")
  9. Set Book = Excel.Workbooks.Add
  10. Set Sheet = Book.Worksheets(1)
  11.  
  12. 'INSERTA LOS DATOS DE LA GRILLA EN EL EXCEL
  13. With grilla
  14.    For i = 0 To .Rows - 1
  15.        For j = 0 To .Cols - 1
  16.            Excel.Cells(i + 1, j + 1) = .TextMatrix(i, j)
  17.        Next j
  18.    Next i
  19. 'PONE EN NEGRITA
  20. Sheet.Range("A1:J1").Font.Bold = True
  21.  
  22. End With
  23.  
  24. Excel.Visible = True
  25. Screen.MousePointer = vbDefault
  26. End Sub
  27.  

Saludos!
123  Programación / Programación Visual Basic / Re: Exportar a EXCEL en: 18 Septiembre 2009, 00:33 am
Sobre esa planilla de excel que tienes, Herramientas > Macros > Grabar nueva macro, y realiza los cambios que quieras, bordes, negrita, colores, etc, y al final termina la grabación.

Luego ve al editor de VBA, Herramientas > Macros > Editor de Visual Basic o ALT+F11, en el explorador de proyectos ve al nuevo MÓDULO que se te ha creado, y ya tendrás código de ejemplo bastante acorde a tu caso  :D

Saludos


Gracias por responder Novlucker.
Pero igualmente mucho no me sirvió, hice lo que me dijiste pero había cosas que no encontré. Deben tener otro nombre las propiedades o no sé.

El VBA lo que me formó a mi fue:

Código:
Range("A1:J1").Select
    Range("J1").Activate
    Selection.Font.Bold = True
    With Selection
        .HorizontalAlignment = xlLeft
        .VerticalAlignment = xlBottom
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
    With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlBottom
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
    Range("A2:J3").Select
    Range("J3").Activate
    With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlBottom
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
    Range("A1:J1").Select
    Range("J1").Activate
    With Selection.Interior
        .ColorIndex = 33
        .Pattern = xlSolid
    End With
    Columns("A:A").ColumnWidth = 4.57
    Columns("B:B").ColumnWidth = 15.71
    Columns("B:B").ColumnWidth = 18
    Columns("C:C").ColumnWidth = 18
    Columns("D:D").ColumnWidth = 4.71
    Columns("E:E").ColumnWidth = 16.14
    Columns("F:F").ColumnWidth = 12.29
    Columns("F:F").ColumnWidth = 13
    Columns("F:F").ColumnWidth = 13.14
    Columns("F:F").ColumnWidth = 13.29
    Columns("I:I").ColumnWidth = 12.71
    Columns("J:J").ColumnWidth = 23.71
End Sub

y cuando quise hacerlo no encontré en el VB HorizontalAlignment, Font bold, entre otras. Así que no sé como puedo hacerlo.

Por ahi algo entendi mal, pero no creo.

Desde ya muchas gracias!
124  Programación / Programación Visual Basic / Exportar a EXCEL en: 17 Septiembre 2009, 22:16 pm
Hola gente, encontré un código para poder exportar un Flexgrid a Excel y me funciona perfectamente.
El problema es que me gustaría que quede un poco más atractivo con respecto al nombre de las columnas.

Busqué propiedades para cambiar el formato y esas cosas pero la verdad no encontré nada.

Código
  1. Private Sub GridAExcel()
  2. Dim oExcel As Excel.Application
  3. Dim i As Integer, j As Integer
  4. Screen.MousePointer = vbHourglass
  5.  
  6. Set oExcel = CreateObject("Excel.Application")
  7. oExcel.Workbooks.Add
  8. With grilla
  9.    For i = 0 To .Rows - 1
  10.        For j = 0 To .Cols - 1
  11.            oExcel.Cells(i + 1, j + 1) = .TextMatrix(i, j)
  12.        Next j
  13.    Next i
  14. End With
  15. oExcel.Visible = True
  16. Screen.MousePointer = vbDefault
  17. End Sub
  18.  
  19. Private Sub Command1_Click()
  20. Call GridAExcel
  21. End Sub

Ese es el código que uso y así es como me lo exporta a EXCEL y queda horrible.



Lo que me gustaría hacer es centrar todo y ponerle negrita y otro fondo a las columnas.

Espero que me puedan dar una mano.

Muchas gracias!!!
125  Programación / Programación Visual Basic / Re: Compilacion de Congelador MSN. en: 14 Septiembre 2009, 22:37 pm
lol.
126  Programación / Programación Visual Basic / Re: Problema con LOGIN en: 14 Septiembre 2009, 20:00 pm
Hola, lo que pasa es que no deberias hacerlo asi como lo haces, lo ideal no seria crear un recordset, abrirlo haciendo "select * from usuarios" y recorrerlo con find y si no lo encuentra...etc. aca te paso un ejemplo de login que es re-facil, consulta la base de datos con un recodset que se usa solo para eso...por ejemplo te creas un recordset en ese form local llamado rsLogin total lo usas en ese form y despues no lo usas mas. aca te paso un ejemplo de login de esa forma:

Código
  1. Option Explicit
  2.  
  3. Private rsLogin As ADODB.Rcordset
  4.  
  5. Private Sub Form_Load()
  6.   Set rsLogin = New ADODB.Recordset
  7. End Sub
  8.  
  9. Private Sub cmdlogin_Click()
  10.   Call Login
  11. End Sub
  12.  
  13. Private Sub Login()
  14.    If txtusuario.Text = "" Then
  15.        MsgBox "Debe Ingresar un Usuario", 16
  16.        txtusuario.SetFocus
  17.        Exit Sub
  18.    End If
  19.    If txtpassword.Text = "" Then
  20.        MsgBox "Debe Ingresar un Password", 16
  21.        txtpassword.SetFocus
  22.        Exit Sub
  23.    End If
  24.    rsLogin.Open "SELECT login,password FROM usuarios WHERE login='" & txtusuario & "'", cn, adOpenKeyset, adLockOptimistic
  25.    If rsLogin.EOF Then
  26.        MsgBox "No Existe el Usuario Indicado", vbCritical
  27.        rsLogin.Close
  28.        Exit Sub
  29.    Else
  30.        If LCase(rsLogin("login")) = LCase(txtusuario) And LCase(rsLogin("password")) = LCase(txtpassword) Then
  31.            ' si entra aca es porque accedio correctamente
  32.        Else
  33.            MsgBox "La Password es incorrecta", vbCritical
  34.            rsLogin.Close
  35.            Exit Sub
  36.        End If
  37.    End If
  38.    rsLogin.Close
  39.    Unload Me
  40.    frmgym.Show
  41. End Sub

obviamente adapta los nombres de los campos a los que tengas en tu base de datos, pero eso debe funcionar bien...si queres despues ponele esos detalles de que si no escribio un usuario o password que ponga el color de los textbox en rojo como lo estas haciendo.

saludos.


de 10 como siempre.

Muchas gracias Seba!!!
127  Programación / Programación Visual Basic / Problema con LOGIN en: 14 Septiembre 2009, 05:44 am
Gente, acá molestando again :P.
Descubrí que tengo un ERROR con el login.
Lo que sucede es lo siguiente:
Si yo ingreso de usuario: ADMIN y password ADMIN apenas inicio el programa, loguea perfectamente. Si me equivoco y escribo por ejemplo ADMIN2 que no existe me colorea el textbox a ROJO avisando que nos equivocamos.

Pero que pasa, cuando ingresás nuevamente USUARIO: ADMIN, CONTRASEÑA: ADMIN ahí YA NO LO TOMA MÁS. Siempre indica que el usuario no existe...

Esto lo había arreglado usando RST.MOVEFIRST, pero me di cuenta que si la grilla (MSFlexGrid) que está en el siguiente formulario está vacía, GENERA ERROR.

"El valor de BOF O EOF ES TRUE, O EL ACTUAL REGISTRO SE ELIMINÓ, LA OPERACION SOLICITADA REQUIERE UN REGISTRO ACTUAL."

Les dejo el código del LOGIN.

Citar
Private Sub cmdlogin_Click()
'-------------LOGIN DE USUARIO-------------
'Busca en la tabla si existe el usuario.
RST.Find "Id ='" & Trim(txtusuario.Text) & "'"
'Si no existe
If RST.EOF Then
    txtusuario.BackColorSelect = &H8080FF
    txtusuario.SetFocus
Else
'Si existe, verifica los passwords y si es correcto nos lleva al formulario Principal
    If RST!Password = txtpassword.Text Then
        Unload frmlogin
        Load frmgym
        frmgym.Show
    Else
        'Sino, muestra mensaje de error
        txtpassword.BackColorSelect = &H8080FF
        txtpassword.SetFocus
    End If
End If
'Vuelve al principio, sino siempre sigue en EOF y nunca vuelve
'a la primera opcion y no loguea más...
RST.MoveFirst
End Sub

Desde ya muchas gracias!
128  Programación / Programación Visual Basic / Re: Trabajar con FECHAS en: 12 Septiembre 2009, 04:41 am
claro, lo que tenes que evaluar en el IF es si la fecha de hoy (Date) es mayor o igual a la fecha del pago del cliente, si es mayor o igual es porque le toca pagar y sino es porque todavia no llego a la fecha de pago.la fecha de inscripcion practicamente no importa es un dato mas solamente.ahora lo que tenes que hacer (no se si lo hiciste) es hacer una pantallita mas, donde puedas hacerle pagar al cliente (solo a los clientes que tienen que pagar) y asi aumentarle + 1 mes la fecha de pago, en algun lado tambien seria bueno que registres los pagos...en una tabla aparte podes hacerlo y registrar el id cliente, la fecha de pago, y demas datos que quieras, asi te queda un historial de pagos y hasta podes hacerte una pantalla para consultar los pagos de cada cliente.

saludos.

Algo que no comprendo es porque dicen que HAY QUE EVALUARLO CON LA FECHA DE HOY si la fecha de hoy no la requiero :S

Como puse en el codigo de arriba, yo lo que hago es:
        INSCRIPCION               PROXIMOPAGO
  If grilla.TextMatrix(i, 7) >= grilla.TextMatrix(i, 8) Then
               grilla.CellBackColor = vbRed

nunca uso la fecha de hoy como ustedes dicen :S
129  Programación / Programación Visual Basic / Re: Trabajar con FECHAS en: 11 Septiembre 2009, 19:41 pm
Gente, finalmente un amigo me pudo solucionar el problema que tenía con el codigo de seba :)

Acá se los dejo como me quedó y funciono perfectamente.

Citar
Dim vFechaPago As String
    Dim i As Integer
    Dim vColumna As Integer
    grilla.Redraw = False
    For i = 1 To grilla.Rows - 1
        For vColumna = 0 To grilla.Cols - 1
            grilla.Row = i
            grilla.Col = vColumna
           
            If grilla.TextMatrix(i, 7) >= grilla.TextMatrix(i, 8) Then
               grilla.CellBackColor = vbRed
            Else
                grilla.CellBackColor = vbGreen
            End If
        Next vColumna
    Next i
    grilla.Redraw = True

Les dejo la imágen:



MUCHAS GRACIAS SEBA POR TODO!!
130  Programación / Programación Visual Basic / Re: Trabajar con FECHAS en: 11 Septiembre 2009, 06:06 am
tenes que poner el numero de la columna donde esta la fecha de pago..quedaria algo asi en tu caso es la columna 7.

Código
  1. Private Sub ColorearFecha()
  2.    Dim vFechaPago As String
  3.    Dim i As Integer
  4.    Dim vColumna As Integer
  5.  
  6.    MSHFlexGrid1.Redraw = False
  7.    For i = 2 To MSHFlexGrid1.Rows - 1
  8.        For vColumna = 0 To MSHFlexGrid1.Cols - 1
  9.            MSHFlexGrid1.Row = i
  10.            MSHFlexGrid1.Col = vColumna
  11.            vFechaPago = CDate(Format(MSHFlexGrid1.TextMatrix(i, 7), "dd/MM/yyyy"))
  12.            If Date > CDate(vFechaPago) Then
  13.               MSHFlexGrid1.CellBackColor = vbRed
  14.            Else
  15.                MSHFlexGrid1.CellBackColor = vbGreen
  16.            End If
  17.        Next vColumna
  18.    Next i
  19.    MSHFlexGrid1.Redraw = True
  20. End Sub

proba eso, y fijate que hay algo mal ahi, porque el primer registro tiene la misma fecha de pago que la fecha de inscripcion, y deberia tener 1 mes mas o sea 09/11/2009, cuando das de alta debes guardar en ese campo 1 mes mas.en realidad te tendrian que salir todas en verde porque la fecha de hoy no es mayor a la fecha de 09/10/2009

saludos.

Me sigue sin funcionar Seba.
O sea lo que vos me dijiste arriba de que algo esta mal por lo del MES yo lo hice así A PROPÓSITO. Modifiqué LA BASE DE DATOS MANUALMENTE para que me muestre uno en ROJO y el resto en VERDE para corroborar el código.

Por otro lado probé lo que me dijiste pero no me funcionó. Me ponía todos en VERDE y como dije antes UNO LO MODIFIQUE A PROPÓSITO PARA VERLO EN ROJO pero lo sigue mostrando VERDE.

Y una cosa más, de tu código no se para que usas la variable FechadePago y tratás de obtenerla con TextMatrix si yo ya la tengo haciendo RST!ProximoPago.

Te dejo el código tuyo, modificado de nuevo:

Citar
Private Sub ColorearFecha()
    Dim i As Integer
    Dim vColumna As Integer
 
    grilla.Redraw = False
    For i = 1 To grilla.Rows - 1
        For vColumna = 1 To grilla.Cols - 1
            grilla.Row = i
            grilla.Col = vColumna
            If RST!inscripcion >= CDate(RST!proximopago) Then
               grilla.CellBackColor = vbRed
            Else
                grilla.CellBackColor = vbGreen
            End If
        Next vColumna
    Next i
    grilla.Redraw = True
End Sub

O sea si mirás bien, esta todo tal cual lo pusiste vos, SALVO QUE EN VEZ DE USAR LAS VARIABLES FECHAALTA Y FECHADEPAGO LO SACO DIRECTAMENTE CON RST!INSCRIPCION Y RST!PROXIMOPAGO

Espero que haya quedado claro, y desde ya muchas gracias por prestarle atención a esto
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 [13] 14 15 16 17 18 19 20 21
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines