XL 2013 Double recherche FIND

  • Initiateur de la discussion Initiateur de la discussion a_loic
  • 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 !

a_loic

XLDnaute Junior
Bonjour à tous,

Je me retrouve bloqué sur un code VBA qui me semblait facile…


En fait, je travaille actuellement sur un document qui me permet de vérifier avant d’ajouter une ligne si la donnée existe déjà :

Code:
  Dim Recherche As Range

ref = Sheets("Enregistrement").Range("C9").Value

 Set Recherche = Sheets("BDD").Columns("A").Find(ref)
  If Not Recherche Is Nothing Then
  If MsgBox("Donnée déjà existante. Forcer l'enregistrement ?", vbYesNo, "Demande de confirmation") = vbYes Then

  GoTo 1
  End If
  Else

1
If Range("D19").Value < 5 Then MsgBox "Quantité minimum non atteinte", 1, "Attention": Exit Sub


Mon problème actuel c’est que la donnée peut être en double si ce n’est pas la même journée.

Lors de l’enregistrement, la date du jour s’ajoutera :

Code:
  Range("D65536").End(xlUp).Offset(1, 0) = Format(Date, "mm/dd/yyyy")



Je souhaite donc que ma recherché vérifie que la donnée n’existe pas et si elle existe qu’elle ne soit pas du jour.



J’ai tenté des « and » (même des « & » 🙂) dans recherche mais rien n’y fait…



Quelqu’un pour me débloquer ?



Merci d’avance,

Excellente journée,

Loic
 
Bonjour loic,
Dommage on ne vois pas toute la macro.
Voici une façon de faire
Bruno
VB:
ref = Sheets("Enregistrement").[C9]
lig = Application.Match(ref, Sheets("BDD").Columns("A"), 0)
If IsNumeric(lig) Then
'trouvé
  If MsgBox("Donnée déjà existante. Forcer l'enregistrement ?", vbYesNo, "Demande de confirmation") = vbYes Then
'trouvé et oui on mets la date en col D
Sheets("BDD").Cells(lig, 4) = Format(Date, "mm/dd/yyyy")
Else
'non trouvé
  Sheets("BDD").Cells(lig, 1) = ref 'lig est la ligne et 1 la col A
End If
End If
 
Bonjour,

Merci beaucoup pour la réponse rapide 🙂

En fait ce n'est pas vraiment ca.

Concrètement voilà ce que fait la macro actuellement.

Une personne saisie des données (un numéro client + une quantité).
La maro enregistre ces informations sur une base de données du type :
Colonne A : le numéro client
Colonne B : la quantité
Colonne C : la date

Avant cet enregistrement, la macro doit vérifier si le numéro client a déjà été saisi ce jour.
Si c'est le cas, elle prévient et demande si on force ou non l'enregistrement.

Evidemment, si le numéro client existe mais sur une autre journée, ca ne pose pas de problème.

Suis je plus clair ?


Encore merci,

Bonne soirée,
Loic
 
re,
voici
Bruno
VB:
ref = Sheets("Enregistrement").[C9]
With Sheets("BDD")
lig = Application.Match(ref, .Columns("A"), 0)
If IsNumeric(lig) Then
'trouvé
If .Cells(lig, 4) = Date Then
  If MsgBox("Donnée déjà existante. Forcer l'enregistrement ?", vbYesNo, "Demande de confirmation") = vbYes Then
  'trouvé et oui on mets Qte et ??? pas la peine de remettre la date
' .Cells(lig, 2) = Qte
' .Cells(lig, 3) = ???
''''''''''''' .Cells(lig, 4) = Format(Date, "mm/dd/yyyy")
  End If
  End If
Else
'non trouvé
lig = .[D65536].End(xlUp).Row + 1 'dernière ligne +1
  .Cells(lig, 1) = ref
  '.Cells(lig, 2) = Qte
  .Cells(lig, 4) = Format(Date, "mm/dd/yyyy")
End If
End With
edit je viens de modifier la macro
 
Dernière édition:
Re, j'avais pas testé car pas de fichier exemple
Cette fois j'ai testé, il faut faire une boucle
comme cela
Bruno
VB:
ref = Sheets("Enregistrement").[C9]

With Sheets("BDD")
bas = .[A65536].End(3).Row
For lig = 1 To bas
If .Cells(lig, 1) = ref And .Cells(lig, 4) = Date Then
If MsgBox("Donnée déjà existante. Forcer l'enregistrement ?", vbYesNo, "Demande de confirmation") = vbYes Then
  ' .Cells(lig, 2) = Qte
   .Cells(lig, 3) = "test" '???
   Exit Sub
End If
End If
Next
lig = bas + 1
.Cells(lig, 1) = ref
  '.Cells(lig, 2) = Qte
  .Cells(lig, 4) = Date
End With
 
- 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

Réponses
2
Affichages
153
Réponses
4
Affichages
177
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
479
Réponses
4
Affichages
243
Réponses
5
Affichages
232
Retour