AYUDA CON CODIGO VB PARA MACRO EN EXCEL

20/09/2004 - 17:29 por Smoke | Informe spam
HOLA!!

NECESITO ALQUIEN QUE ME AYUDE CON LA EDICION DE CODIGO EN
VB, COMO PUEDO CREAR PARTE DE UN CODIGO PARA QUE CUANDO
YO LE DE ENTER EN UN ARCHIVO QUE TENGO EN EXCEL SOBRE UN
RECIBO, QUE AL DARLE ENTER A LA DESCRIPCION EN LA LINEA
SIGUIENTE SALGA ULTIMA LINEA, Y QUE SI SE BORRA LA
INFORMACION APAREZCA ULTIMA LINEA.

GRACIAS.. :)
 

Leer las respuestas

#1 Héctor Miguel
21/09/2004 - 01:04 | Informe spam
hola, Smoke !

usar [solo] mayusculas en mensajes de correo electronico 'eqivale' a... ¡ GRITAR !!!
[asi que... me discuparas si no 'transcribo' tu mensaje 'original'] :))

estoy 'suponiendo' [o 'tratando de adivinar'] los detalles 'finos' que NO mencionas en tus consultas como...
- el rango donde [se supone que] 'van' las lineas para la descripcion
- si en dicho rango tienes las celdas 'combinadas', que es un tipo de formato muy 'socorrido'
[al 'diseñar' formatos que ->da problemas<- con las macros]
=> seguramente mis supuestos sean 'diferentes' a los de la 'realidad', pero [solo para 'empezar'...]
1.- modifica la variable 'Rango' [estoy suponiendo sea 'C6:C10'] por la real
2.- modifica la variable 'Texto' [estoy usando " Ultima Línea "] por la que desees
3.- si el rango para las lineas de la descripcion son celdas 'combinadas' :-(
-> indica en la variable 'Rango'... el rango completo [p.e. "c6:h10"]
-> cambia la 'busqueda' de la ultima celda del rango [variable 'Celda_n']...
de: Celda_n = Range(Celda_1).Offset(Range(Rango).Rows.Count - 1).Address
a: Celda_n = Range(Celda_1).Offset(Range(Rango).Rows.Count - 1, Range(Rango).Columns.Count - 1).Address

haz unas pruebas y... ¿comentas?
saludos,
hector.
en el modulo de codigo de 'esa' hoja [click-derecho sobre su pestaña y... ->ver codigo...<-] ==Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rango As String, Texto As String, Celda_1 As String, Celda_n As String, Col As String, Fila As Long
Rango = "c6:c10"
Texto = " Ultima Línea "
Celda_1 = Range(Rango).Cells(1, 1).Address
Celda_n = Range(Celda_1).Offset(Range(Rango).Rows.Count - 1).Address
Col = Mid(Range(Rango).Address, 2, InStr(3, Range(Rango).Address, "$") - 1)
If Intersect(Target, Range(Rango)) Is Nothing Then Exit Sub
Application.EnableEvents = False
If IsEmpty(Range(Celda_1)) Then Range(Celda_1) = Texto
For Fila = Range(Celda_1).Row + 1 To Range(Celda_n).Row
With Range(Col & Fila)
If Not IsEmpty(.Offset(-1)) Then
If IsEmpty(.Value) Then .Value = Texto
If .Offset(-1) = Texto Then Range(.Offset, Range(Celda_n)).ClearContents
End If
End With
Next
Application.EnableEvents = True
End Sub

Preguntas similares