** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Otros de Microsoft: Windows y Office > Excel
  Mensajes nuevos Mensajes nuevos RSS - Entender código
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoEntender código

 Responder Responder
Autor
Mensaje
ximo Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 03/Marzo/2006
Localización: España
Estado: Sin conexión
Puntos: 2085
Enlace directo a este mensaje Tema: Entender código
    Enviado: 26/Enero/2020 a las 12:15
Hola,

Buenos días, como el título indica, quiero comprender y como actuan los diferentes códigos siguientes.

En este hilo (http://www.mvp-access.com/foro/formula-no-funciona_topic84945.html) AnSaVal muy amablemente me dejo un boceto de factura, y quiero adaptarlo a la mía, poniendo puntos de interrupción he coseguido saber lo que hacen los códigos de (Guardar, y Borrar) aunque és algo obvio por el nombre pero no así la manera de trabajo del mismo.

Los que no entiendo por más que lo intento es algo relacionado con el Cambio de datos.

Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Cells.Count > 1 Then Exit Sub 'selección múltiple.
  If Target.Value = "" Then Exit Sub 'dato borrado.
  If Target.Address = "$B$6" Then Range("C6").Select: Exit Sub
  If Target.Address = "$C$6" Then Range("C8").Select: Exit Sub
  If Target.Address = "$C$8" Or Target.Address = "$G$34" Or Target.Column = 5 Then
    Sig2
  Else
    Application.EnableEvents = False
    Target.Value = WorksheetFunction.Index(Worksheets("Artículos").Range("A:A"), _
        WorksheetFunction.Match(Target.Value, Worksheets("Artículos").Range("B:B"), 0))

    Application.EnableEvents = True
    Sig5
  End If
End Sub

Private Sub Sig2()
  If Range("B14").Value = "" Then
    Range("B14").Select
  Else
    Range("B13").End(xlDown).Offset(1).Select
  End If
End Sub

Private Sub Sig5()
  If Range("E14").Value = "" Then
    Range("E14").Select
  Else
    Range("E13").End(xlDown).Offset(1).Select
  End If
End Sub

Si lo traslado a mí archivo me marca error lo escrito en rojo, la validación de datos para crear la lista con origen no me deja seleccionar lo que en el archivo original de AnSaVal es (=A_A)


Por otro lado, creo el Histórico correctamente con el botón Guardar pero he sido incapaz de encontrar como hacer para ver nuevamente la factura seleccionada.

La verdad no es que necesite tanto, pero me pica la curiosidad y como ya peino canas me sirve para mantener el el cerebro en su sitio, y nada mejor que plantearse retos nuevos.




Saludos, ximo


La incansable busqueda de información abre nuestras mentes

Saludos desde Burriana
Arriba
AnSanVal Ver desplegable
Administrador
Administrador
Avatar

Unido: 16/Marzo/2005
Localización: España
Estado: Sin conexión
Puntos: 5970
Enlace directo a este mensaje Enviado: 26/Enero/2020 a las 20:56
«... me marca error lo escrito en rojo...»

¿Que error te marca?


1.- Lo que marcas en rojo es 'un truco' que he utilizado, te explico:

El rango B14:B32 está pensado para que contenga los códigos de los artículos, pero... el rango está validado por lista para que solo admita los nombres de los artículos (que son más descriptivos  para la mente humana, -la lista muestra los nombres-).

     · Lo que hace el código rojo:

          a) -Linea anterior- Deshabilita los eventos (para que la validación no detecte el cambio que va a hacer).

          b) -Texto rojo- Cambia el texto por  el código del artículo.

          c) -Linea posterior- Habilita los eventos (para devolver el control a la validación).


2.- Para recuperar una factura (debes estar en la hoja Histórico) , simplemente haz clic en el código de la factura que quieras ver.


NOTA:  Ten presente que el código «es muy quisquilloso con los rangos» (siempre), si tu modelo no es igual que el mío no funcionará, salvo que lo adaptes adecuadamente (los rangos deben coincidir).



Saludos desde Tenerife.
Arriba
ximo Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 03/Marzo/2006
Localización: España
Estado: Sin conexión
Puntos: 2085
Enlace directo a este mensaje Enviado: 02/Febrero/2020 a las 17:31
Hola,

Por fin he logrado entenderlo todo. Pero lo que más me ha costado es como asignarle un evento a la forma ya que solo me da la opción de macro (y eso que e) asta que que he pillado que con macro/nuevo me crea una sub dentro de un módulo (todo de lo más extraño para mí), pero bueno, como aprendizage no ha estado mal, más bien satisfactorio.

Con los botones activex es mucho más fácil ya que es parecido al Access.

En cuanto al 'truco' para la lista nos pasa igual a los dos, después de varios usos deja de funcionar y en vez de poner el código pone el nombre del artículo, pero cierras y abres y vuelve a funcionar no sé el porque.

Lo dicho ha sido una gozada poder pelearme con excel y salir victorioso, o casi Wink

Si no hay más que añadir (consejo) podemos cerrar cuando gusteis.



Saludos, ximo
La incansable busqueda de información abre nuestras mentes

Saludos desde Burriana
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable