Excel - Como seleccionar una matriz con una macro

 
Vista:

Como seleccionar una matriz con una macro

Publicado por Miguel (4 intervenciones) el 10/04/2009 00:23:20
Hola a todos soy nuevo por aqui espero me puedan ayudar tengo una macro la cual me sirve para buscar y eliminar datos repetidos en una columna y darme las veces que se repitio pero lo que yo necesito es que en lugar de buscar solo en una columna me busque en una matriz de datos que tengo.

Como puedo modificar mi macro?, o como me quedaria ya corregida? AYUDENME...

Ejemplo de mi matriz:

perro cotorro
perro leon
gato pajaro
gato pajaro

Pero mi macro solo busca en la primer columna y me da este resultado,
perro 2
gato 2

Necesito que me dé:
perro 2
gato 2
cotorro 1
leon 1
pajaro 2

Sub EliminarRepetidosYRegistro()
contador = 1
valor = ActiveCell.Value
ActiveCell.Offset(1, 0).Select
While ActiveCell.Value <> ""
If ActiveCell.Value = valor Then
ActiveSheet.Next.Select
If ActiveCell.Value <> valor Then
ActiveCell.Offset(1, 0).Select
ActiveCell.Value = valor
End If
ActiveSheet.Previous.Select
Selection.Delete Shift:=xlUP
contador = contador + 1
Else
If contador > 1 Then
ActiveSheet.Next.Select
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = contador
ActiveCell.Offset(0, -1).Select
ActiveSheet.Previous.Select
End If
contador = 1
valor = ActiveCell.Value
ActiveCell.Offset(1, 0).Select
End If
Wend
If contador <> 1 Then
ActiveSheet.Next.Select
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = contador
ActivelCell.Offset(0, 1).Select
ActiveSheet.Previous.Select
End If
End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JuanC

RE:Como seleccionar una matriz con una macro

Publicado por JuanC (1237 intervenciones) el 10/04/2009 01:15:32
hay cientos de formas de hacerlo...
yo usaría algo así:

Ej:
Option Explicit

Type T_wc
sWord As String
lCount As Long
End Type

Sub test()
Dim v() As T_wc, i&, n&
Dim rng As Range, c As Range

Set rng = Range("A1:B10")
ReDim v(0) As T_wc
n = 0
For Each c In rng
For i = 0 To UBound(v)
If LCase(c.Value) = v(i).sWord Then
v(i).lCount = v(i).lCount + 1
GoTo siga
End If
Next
ReDim Preserve v(n) As T_wc
v(n).sWord = LCase(c.Value)
v(n).lCount = 1
n = n + 1
siga:
Next

For i = 0 To UBound(v)
MsgBox v(i).sWord & " " & v(i).lCount
Next

Erase v
Set c = Nothing
Set rng = Nothing
End Sub

Saludos desde Baires, JuanC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Como seleccionar una matriz con una macro

Publicado por Miguel (4 intervenciones) el 10/04/2009 01:41:53
Muchas gracias Juan por la pronta respuesta pero no soy muy experto en macros y al momento de pegar la macro que me pasaste me abre otra ventana para correr otra macro y asi sucesivamente, si no es mucha molestia me podrias decir como pasarla textualmente a mi libro de trabajo?
O como es que funcionaria esta macro
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JuanC

RE:Como seleccionar una matriz con una macro

Publicado por JuanC (1237 intervenciones) el 10/04/2009 13:09:08
si estás corriendo otra macro es porque estás llamando algún procedimiento o función
al código que te pasé simplemente copialo y pegalo en un módulo estándar vacío

Saludos desde Baires, JuanC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Como seleccionar una matriz con una macro

Publicado por Miguel (4 intervenciones) el 11/04/2009 16:09:20
Muchisimas Gracias Juan me salvaste la vida jajaja.

Que buena onda de tu parte

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar