Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Fonction If a deux conditions

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

M4I3E

XLDnaute Nouveau
Bonjour a tous,
Alors voila, j’ai un petit souci VBA.

Je suis débutant, donc j’ai repris un code d’une ancienne base de donnée pour l’approprier à mes besoins.

Je souhaite faire une fonction à « deux conditions » : (si la première condition est vraie alors passer a la deuxième condition et si celle-ci est également vrai alors appliquer la fonction qui est une modification de champs).

Dans mon cas, voici la fonction que je souhaite avoir :
A l’ouverture de la fonction « ComesToEnd », aller chercher dans la DataBase « CalibrationDataBase » la colonne « Status ». Pour chaque ligne, si la valeur de la colonne « Status » est égale a « In Use » ou « Comes To End » et que la valeur de la colonne « CalibrationDueDate » est supérieure a la date d’aujourd’hui, alors modifier le « Status » pour « Expired ».
Voici le code utilisé :

Code:
Sub Expired()

On Error Resume Next
Dim d As DAO.Database
  Dim r As Recordset
   Dim Status As Field, CalibrationDueDate As Field
   Set d = CurrentDb()
   Set r = CurrentDb.OpenRecordset("CalibrationDataBase")
   Set Status = r.Fields("Status")
   Set CalibrationDueDate = r.Fields("CalibrationDueDate")


Do Until r.EOF
If r!Status = "In Use" Or "Comes To End" Then
If DateDiff("d", Date, CalibrationDueDate) < 0 Then
      
      r.Edit
      
      r!Status = "Expired"
                 
      r.Update


End If
End If

      r.MoveNext
Loop
   r.Close


End Sub


Et le résultat que j’obtiens est qu’il ne prend pas en compte la première condition : La fonction prend en compte toutes les valeurs de « Status » alors qu’il ne devrait prendre en compte que les status « In Use » et « Comes To End ».

Voila si vous avez la solution cela me rendrai un énorme service car je me casse les dents depuis pas mal de temps…
Merci par avance pour votre aide.
 
Re : Fonction If a deux conditions

Bonjour M4I3E,

Pas certain, mais ne faut-il pas écrire
Code:
If r!Status = "In Use" Or r!Status = "Comes To End" Then


au lieu de:
Code:
If r!Status = "In Use" Or "Comes To End" Then
 
- 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
5
Affichages
242
Réponses
4
Affichages
459
Réponses
5
Affichages
190
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…