Reenvío archivo comparación datos

hola te envíe el archivo con la macro que hay que fusionar tengo otro archivo que le debo hacer opciones similares ya abrí la pregunta gracias

1 Respuesta

Respuesta
1

Ahora mismo estoy perdido. Me llegan innumerables mensajes, contesto muchas preguntas y no sé qué tengo que hacer ahora. ¿Ya mandaste el fichero de lo que debo hacer? Perdona si lo hiciste pero tengo un caos muy grande.

Espera, que ya he encontrado el fichero último y penúltimo. Intentare integrar las dos macros. Entonces lo que quieres es que la macro integrada se ejecute en todos los libros abiertos salvo el que tiene la macro, ¿no?

Espera, que ya he encontrado el fichero último y penúltimo. Intentare integrar las dos macros. Entonces lo que quieres es que la macro integrada se ejecute en todos los libros abiertos salvo el que tiene la macro, ¿no?

Espera, otra cosa. Utilizas una macro para sustituir lo de los hijos, nietos, etc que no está mal, pero tiene que buscar esas expresiones en todas las celdas. Yo creo que eso es un esfuerzo extraordinario y pienso que puede llevar más tiempo que si buscamos solo en la columna BK que creo es el único sitio donde salen, ¿es así?

También he visto las expresiones

HIJASTRO(A)

COMPAÑERO(A)

Supongo que habrá que cambiarlas de la misma manera.

Creo que será mejor hacer un solo reemplazo, creo que no habrá problemas. Haremos

Replace "O(A)", "O (A)"

Y nos ahorraremos muchas líneas y mucho trabajo para el ordenador.

Pues ya lo tengo. Creo que es lo que quieres, si no me lo dices.

Entonces lo que que he hecho es un libro que se llama CorregirInconsistencias.XLSM que lo que hará será corregir las de los otros libros que tengas abiertos, las suyas propias no.

Están integradas las correcciones anteriores y la de ahora, se ha considerado que la de ahora solo se da en la columna BK y que la única cosa qeu hay que sustituir es "A(O)" por "A (O)"

Estas es la macro con dos subrutinas, la segunda la he hecho privada para que no te lie al salir dos macros, pero puedes quitárselo si alguna vez vas a querer usarla por si sola.

Sub LlamaCorregirInconsistencias()
Dim Wb1, Wb As Workbook
Dim Nombre1 As String
Set Wb1 = ThisWorkbook
Nombre1 = Wb1.Name
For Each Wb In Workbooks
 If Wb.Name <> Nombre1 Then
 Wb.Activate
 Call CorregirInconsistencias
 Wb.Save
 End If
Next
Wb1.Activate
Set Wb = Nothing
Set Wb1 = Nothing
End Sub
Private Sub CorregirInconsistencias()
Dim UltiFila, i As Integer
UltiFila = Range("BG" & Rows.Count).End(xlUp).Row
For i = 2 To UltiFila
 If Cells(i, "I") <> "860023143" Then Cells(i, "I") = "860023143"
 If Cells(i, "AB") <> "1111111" Then Cells(i, "AB") = "1111111"
 Cells(i, "AF").Replace " ", ""
 Cells(i, "BH").Replace " ", ""
 Cells(i, "BJ").Replace " ", ""
 Cells(i, "BI").Replace " ", ""
 If Cells(i, "BM") = "" Then
 Cells(i, "BL") = "SD"
 Else
 If Cells(i, "BU") < 10 Then
 If Cells(i, "BL") <> "RC" Then Cells(i, "BL") = "RC"
 ElseIf Cells(i, "BU") < 18 Then
 If Cells(i, "BL") <> "TI" Then Cells(i, "BL") = "TI"
 Else
 If Cells(i, "BL") <> "CC" Then Cells(i, "BL") = "CC"
 End If
 End If
 If UCase(Cells(i, "BN")) = "FEMENINO" Then
 If Cells(i, "CP") <> "NO APLICA" Then Cells(i, "CP") = "NO APLICA"
 Else
 If Cells(i, "CP") <> "" Then Cells(i, "CP") = ""
 End If
 If Cells(i, "CM") = "" Then Cells(i, "CM") = "NO"
 If UCase(Cells(i, "CM")) = "NO" Then
 If Cells(i, "CN") <> "" Then Cells(i, "CN") = ""
 ElseIf UCase(Cells(i, "CM")) = "SI" Then
 If Cells(i, "CN") <> "SI" Then Cells(i, "CN") = "NO"
 End If
 If Cells(i, "CS") = "" Then Cells(i, "CS") = "OTRA"
 If Cells(i, "AV") = "" Then Cells(i, "AV") = "NO"
 If Cells(i, "AL") = "" Then Cells(i, "AL") = "NO"
Next
'wiht Range("BK2:BK" & UltiFila)
' .Replace "NIETO(A)", "NIETO (A)"
' .Replace "HERMANO(A)", "HERMANO (A)"
' .Replace "SOBRINO(A)", "SOBRINO (A)"
' .Replace "PRIMO(A)", "PRIMO (A)"
' .Replace "HIJO(A)", "HIJO (A)"
' .Replace "ABUELO(A)", "ABUELO (A)"
' .Replace "SUEGRO(A)", "SUEGRO (A)"
' .Replace "CUÑADO(A)", "CUÑADO (A)"
' .Replace "HIJASTRO(A)", "HIJASTRO (A)"
' .Replace "COMPAÑERO(A), "COMPAÑERO (A)"
'End With
Range("BK2:BK" & UltiFila).Replace "O(A)", "O (A)"
End Sub

Perdona que no ponga las sangrías. Es un fallo de esta página que al copiar quita los espacios por la izquierda, si quieres tenerlos hay que eu volver a ponerlos a mano.

No obstante te mando el fichero y ahi la tienes bien indentada.

Te mando el libro con los datos en la hoja de cálculo que traía, pero no los necesita porque lo que hace es corregir en otros libros.

Y eso es todo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas