Imprimir página | Cerrar ventana

Entender código

Impreso de: Foro de Access y VBA
Categoría: Otros de Microsoft: Windows y Office
Nombre del foro: Excel
Descripción del foro: Foro de Excel y VBA de Excel
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=84968
Fecha de impresión: 20/Abril/2024 a las 01:33


Tema: Entender código
Publicado por: ximo
Asunto: Entender código
Fecha de publicación: 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



Respuestas:
Publicado por: AnSanVal
Fecha de publicación: 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.


Publicado por: ximo
Fecha de publicación: 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



Imprimir página | Cerrar ventana