La respuesta que le dan es totalmente inadecuada e indica la falta de conocimiento de VBA de quien lo hace y menos hablar de "consumo de recursos" y "estética", personalmente opino que no lo puede hacer con los subformularios y menos utilizando formato condicional. Por si de pronto lo interesa lo hago con cuadros de lista, Observe la imagen.

Al hacer doble clic sobre el idcodigo 2 del cuadro de lista 1 se resaltan los idcodigo de los cuadros de lista 2 y 3. Ahora, limpio y hago doble clic sobre el idcodigo 3 del cuadro de lista 3 y obtengo

Ahora limpio y hago doble clic sobre el idcodigo1 del cuadro de lista 2 y obtengo

Utilizo el siguiente procedimiento para deseleccionar los items de los 3 cuadros de lista.
Sub deselecciona()
 Dim varPos As Variant
     For Each varPos In lst01.ItemsSelected
         Me.lst01.Selected(varPos) = False
     Next varPos
     For Each varPos In lst02.ItemsSelected
         Me.lst02.Selected(varPos) = False
     Next varPos
     For Each varPos In lst03.ItemsSelected
         Me.lst03.Selected(varPos) = False
     Next varPos
End Sub
Llamo el procedimiento en evento Al entrar en cada cuadro de lista y al hacer clic en el botón Limpiar.
 Call deselecciona
CÓDIGO DEL EVENTO Al hacer doble clic sobre una fila del cuadro de lista 1
Private Sub lst01_DblClick(Cancel As Integer)
  Dim intNumAct As Integer
  Dim intCodigo As Integer
   intCodigo = Me.lst01.Column(1)
     For intNumAct = 1 To Me.lst02.ListCount - 1
      If Me.lst02.Column(1, intNumAct) = intCodigo Then
        Me.lst02.Selected(intNumAct) = True
      End If
     Next intNumAct
     For intNumAct = 1 To Me.lst03.ListCount - 1
      If Me.lst03.Column(1, intNumAct) = intCodigo Then
        Me.lst03.Selected(intNumAct) = True
      End If
     Next intNumAct
End Sub
CÓDIGO DEL EVENTO Al hacer doble clic sobre una fila del cuadro de lista 2
Private Sub lst02_DblClick(Cancel As Integer)
  Dim intNumAct As Integer
  Dim intCodigo As Integer
   intCodigo = Me.lst02.Column(1)
     For intNumAct = 1 To Me.lst01.ListCount - 1
      If Me.lst01.Column(1, intNumAct) = intCodigo Then
        Me.lst01.Selected(intNumAct) = True
      End If
     Next intNumAct
     For intNumAct = 1 To Me.lst03.ListCount - 1
      If Me.lst03.Column(1, intNumAct) = intCodigo Then
        Me.lst03.Selected(intNumAct) = True
      End If
     Next intNumAct
End Sub
CÓDIGO DEL EVENTO Al hacer doble clic sobre una fila del cuadro de lista 3
Private Sub lst03_DblClick(Cancel As Integer)
  Dim intNumAct As Integer
  Dim intCodigo As Integer
   intCodigo = Me.lst03.Column(1)
     For intNumAct = 1 To Me.lst01.ListCount - 1
      If Me.lst01.Column(1, intNumAct) = intCodigo Then
        Me.lst01.Selected(intNumAct) = True
      End If
     Next intNumAct
     For intNumAct = 1 To Me.lst02.ListCount - 1
      If Me.lst02.Column(1, intNumAct) = intCodigo Then
        Me.lst02.Selected(intNumAct) = True
      End If
     Next intNumAct
End Sub
Observe que el código es muy parecido en los 3 cuadros de lista, lo cual indica que se pueden hacer unas mejoras para reducirlo. Esta una idea seguro que deben existir otras.