Si recuerdas esta macro para modificarla

esta macro envía los datos de HOJAREGISTRO a la hoja BDCOMPRAS SOLO SI, se cumplen dos condiciones al mismo tiempo

si al enviar el dato de G47 y M43 de la HOJAREGISTRO a la hoja BDCOMPRAS Y ya ESTÁN registradas LOS DOS AL MISMO TIEMPO en la hoja BDCOMPRAS NO ENVÍES Y MsgBox DATOS YA REGISTRADOS

ESO ES LO QUE HACE Y LO HACE MUY BIEN CLARO TAMBIÉN ANTES DE ESTE VE SI LAS CELDAS NO ESTÁN VACÍAS TAMBIÉN

ahora quiero que se cumplan es con tres condiciones añadiendo la celda G55 de la HOJAREGISTRO ES DECIR

si coincide las tres al mismo tiempo MsgBox ya fue registrada solo asi

todo lo contrario o diferente que continué enviando TE DEJO LA MACRO

Sub pasardatos()
Dim Rango As Range
Dim DireccionPrimera As String
Dim BusquedaTerminada, DatosEncontrados As Boolean
Dim CeldaG43, CeldaG45, CeldaG47, CeldaG49, CeldaG51, CeldaG53, CeldaG55, CeldaG57, CeldaG59, CeldaG61, CeldaG63, CeldaM43, CeldaM45, CeldaM47, CeldaM49, CeldaM51, CeldaM53, CeldaM55, CeldaM57, CeldaM59
CeldaG43 = Worksheets("HOJAREGISTRO").Cells(43, "G")
CeldaG45 = Worksheets("HOJAREGISTRO").Cells(45, "G")
CeldaG47 = Worksheets("HOJAREGISTRO").Cells(47, "G")
CeldaG49 = Worksheets("HOJAREGISTRO").Cells(49, "G")
CeldaG51 = Worksheets("HOJAREGISTRO").Cells(51, "G")
CeldaG53 = Worksheets("HOJAREGISTRO").Cells(53, "G")
CeldaG55 = Worksheets("HOJAREGISTRO").Cells(55, "G")
CeldaG57 = Worksheets("HOJAREGISTRO").Cells(57, "G")
CeldaG59 = Worksheets("HOJAREGISTRO").Cells(59, "G")
CeldaG61 = Worksheets("HOJAREGISTRO").Cells(61, "G")
CeldaG63 = Worksheets("HOJAREGISTRO").Cells(63, "G")
CeldaM43 = Worksheets("HOJAREGISTRO").Cells(43, "M")
CeldaM45 = Worksheets("HOJAREGISTRO").Cells(45, "M")
CeldaM47 = Worksheets("HOJAREGISTRO").Cells(47, "M")
CeldaM49 = Worksheets("HOJAREGISTRO").Cells(49, "M")
CeldaM51 = Worksheets("HOJAREGISTRO").Cells(51, "M")
CeldaM53 = Worksheets("HOJAREGISTRO").Cells(53, "M")
CeldaM55 = Worksheets("HOJAREGISTRO").Cells(55, "M")
CeldaM57 = Worksheets("HOJAREGISTRO").Cells(57, "M")
CeldaM59 = Worksheets("HOJAREGISTRO").Cells(59, "M")
If CeldaG47 <> "" And CeldaG43 <> "" And CeldaG45 <> "" And CeldaG49 <> "" And CeldaG51 <> "" And CeldaG53 <> "" And CeldaG55 <> "" And CeldaG57 <> "" And CeldaG59 <> "" And CeldaG61 <> "" And CeldaG63 <> "" And CeldaM43 <> "" And CeldaM45 <> "" And CeldaM47 <> "" And CeldaM49 <> "" And CeldaM51 <> "" And CeldaM53 <> "" And CeldaM55 <> "" And CeldaM57 <> "" And CeldaM59 <> "" Then
   DatosEncontrados = False
   Set Rango = Worksheets("BDCOMPRAS").Range("C:C").Find(CeldaG47)
   If Not Rango Is Nothing Then
      DireccionPrimera = Rango.Address
      BusquedaTerminada = False
      Do
         If Worksheets("BDCOMPRAS").Cells(Rango.Row, "L") = CeldaM43 Then
            MsgBox ("Los datos ya están registrados")
            DatosEncontrados = True
            BusquedaTerminada = True
         End If
         Set Rango = Worksheets("BDCOMPRAS").Range("C:C").FindNext(Rango)
         If Rango.Address = DireccionPrimera Then BusquedaTerminada = True
      Loop Until BusquedaTerminada
     End If
   If Not DatosEncontrados Then
      Worksheets("BDCOMPRAS").Rows("3:3").Insert Shift:=xlDown
      Worksheets("BDCOMPRAS").Cells(3, "A") = CeldaG43
      Worksheets("BDCOMPRAS").Cells(3, "B") = CeldaG45
      Worksheets("BDCOMPRAS").Cells(3, "C") = CeldaG47
      Worksheets("BDCOMPRAS").Cells(3, "D") = CeldaG49
      Worksheets("BDCOMPRAS").Cells(3, "E") = CeldaG51
      Worksheets("BDCOMPRAS").Cells(3, "F") = CeldaG53
      Worksheets("BDCOMPRAS").Cells(3, "G") = CeldaG55
      Worksheets("BDCOMPRAS").Cells(3, "H") = CeldaG57
      Worksheets("BDCOMPRAS").Cells(3, "I") = CeldaG59
      Worksheets("BDCOMPRAS").Cells(3, "J") = CeldaG61
      Worksheets("BDCOMPRAS").Cells(3, "K") = CeldaG63
      Worksheets("BDCOMPRAS").Cells(3, "L") = CeldaM43
      Worksheets("BDCOMPRAS").Cells(3, "M") = CeldaM45
      Worksheets("BDCOMPRAS").Cells(3, "N") = CeldaM47
      Worksheets("BDCOMPRAS").Cells(3, "O") = CeldaM49
      Worksheets("BDCOMPRAS").Cells(3, "P") = CeldaM51
      Worksheets("BDCOMPRAS").Cells(3, "Q") = CeldaM53
      Worksheets("BDCOMPRAS").Cells(3, "R") = CeldaM55
      Worksheets("BDCOMPRAS").Cells(3, "S") = CeldaM57
      Worksheets("BDCOMPRAS").Cells(3, "T") = CeldaM59
   End If
