Autor
|
Tema: crear tabla estilo Excel con VB (Leído 4,618 veces)
|
Carlosnuel
Desconectado
Mensajes: 527
https://www.quobit.mx/
|
hola, la verdad si no tengo experiencia en VB, y pues en la escuela me pidieron que hiciera una tabla estilo Excel. Me explico mejor, que el usuario inserte en un campo el numero de filas y el numero de columnas que quiere que tenga la tabla, entonces el programa genera esa tabla para que el usuario ingrese los datos que quiera
llevo horas intentandolo y buscando algun metodo pero no me sale... intente colocando puros cuadros de texto y esos habilitarlos dependiendo del numero de filas y columnas que el usuario ingresaba pero no me sale...
ojala puedan darme una idea de como puedo hacerle...
se lo agradeceria mucho
|
|
|
En línea
|
|
|
|
ReViJa
|
Mira en agregar componentes Microsoft Office XP Web Componets.
Si no te sirve puedes usar FlexGrid.
Un saludo.
|
|
|
En línea
|
|
|
|
CeLaYa
Desconectado
Mensajes: 543
|
Puedes usar el FlexGrid y una caja de texto para ir introduciendo los datos, tambien agregando el MSCOMCTL.ocx puedes crear barras de herramientas para que le des una presentación más profesional
|
|
|
En línea
|
"La soledad es el elemento de los grandes talentos". Cristina de Suecia (1626-1689) Reina de Suecia.
|
|
|
Carlosnuel
Desconectado
Mensajes: 527
https://www.quobit.mx/
|
ok, gracias... miren he logrado generar tabla y que está pueda recibir valores... ahora el consejo que pido es que me digan como puedo hacer que el al momento de que el usuario ingrese un dato por ejemplo en la celda (1,2) automaticamente me guarde ese valor el programa, le intente con el metodo TextMatrix pero no me funciona... es que necesito en mi programa recoger esos valores para realizar el reconocimiento de cadenas... aqui les dejo el codigo que llevo escrito, ojala puedan ayudarme Sub Form_Load() Dim Termm(), NoTerm(), elem() As String Dim a, NoElem As Integer NoTerm = Split("E|E'|OS|T|T'|OM|F", "|") Termm = Split("+|-|*|(|)|2|$", "|") Inicia Termm, NoTerm, Fg2 TxtEdit = "" End Sub
Public Sub Inicia(ArrTerminales() As String, ArrNoTerminales() As String, Fg2 As MSHFlexGrid)
Reng = UBound(ArrNoTerminales) + 1 Cols = UBound(ArrTerminales) + 1 Fg2.Rows = Reng + 1 Fg2.Cols = Cols + 1 Fg2.FixedCols = 1 Fg2.FixedRows = 1 For i = 0 To UBound(ArrTerminales) Fg2.TextMatrix(0, i + 1) = ArrTerminales(i) Next i For j = 0 To UBound(ArrNoTerminales) Fg2.TextMatrix(j + 1, 0) = ArrNoTerminales(j) Next j End Sub
Private Function Fgi(r As Integer, c As Integer) As Integer Fgi = c + Fg2.Cols * r End Function
Sub Fg2_KeyPress(KeyAscii As Integer) MSHFlexGridEdit Fg2, TxtEdit, KeyAscii End Sub
Sub Fg2_DblClick() MSHFlexGridEdit Fg2, TxtEdit, 32 ' Simula un espacio. End Sub Sub MSHFlexGridEdit(MSHFlexGrid As Control, _ Edt As Control, KeyAscii As Integer)
Case 0 To 32 Edt = MSHFlexGrid Edt.SelStart = 1000
Case Else Edt = Chr(KeyAscii) Edt.SelStart = 1 End Select
Edt.Move MSHFlexGrid.Left + MSHFlexGrid.CellLeft, _ MSHFlexGrid.Top + MSHFlexGrid.CellTop, _ MSHFlexGrid.CellWidth - 8, _ MSHFlexGrid.CellHeight - 8 Edt.Visible = True
Edt.SetFocus End Sub Sub txtEdit_KeyPress(KeyAscii As Integer) ' Elimina los retornos para quitar los pitidos. If KeyAscii = Asc(vbCr) Then KeyAscii = 0 End Sub
Sub txtEdit_KeyDown(KeyCode As Integer, _ Shift As Integer) EditKeyCode Fg2, TxtEdit, KeyCode, Shift End Sub
Sub EditKeyCode(MSHFlexGrid As Control, Edt As _ Control, KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case 27 Edt.Visible = False MSHFlexGrid.SetFocus
Case 13 MSHFlexGrid.SetFocus
Case 38 ' Arriba. MSHFlexGrid.SetFocus DoEvents If MSHFlexGrid.Row > MSHFlexGrid.FixedRows Then MSHFlexGrid.Row = MSHFlexGrid.Row - 1 End If
Case 40 MSHFlexGrid.SetFocus DoEvents If MSHFlexGrid.Row < MSHFlexGrid.Rows - 1 Then MSHFlexGrid.Row = MSHFlexGrid.Row + 1 End If End Select End Sub Sub Fg2_GotFocus() If TxtEdit.Visible = False Then Exit Sub Fg2 = TxtEdit TxtEdit.Visible = False End Sub
Sub Fg2_LeaveCell() If TxtEdit.Visible = False Then Exit Sub Fg2 = TxtEdit TxtEdit.Visible = False End Sub
|
|
|
En línea
|
|
|
|
CeLaYa
Desconectado
Mensajes: 543
|
puedes poner una caja de texto para simular que el usuario esta escibiendo arriba del MSFlexGrid, y que al dar enter en el text te ponga los datos en la celda
Private Sub MSFlexGrid1_EnterCell() Text1.Top = MSFlexGrid1.CellTop Text1.Left = MSFlexGrid1.CellLeft End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then MSFlexGrid1.Text = Text1.Text End Sub
|
|
|
En línea
|
"La soledad es el elemento de los grandes talentos". Cristina de Suecia (1626-1689) Reina de Suecia.
|
|
|
Carlosnuel
Desconectado
Mensajes: 527
https://www.quobit.mx/
|
ya he podido hacer que el usuario ingrese automaticamente los datos, gracias... pero otra pregunta, disculpen las molestias que causo es que apenas estoy aprendiendo VB mi pregunta es... en mi FlexGrid el usuario ya escribe los datos en la dirección del arreglo que quiere... ahora lo que necesito hacer es que en las celdas que quedan vacias escriba un 0 pero no me queda porque en todas las celdas escribe el 0 y el boton que puse no funciona para hacer esa parte que les digo de completar la tabla, en pocas palabras asi como carga el programa llena la tabla y ese no es el chiste, si no que primero el usuario escriba los campos que necesite y luego complete la tabla... este es mi codigo Public Sub LlenarT_Click() GeneraT End Sub
Private Sub GeneraT(ArrTerminales() As String, ArrNoTerminales() As String) Reng = UBound(ArrNoTerminales) + 1 Cols = UBound(ArrTerminales) + 1 For j = 0 To UBound(ArrNoTerminales) grd.TextMatrix(j + 1, 7) = "Explorar" Next j End Sub
pd. no sé si lo comente antes... pero mi programa es para un analizador lexico de la materia de compiladores... tengo que realizar la recuperación de errores por ese metodo
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
[Ayuda]Crear Tabla Relacionadas
PHP
|
rolly21102
|
1
|
4,662
|
2 Febrero 2011, 07:15 am
por zarkiel
|
|
|
Problema al crear excel [SOLUCIONADO]
Java
|
Pablo Videla
|
2
|
6,361
|
7 Noviembre 2011, 15:43 pm
por Pablo Videla
|
|
|
Problema con restricciones al crear una tabla (SQL, Oracle)
Bases de Datos
|
|Miguel|
|
1
|
4,792
|
27 Diciembre 2011, 13:40 pm
por |Miguel|
|
|
|
Crear videojuego estilo Doddle Jump
Programación General
|
RaloGomez
|
1
|
2,500
|
20 Enero 2017, 01:51 am
por engel lex
|
|
|
Aplasta a tus enemigos: alguien logró crear una versión de Civilization en Excel
Noticias
|
wolfbcn
|
0
|
1,092
|
10 Septiembre 2019, 02:25 am
por wolfbcn
|
|