Saltar al contenido

buscar duplicados y transponer datos anexos


Recommended Posts

publicado

buenas tardes

tengo una hoja con 2 columnas

en la columna A tengo unos examenes y en la columna B la cedula del paciente. "la cedula se puede repetir"

lo que deseo es:

copiar todos los examenes de una cedula y transponerlos en la columna C. adjunto el archivo de lo que deseo.

lo que pasa es que es una base de datos con miles de registros y varias columnas, pero lo quiero con estas dos para que lo entiendan. gracias

si alguien sabe y tiene skype le agradezco mi skype es ing_rodolfo_alvarez

duda1.xls

publicado
Hola roydi,

No se si aún lo necesitas, echale un vistazo a ver si he acertado.

Un Saludo

si, esa es una parte, sera posible que me agregues al face o a msn? es ing_rodolfo_alvarez@hotmail.com, me dejas un mensaje por favor. le agradeceria mucho, es que ando barado en una parte.

- - - - - Mensaje combinado - - - - -

ok, perfecto, pero si la busqueda es con 2 libros y que me traiga los examenes del otro libro y me los pegue al lado continuando la secuencia, como se haria? mi skype es ing_rodolfo_alvarez gracias mijito.

publicado

lo mejor es que subas un archivo (que incluya los libros necesarios) con lo que quieres y vemos que se puede hacer, en principio no hay problema pero lo mejor es que quede bien claro lo que quieres.

Le he echado un vistazo a la macro que te mandé y he cambiado alguna cosa



Private Sub CommandButton1_Click()

Dim primera_celda As Long
Dim ultima_celda As Long
Dim celda_final As Long
Dim valor_celda As Variant
Dim origen As String
Dim destino As String

Application.ScreenUpdating = False

Range("C:AA") = ""
celda_final = Worksheets(1).Cells(Rows.Count, 1).End(xlUp).Row + 1

Range("A1:B" & celda_final).Sort key1:=Cells(1, 2), order1:=xlAscending, Header:=xlYes

primera_celda = 2
ultima_celda = 1
valor_celda = Cells(primera_celda, 2)

While ultima_celda < celda_final

ultima_celda = primera_celda + Application.WorksheetFunction.CountIf(Range("B:B"), valor_celda)

destino = "C" & primera_celda & ":" & Chr(66 + ultima_celda - primera_celda) & primera_celda
origen = "A" & primera_celda & ":A" & (ultima_celda - 1)

Range(destino) = Application.WorksheetFunction.Transpose(Range(origen))

primera_celda = ultima_celda
valor_celda = Cells(ultima_celda, 2)

Wend
Application.ScreenUpdating = True

End Sub


[/CODE]

La anterior te puede causar algún problema si los datos no etsán ordenados antes de ejecutar la macro, con esta no hay problema, y es mejor para ejecutarla con muchos datos.

Un Saludo

Archivado

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

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.