Saltar al contenido
View in the app

A better way to browse. Learn more.

Ayuda Excel

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Varios Macros de Eventos Misma Hoja

publicado

Buenos días, soy nuevo en estoy de programar en excel, tengo un macro de evento de una lista desplegable, la cual si se le inserta un valor que no esta en la lista lo agrega automáticamente, aquí esta el código

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address <> "$D$5" Then Exit Sub

On Error Resume Next

fil = Application.WorksheetFunction.Match(Target, Sheets("Hoja2").Columns("B:B"), 0)

If fil <> "" Then Exit Sub

uf = Sheets("Hoja2").Range("B" & Cells.Rows.Count).End(xlUp).Row + 1

Sheets("Hoja2").Range("B" & uf) = Target

Sheets("Hoja2").Range("B5:B" & uf).Sort Key1:=Sheets("Hoja2").Range("B5"), Order1:=xlAscending, Header:= _

xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _

DataOption1:=xlSortTextAsNumbers

End Sub

Bien esto funciona bien cuando se tiene una sola lista, pero cuando se tiene varias lista no se como hacer para que funcione, intente duplicar la rutina pero me tira un error,

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address <> "$D$5" Then Exit Sub

On Error Resume Next

fil = Application.WorksheetFunction.Match(Target, Sheets("Hoja2").Columns("B:B"), 0)

If fil <> "" Then Exit Sub

uf = Sheets("Hoja2").Range("B" & Cells.Rows.Count).End(xlUp).Row + 1

Sheets("Hoja2").Range("B" & uf) = Target

Sheets("Hoja2").Range("B5:B" & uf).Sort Key1:=Sheets("Hoja2").Range("B5"), Order1:=xlAscending, Header:= _

xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _

DataOption1:=xlSortTextAsNumbers

End Sub

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address <> "$D$9" Then Exit Sub

On Error Resume Next

fil = Application.WorksheetFunction.Match(Target, Sheets("Hoja2").Columns("D:D"), 0)

If fil <> "" Then Exit Sub

uf = Sheets("Hoja2").Range("D" & Cells.Rows.Count).End(xlUp).Row + 1

Sheets("Hoja2").Range("D" & uf) = Target

Sheets("Hoja2").Range("D5:D" & uf).Sort Key1:=Sheets("Hoja2").Range("D5"), Order1:=xlAscending, Header:= _

xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _

DataOption1:=xlSortTextAsNumbers

End Sub

subo el archivo, mas adelante se agregarán como 10 o 20 listas entonces no se como hacer para que se active dependiendo de la celta.

Gracias de antemano

ListaDiferenteHoja.rar

Featured Replies

publicado

Hola:

No puede haber dos procedimientos con el mismo nombre, prueba así:

Private Sub Worksheet_Change(ByVal Target As Range):    On Error Resume Next

If Target.Address = "$D$5" Then
fil = Application.WorksheetFunction.Match(Target, Sheets("Hoja2").Columns("B:B"), 0)
If fil <> "" Then Exit Sub
uf = Sheets("Hoja2").Range("B" & Cells.Rows.Count).End(xlUp).Row + 1
Sheets("Hoja2").Range("B" & uf) = Target
Sheets("Hoja2").Range("B5:B" & uf).Sort Key1:=Sheets("Hoja2").Range("B5"), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortTextAsNumbers
End If


If Target.Address = "$D$9" Then
fil = Application.WorksheetFunction.Match(Target, Sheets("Hoja2").Columns("D:D"), 0)
If fil <> "" Then Exit Sub
uf = Sheets("Hoja2").Range("D" & Cells.Rows.Count).End(xlUp).Row + 1
Sheets("Hoja2").Range("D" & uf) = Target
Sheets("Hoja2").Range("D5:D" & uf).Sort Key1:=Sheets("Hoja2").Range("D5"), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortTextAsNumbers
End If


End Sub


[/CODE]

Saludos

publicado
  • Autor

Estaba loco con los condicionales, muchas gracias me funcionó perfecto

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.