Else
   MsgBox ("Falta algún dato")
   MsgBox ("CHEQUEE NUEVAMENTE CADA CELDA")
End If
End Sub

1 Respuesta

Respuesta
1

No se por qué motivo cuando cargo el fichero tuyo que se llama Modulo de Compra me da un error de que no se ha podido leer una DLL y no se cargan las macros y no puedo probarlas. Es que yo recuerdo que esta macro la he modificado varias veces, recuerdo que una vez la dejé bastante reducida, pero luego cambiaste el formato y las celdas eran combinadas o tenían fórmulas y tuve que deshacer casi todo y dejarla más grande. Entonces no sé si esta que pones es la última que hice.

De todas formas, para poder probar necesito el libro que como te digo no puedo abrir el que tengo. Luego te pido que me lo mandes por favor.

Espero me lo puedas mandar a ver si no me da ese error, sino tendría que ver por qué pasa eso. ¿No habrás metido algún DataPicker por casualidad?

Hay te envíe el archivo TODO FUNCIONA bien a qui me hace todo si pudiera verlo de otra manera para explicártelo porque se que me ayudarías mucho

Ya lo tengo. Algo raro pasa con el fichero pero no sé el qué. Bueno, lo he podido leer y he aprovechado para hacer lo que pe pedías y de paso le he dado un repaso a todas las macros y las he simplificado en escritura. Son cosas que no tendrías que notar nada salvo si he cometido alguna errata.

Lo que si notarás que es distinto es que tenías algunos mensajes de error que salía una ventana y luego otra, los he unificado para que salga una sola ventana.

Y ahora te voy a mandar el fichero para que lo pruebes, le cambio el nombre a 20 para que no pierdas el viejo por si acaso.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas