vérifier existence ligne avant archivage avec 3 critères

cathodique

XLDnaute Barbatruc
Bonjour,

Afin d’effectuer un transfert de données, je voudrai à priori faire une vérification de l'existence de ces données dans la dite BD.

Actuellement, mon code ne vérifie que l'existence de la date.
Par contre, dès que je mets la cellule E1 au format date (mmm yyyy) [c'est ainsi que E1 doit se présenter], ça ne fonctionne plus.
Code:
 Option Explicit
Sub Archivage()
Dim C As Range
Dim x As String
Application.ScreenUpdating = False
'Verification si déjà enregistré
 x = Sheets("mafeuille").Range("E1")
With Sheets("BD")
    Set C = .Cells.Find(x)
    If Not C Is Nothing Then
    MsgBox "Déjà enregistré!", vbCritical
    Exit Sub
    Else
    MsgBox "Poursuite de la procédure!", vbInformation
    End If
End With
MsgBox "Archivage Terminé avec succès!", vbOKOnly
Application.ScreenUpdating = True
End Sub
Je voudrai que la vérification se fasse avec 3 critères:
valeur de la cellule B1 --> colonne S sur la feuille BD
valeur de la cellule E1 --> colonne C sur la feuille BD
valeur de la cellule E4 --> colonne R sur la feuille BD

Donc si B1 et E1 et E4 de la feuille "mafeuille" existe sur une même ligne de la feuille "BD",correspondant aux colonnes "S" et "C" et "R" alors sortie de la procédure sinon poursuite du code.

Merci beaucoup.

Cordialement,
 

Pièces jointes

  • Verifcation existence 3 critères.xls
    58.5 KB · Affichages: 27

ChTi160

XLDnaute Barbatruc
Re : vérifier existence ligne avant archivage avec 3 critères

Bonjour Cathodique
Bonjour le fil
Bonjour le forum

ci joint une procédure qui semble fonctionner .

VB:
Public Sub Search_In_BD()
Set Ws_Source = Worksheets("mafeuille")
Set Ws_Cible = Worksheets("BD")
With Ws_Source

Str_Search = .Cells(1, 5) & "!" & .Cells(4, 5) & "!" & .Cells(1, 2)

End With
With Ws_Cible
DerLgn = .Cells(.Rows.Count, 3).End(xlUp).Row
DerCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
 Tab_BD = .Range(.Cells(1, 1), .Cells(DerLgn, DerCol)).Value
End With
For L = 2 To UBound(Tab_BD, 1)
Str_Compare = Tab_BD(L, 3) & "!" & Tab_BD(L, 18) & "!" & Tab_BD(L, 19)
    If Str_Compare = Str_Search Then
     Msg = "Ligne trouvée ligne : " & L
     Exit For
     Else
    Msg = "Ligne non trouvée"
    
    End If

Next L
MsgBox Msg
End Sub
Ps :si besoin de Commentaires n'hésite pas !

le Fichier : Regarde la pièce jointe Verifcation existence 3 critèresV2.xls

Bonne Journée
Amicalement
Jean Marie
 
Dernière édition:

cathodique

XLDnaute Barbatruc
Re : vérifier existence ligne avant archivage avec 3 critères

Bonjour ChTi160,

Je te remercie beaucoup pour ton aide, ton code et ton fichier.
En effet, débutant des commentaires me seront très utiles pour bien comprendre le code.
Sinon, ton code fonctionne très bien.

Le code qui est dans le module 2
Code:
Option Explicit

Public Str_Search As String
Public Str_Compare As String

Public L As Integer
Public DerLgn As Integer
Public Tab_BD As Variant

Public Ws_Source As Worksheet
Public Ws_Cible As Worksheet

Public DerCol As Byte
Public Msg As String
Est-ce que je peux le mettre en début du module 3?

Tous mes remerciements.

Cordialement,
 
Dernière édition:

cathodique

XLDnaute Barbatruc
[Résolu] : vérifier existence ligne avant archivage avec 3 critères

Re,

Tous mes remerciements pour ta gentillesse. Ton code est vraiment très bien commenté, il me sera d'une grande utilité pour mon apprentissage.

Mille mercis.

Bonne journée également
Amicalement
Elias
 

Discussions similaires

Réponses
7
Affichages
319
Réponses
8
Affichages
476

Statistiques des forums

Discussions
312 192
Messages
2 086 056
Membres
103 110
dernier inscrit
Privé