Lo anterior ya está listo solo que pensando mejor vi que al querer eliminar o editar alguna linea, solo podria hacerlo directamente desde las celdas, y eso lo quiero evitar y hacerlo desde el formulario, pues la cuestion es esta.
Ahora se trata que quise agregarle algo mas, ademas quiero hacer esto de forma que SOLO del formulario se pueda Incertar, eliminar o editar.
Pues al proyecto le agregue dos COMBOBOX y dos BOTONES mas, ELIMINAR, EDITAR.
Lo que les pido es una colaboración para el codigo para estos dos botones y COMBOBOXs, como dije antes, soy muy pero muy novato o principiante en esto de programacion
Aparece el formulario con datos porque los coloque manualmente para ejemplificar lo que necesito con los botones y ComboBoxes ELIMINAR Y EDITAR, selecionando el número, aparecen todos los datos de ese número en el formulario
1º- Quisiera que los 2 combobox se vaian llenando SOLO con el primer número (TELEFONO) conforme se van incertando datos
para eliminar un número (linea con los datos completa)
2º- Selecionar un número en el combobox de eliminar y, ese número haga que se llenen los TextBox con los datos correspondientes a ese número
3º- Presionar el boton ELIMINAR y se elimine la LINEA COMPLETA con sus datos correspondiente a ese número
El mismo procedimiento para el comboBox EDITAR, Seleciono un número en el ComboBox de EDITAR, al selecionar ese número se llenan los TextBox, edito y presiono el boton EDITAR. Aqui se incertan los datos editados en la linea correspondiente al número selecionado, presionando el boton EDITAR
No se si me hice entender, espero que si y que tambien exista alguna alma caritativa que me de su mano en este proyecto, LISTA TELEFONICA.
Les agrego acá el codigo que fuy reduciendo, quitandole el que hacia referencia a ACESS porque el codigo estaba echo para otra finalidad y fuy modificandolo poco a poco hasta llegar a esto.
MODULO
Cita: Rem Codigo tomado de:
Rem -http://www.erlandsendata.no/english/index.php?d=envbadacexportado
Rem que ya en nada se parece al que era cuando lo baje
Rem Usado y modificado por By Jot@ (Bombo)
Sub exportaraccess()
With rs
.AddNew
.Fields("Nombre") = Range("a" & n).Value
.Fields("Hubicacion") = Range("b" & n).Value
.Fields("Codigo") = Range("c" & n).Value
.Fields("Telf") = Range("d" & n).Value
.Fields("Codigo") = Range("e" & n).Value
.Fields("Telf") = Range("f" & n).Value
.Fields("Codigo") = Range("g" & n).Value
.Fields("Telf") = Range("h" & n).Value
.Fields("Observacion") = Range("i" & n).Value
End With
Set rs = Nothing
cn.Close
Set cn = Nothing
Sub formulario1()
Formulario.Show
End Sub
rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr rrrrrrrrrrrrr
GENERAL
Cita: Private Sub CommandButton1_Click()
Dim nombre As String, hubicacion As String, celda As String
nombre = Len(TextBox1) 'por lo de la cantidad de caracteres
hubicacion = Len(TextBox2) 'por lo de la cantidad de caracteres
'Aqui reviso que estos campos no este vazios
If TextBox1 = Empty Or TextBox2 = Empty Or TextBox3 = Empty Or TextBox4 = Empty Then
MsgBox prompt:=" Los primeros campos" & vbCrLf & " - Nombre" & vbCrLf & " - Direccion" & vbCrLf & " - ID y" & vbCrLf & " - TELEFONO" & vbCrLf & " no pueden estar vacios, Acepte para continuar", Buttons:=vbInformation + vbOKOnly, Title:="Campo vacio"
Exit Sub
End If
'El campo de nombre no debe tener mas de 30 caracteres
If nombre > 30 Then
MsgBox prompt:="El campo NOMBRE, puede contener como maximo 30 caracteres", Buttons:=vbInformation + vbOKOnly, Title:="VALOR NULO"
TextBox1 = Empty
Exit Sub
End If
'El campo de hubicacion no debe tener mas de 50 caracteres
If hubicacion > 50 Then
MsgBox prompt:="El campo HUBICACION, puede contener como maximo 50 caracteres", Buttons:=vbInformation + vbOKOnly, Title:="VALOR NULO"
TextBox2 = Empty
Exit Sub
End If
'El campo de hubicacion no debe tener mas de 150 caracteres
If observacion > 150 Then
MsgBox prompt:="El campo OBSERVACION, puede contener como maximo 150 caracteres", Buttons:=vbInformation + vbOKOnly, Title:="VALOR NULO"
TextBox2 = Empty
Exit Sub
End If
'Este campo solo puede ser numérico
If Not IsNumeric(TextBox3) Then
MsgBox prompt:="Debe ingresar SOLO valor numérico, en el campo ID", Buttons:=vbInformation + vbOKOnly, Title:="CARACTER NULO"
TextBox3 = Empty
Exit Sub
End If
'Este campo solo puede ser numérico
If Not IsNumeric(TextBox4) Then
MsgBox prompt:="Debe ingresar SOLO valor numérico, en el campo de TELFONO", Buttons:=vbInformation + vbOKOnly, Title:="CARACTER NULO"
TextBox4 = Empty
Exit Sub
End If
If [a2] = Empty Then
[a2].Select
GoTo ingresar:
End If
[a1].End(xlDown).Offset(1, 0).Select
ingresar:
celda = ActiveCell.Row
Range("a" + celda) = TextBox1
Range("b" + celda) = TextBox2
Range("c" + celda) = Val(Round(TextBox3, 0)) 'Range("c" + celda) = TextBox3
Range("d" + celda) = Val(Round(TextBox4, 0)) 'Range("d" + celda) = TextBox4
Range("e" + celda) = TextBox5
Range("f" + celda) = TextBox6
Range("g" + celda) = TextBox7
Range("h" + celda) = TextBox8
Range("i" + celda) = TextBox10
'La siguiente linea de comentario es de los TextBox para solo transmitir números enteros sin decimales
'Range("c" + celda) = Val(Round(TextBox3, 0))
TextBox1 = Empty
TextBox2 = Empty
TextBox3 = Empty
TextBox4 = Empty
TextBox5 = Empty
TextBox6 = Empty
TextBox7 = Empty
TextBox8 = Empty
TextBox10 = Empty
TextBox1.SetFocus
End Sub
Private Sub CommandButton3_Click()
Unload Formulario
End Sub
Private Sub TextBox5_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Not (KeyAscii >= 48 And KeyAscii <= 57) Then
KeyAscii = 0
MsgBox "Debe ingresar SOLO valor numerico, en el campo 2º ID", vbOKOnly + vbInformation, Title:="CARACTER NULO"
End If
End Sub
Private Sub TextBox6_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Not (KeyAscii >= 48 And KeyAscii <= 57) Then
KeyAscii = 0
MsgBox "Debe ingresar SOLO valor numerico, en el campo 2º TELF", vbOKOnly + vbInformation, Title:="CARACTER NULO"
End If
End Sub
Private Sub TextBox7_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Not (KeyAscii >= 48 And KeyAscii <= 57) Then
KeyAscii = 0
MsgBox "Debe ingresar SOLO valor numerico, en el campo 3º ID", vbOKOnly + vbInformation, Title:="CARACTER NULO"
End If
End Sub
Private Sub TextBox8_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Not (KeyAscii >= 48 And KeyAscii <= 57) Then
KeyAscii = 0
MsgBox "Debe ingresar SOLO valor numerico, en el campo 3º TELF", vbOKOnly + vbInformation, Title:="CARACTER NULO"
End If
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormControlMenu Then
Cancel = True
MsgBox "Por favor, para salir use el boton correspondiente", vbInformation, "BOTON ANULADO"
End If
End Sub
rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr rrrrrrrrrrrrrrr
Las propiedades del TextBox 3, 5 y 7 estan para solamente aceptar 4 caracteres numéricos y los 4,6,8 estan para aceptar 7 nada mas, así como los TextBox 1 (NOMBRE) está para 30 caractares y el 2 (HUBICACION) está para 50. esto lo hice en propiedades porque con el codigo, uno escribe y escribe y solamente cuando vá a incertar es que dice que solo acepota X carateres y en las propiedades, llegando a los 30 no escribe mas.
En Office 2010, en el 2007 es lo mismo
Si alguien quier crear esto en su EXCCEL, ahí tiene todo el codigo mas el formulario para su diseño.
Solo no está el codigo de los ComboBox y BOTONES ELIMINAR Y EDITAR, que es presisamente lo que estoy pidiendo
Gracias amigos