XL 2016 Différence entre deux tables

  • Initiateur de la discussion Initiateur de la discussion KTM
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

KTM

XLDnaute Impliqué
Bonjours chers tous
je voudrais extraire la liste des patients qui sont pas venus pour leur rendez vous
Dans ma plage 1 : Les attendus
Dans ma plage 2 : Les reçus
Dans ma plage 3 : Je voudrais les patients non reçus
Merci
 

Pièces jointes

Bonjour,
VB:
Option Explicit
Sub test()
Dim P1 As String, P2 As String, Sql As String
With Sheets("Feuil2")
    P1 = Replace(Range(.Range("A3"), .Cells(.Cells.Rows.Count, "C").End(xlUp)).Address, "$", "")
    P2 = Replace(Range(.Range("E3"), .Cells(.Cells.Rows.Count, "G").End(xlUp)).Address, "$", "")
End With

With CreateObject("Adodb.connection")
    .Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & ";Extended Properties=""Excel 12.0;HDR=no;"""
  Sql = "select [F1],[F2],[F3] from"
   Sql = Sql & "( select * from [Feuil2$" & P1 & "]"
   Sql = Sql & " union all"
   Sql = Sql & " select * from [Feuil2$" & P2 & "]) "
   Sql = Sql & " Group By [F1],[F2],[F3]"
   Sql = Sql & " Having count([F1])=1"
     Sheets("Feuil2").Range("I3").CopyFromRecordset .Execute(Sql)
    .Close
 
End With

End Sub
 
Bonjour KTM, goube, dys...,

C'est un problème vraiment très classique avec cette formule matricielle en I3 :
Code:
=SIERREUR(INDEX(A:A;PETITE.VALEUR(SI(NON(NB.SI(E$3:E$1000;A$3:A$1000))*(A$3:A$1000<>"");LIGNE(A$3:A$1000));LIGNES(I$3:I3)));"")
Encore plus classique en J3.

A+
 

Pièces jointes

Bonjour,
VB:
Option Explicit
Sub test()
Dim P1 As String, P2 As String, Sql As String
With Sheets("Feuil2")
    P1 = Replace(Range(.Range("A3"), .Cells(.Cells.Rows.Count, "C").End(xlUp)).Address, "$", "")
    P2 = Replace(Range(.Range("E3"), .Cells(.Cells.Rows.Count, "G").End(xlUp)).Address, "$", "")
End With

With CreateObject("Adodb.connection")
    .Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & ";Extended Properties=""Excel 12.0;HDR=no;"""
  Sql = "select [F1],[F2],[F3] from"
   Sql = Sql & "( select * from [Feuil2$" & P1 & "]"
   Sql = Sql & " union all"
   Sql = Sql & " select * from [Feuil2$" & P2 & "]) "
   Sql = Sql & " Group By [F1],[F2],[F3]"
   Sql = Sql & " Having count([F1])=1"
     Sheets("Feuil2").Range("I3").CopyFromRecordset .Execute(Sql)
    .Close

End With

End Sub
Merci
C'est très fort.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour