Vincular datos

Hola tengo un libro con dos campos Nit y cliente y otros libros con los mismos campos Nit y cliente, necesito que cada vez que se llene estos datos en cualquiera de los libros, se alimente esos dos campos en el primer libro
Respuesta
1
La siguiente rutina...
Copia de la posición donde este del libro 1 a otro libro en la hoja donde estaba cuando lo cerraron, colocando la copia en el siguiente renglón.
Espero te sirva...
Sub Selecciona_Dato_copialo()
Dim Localiza As Variant
Dim posicion As Variant
Dim Renglon As Variant
'Activa tu olibro original.
    ThisWorkbook.Activate
'Selecciona la celda activa.
    ActiveCell.Select
'localiza en que línea estas
    Localiza = ActiveCell.Address
    posicion = InStr(2, Localiza, "$")
    If posicion > 0 Then
       Renglon = Mid(Localiza, posicion + 1)
       Range("A" & CStr(Renglon) & ":B" & CStr(Renglon)).Select
       Selection.Copy
    'Colocar el path de los archivos
    ChDir "C:\Documents and Settings\peguocmx\Escritorio\TodoExpertos\Villad"
    'Aqui se coloca el nombre del arhcivo donde se va a abrir el archivo No. 2
    Workbooks.Open Filename:= _
        "C:\Documents and Settings\peguocmx\Escritorio\TodoExpertos\Villad\Libro2.xls"
    'Abriendo en donde va la hoja.
    Range("A1").Select
    Selection.End(xlDown).Select
    Localiza = ActiveCell.Address
    posicion = InStr(2, Localiza, "$")
    Renglon = Mid(Localiza, posicion + 1)
    If Renglon = 65536 Then
       Selection.End(xlUp).Select
       Localiza = ActiveCell.Address
       posicion = InStr(2, Localiza, "$")
       Renglon = Mid(Localiza, posicion + 1)
    Else
        Localiza = ActiveCell.Address
        posicion = InStr(2, Localiza, "$")
        Renglon = Mid(Localiza, posicion + 1)
     End If
     Range("A" & CStr(Renglon + 1)).Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
'Guadarando los cambios
    ActiveWorkbook.Save
'Cerrando el libro destino
    ActiveWorkbook.Close
  End If
End Sub

1 respuesta más de otro experto

Respuesta
1
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 6 Or Target.Row < 15 Or Target.Row > 25 Or Range("H" & Target.Row) = "Pasado" Then Exit Sub ' Si la celda que has modificado está fuera del rango F15:F25 o el rango Hxx es igual a pasado sal de la macro
Dim Fila As Integer
If Target.Text = "Cerrado" Then ' si el texto de la celda modificada es "Cerrado"
    Fila = Target.Row ' la variable FILA va ha valer el número de fila modificado
    Range("e" & Fila & ":f" & Fila).Copy 'copia el rango E:F de la fila de la celda modificada
    Sheets(2).Select ' selecciona la hoja 2
    Range("a1").Select ' selecciona el rango A1
    Selection.End(xlDown).Select ' Se va a la ultima fila con datos
    ActiveCell.Offset(1, 0).Select ' pasa a la siguiente celda
    ActiveSheet.Paste ' Pega los datos copiados
    Application.CutCopyMode = False
    Sheets(1).Range("H" & Fila) = "Pasado"
End If
Este código debes de ponerlo en las hojas donde sueles poner los datos, te he puesto una celda más Hxx que te indicaría si esa fila ya ha sido pasada a la hoja nueva, con lo cual no se volverá a pasar si por descuido se modifica, modificatelo a los rangos y hojas/libros que tu tengas.
Creo que es esto lo que quieres, si no coméntamelo
un saludo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas