Bibliothèque de composant, transfère et vérification de donnée entre 2 docs

Bonjour,

Je suis bloqué depuis quelques jours sur un petit projet de bibliothèque de composant, qui se sépare en deux documents le premier où l'on rentre les informations et le seconde qui les récupère (je suis obligé d'avoir deux documents.).

Je cherche a :
1. Comparer un group de 3 cellules par exemple : C2 | D2 | E2 a une liste qui se trouve dans la même configuration X | X | X mais dans un autre fichier "BIBLIOTHÈQUE" et envoyer un message si il trouve une ligne qui contient exactement C2 | D2 | E2 avec dans le message les informations de B2, C2, D2 et E2
2. Ajouter B2 | C2 | D2 | E2 en bas de la liste de l'autre fichier "BIBLIOTHÈQUE" dans la page que correspond A2

(puis faire la même chose pour les lignes 3 et 4)

J'espère avoir été assez clair, je vous laisse un exemple dans mes Excel.

Encore merci

11bibliotheque.xlsm (10.69 Ko)
4entrer.xlsm (23.27 Ko)

Je vais prendre les problèmes un par un ça m'aidera sûrement pour avoir de l'aide, pour commencer, je cherche à comparer 3 cellules à des colonnes et à envoyer un msg dans les cas où les 3 valeurs sont trouvées sur la même ligne. Actuellement, ça fonctionne, mais ça ne prend pas en compte que les valeurs soient sur la même ligne ou non :/

11entrer.xlsm (30.42 Ko)

Bonjour Max

Bonne idée de décomposer les besoins

Voici un code qui devrait vous convenir, j'espère,

Private Sub CommandButton1_Click()
  Dim Lig As Long, dLig1 As Long, Lig1 As Long
  Dim ShtE As Worksheet, ShtM As Worksheet
  Dim Found As Boolean, MemLig As Long
  ' Intialiser le FLAG
  Found = False: MemLig = 0
  Set ShtE = ThisWorkbook.Sheets("ENTRER")
  ' Parcourir les lignes de la feuille
  For Lig = 2 To 4
    ' Définir la feuille
    Set ShtM = ThisWorkbook.Sheets(ShtE.Range("A" & Lig).Value)
    dLig1 = ShtM.Range("A" & Rows.Count).End(xlUp).Row
    For Lig1 = 2 To dLig1
      If ShtE.Range("C" & Lig) = ShtM.Range("B" & Lig1) And _
          ShtE.Range("D" & Lig) = ShtM.Range("C" & Lig1) And _
            ShtE.Range("E" & Lig) = ShtM.Range("D" & Lig1) Then
        ' Les 3 colonnes correspondent
        MemLig = Lig1
        Found = True
      End If
    Next Lig1
    If Found Then
      MsgBox "Les 3 valeurs de la ligne ENTRER n° " & Lig & " correspondent à la ligne n° " & MemLig
      Found = False: MemLig = 0
    Else
      MsgBox "Aucune valeur trouvée la ligne ENTRER:" & Lig
    End If
  Next Lig
  Set ShtE = Nothing: Set ShtM = Nothing
End Sub

On peut faire plus optimiser, mais celui-ci est compréhensible je pense

A+

Bonjour Bruno,

Merci de votre répons, je n'ai malheureusement pas réussi à faire fonctionner votre code. (aucune valeur trouvée dans tous les cas.)
Je vous joins une doc avec des couleurs qui sera sûrement plus claire et vous donne un exemple d'erreur à signaliser en rouge (la range C2:E2 de la page ENTRER et trouver en copie dans ça liste (donc ligne2 c'est la page "MONTANT_DROITE) et on retrouve donc les mêmes valeurs en B3:D3)

7entrer.xlsm (32.72 Ko)

Re,

C'était très clair pour moi, j'ai juste un bug dans le code apparemment

Je viens de modifier le code de mon précédent post

A+

Ah d'accord effectivement, je ne pensait pas que vous aviez déjà pris en compte mes 3 pages et avec le script qui ne fonctionnait pas, je n'avais pas pu tester, mais c'est bien cela et ça fonctionne parfaitement, merci beaucoup.

Rechercher des sujets similaires à "bibliotheque composant transfere verification donnee entre docs"