Macro que me enviaste excelente quiero ver si pudieras perfeccionarla

Tu macro fue

Sub pasardatos()

If Worksheets("Hoja1").Cells(1, "A") <> "" And
Worksheets("Hoja1").Cells(1, "B") <> ""
ThenSheets("PROVEEDORES").Rows("2:2").Insert
Shift:=xlDownWorksheets("Hoja2").Cells(1, "A") =
Worksheets("Hoja1").Cells(1, "A")Worksheets("Hoja2").Cells(1, "B") =
Worksheets("Hoja1").Cells(1, "B")ElseMsgBox ("Falta algún dato")

End If

End Sub
LA CUAL LA ADAPTE A LO QUE NECESITO DE LA SIGUIENTE MANERA Y FUNCIONO EXCELENTEMENTE
Sub
pasardatos()

If Worksheets("HOJAREGISTRO").Cells(15, "C") <> ""
And Worksheets("HOJAREGISTRO").Cells(16, "C") <> ""
ThenSheets("ENTRADAS").Rows("2:2").Insert
Shift:=xlDownWorksheets("ENTRADAS").Cells(2, "A") =
Worksheets("HOJAREGISTRO").Cells(15, "C")Worksheets("ENTRADAS").Cells(2,
"B") = Worksheets("HojaREGISTRO").Cells(16, "C")ElseMsgBox ("Falta
algún dato")End If

End Sub
Necesito que al enviar los datos a la
hoja entrada ;si existe los dos datos a la vez no lo envíe; cualquier
otra opción la envíe es decir que busque el dato de c15 de la
hojaregistro en "A" de la hoja entradas hasta el ultimo dato y coteje si
existe y al mismo tiempo busque c16 de la hojaregistro en "B" de la
hoja entradas hasta el ultimo dato y coteje si existe; si existe los 2
datos al mismo tiempo no envíe y diga que ya fue registrado; cualquier otra opción que se de que envíe

1 Respuesta

Respuesta
1

Alvaro 1911!

¡Vaya rollo! El copiar y pegar de esta página va fatal, ya ves que ha cortado las líneas por donde la dio la gana y he tenido que reconstruir lo que habías hecho. Para evitarlo hay que pegar el texto dentro de un bloque de texto que se obtiene con el icono </> que tienes arriba.

Creo que quieres decir que los datos que queremos registrar no deben estar registrados, y supongo que están registrados cuando están en la misma fila. Que si están ambos pero en una fila distinta si se puedan añadir los datos nuevos

Me explico: supón que los datos que has tecleado son 1 y 2

Y los datos que hay son

1 | 3

4 | 2

Entonces supongo que se pueden insertar porque no están registrados

Mientras que si fueran

1 | 2

3 | 4

Estarían registrados y no se insertarían.

¿Es cierto lo que digo?

necesito que la macro recorra la columna "A" de la hoja entrada buscando el dato escrito (cualquier valor) en la celda "C15" de la hojaregistro y la mismo tiempo recorra la columna "B" de la hoja Entradas buscando el dato escrito (cualquier valor) en la celda "C16" de la hojaregistro: si coincide ambas entonce ; "Datos registrados"; si no enviar seguir enviando datos

No contestaste o lo que te preguntaba exactamente. Pero creo entender que quieres decir que deben coincidir en la misma fila. Es que siendo así no hay que buscar en la dos columnas se busca solo en una y se compruebe si el dato de al lado coincide con el otro dato que queremos introducir.

Prueba la macro y ya me dirás sis es lo que querías. Si no es asi dímelo.

Sub pasardatos()
Dim Rango As Range
Dim DireccionPrimera As String
Dim BusquedaTerminada, DatosEncontrados As Boolean
Dim Celda15, Celda16
Celda15 = Worksheets("HOJAREGISTRO").Cells(15, "C")
Celda16 = Worksheets("HOJAREGISTRO").Cells(16, "C")
If Celda15 <> "" And Celda16 <> "" Then
   DatosEncontrados = False
   Set Rango = Worksheets("ENTRADAS").Range("A:A").Find(Celda15)
   If Not Rango Is Nothing Then
      DireccionPrimera = Rango.Address
      BusquedaTerminada = False
      Do
         If Worksheets("ENTRADAS").Cells(Rango.Row, "B") = Celda16 Then
            MsgBox ("Los datos ya están registrados")
            DatosEncontrados = True
            BusquedaTerminada = True
         End If
         Set Rango = Worksheets("ENTRADAS").Range("A:A").FindNext(Rango)
         If Rango.Address = DireccionPrimera Then BusquedaTerminada = True
      Loop Until BusquedaTerminada
   End If
   If Not DatosEncontrados Then
      Worksheets("ENTRADAS").Rows("2:2").Insert Shift:=xlDown 
      Worksheets("ENTRADAS").Cells(2, "A") = Celda15
      Worksheets("ENTRADAS").Cells(2, "B") = Celda16
   End If
Else
   MsgBox ("Falta algún dato")
End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas