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

Conditions \ Comparaisons \ Opérations

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

B

ben_osty

Guest
Salut salut,

Comme beaucoup, je me suis lancé a coeur perdu dans le vba et comme beaucoup je me suis perdu, lalala...
Résultat je traine ma peau sur les forums à la recherche de quelques fragments de code! Je commence à savoir lire c'est déjà pas mal.

Je cherche désormais un code me permettant de comparer plant1.Caption aux valeurs
de la colonne A Range ("A5:A20"). L'objectif est le suivant : si lors de la comparaison avec les valeur de la colonne A le programme trouve une similitude alors il opère une action1 et si il ne trouve pas de similitude il opère une action 2.

Voici comment je comment je m'y suis pris:


Private Sub valid_Click()

Dim A As Range
A As Range, fin_de_ligne As Integer
fin_de_ligne = Range("a65000").End(xlUp).Row

For Each A In Range("A5:A20")

If A.Value = plant1.Caption Then
ActiveSheet.Range("F7") = plant1.Caption
End If
Next A

For Each A In Range("A5:A20")

If A.Value <> plant1.Caption Then
ActiveSheet.Range("A" & "fin_de_ligne").Value = plant1.Caption
End If
Next A

End Sub


A très bientot,
benjamin 😉
 
Re : Conditions \ Comparaisons \ Opérations

Bonsoir Ben_osty, bonsoir le forum,

Essaie comme ça :
Code:
Private Sub valid_Click()
Dim A As Range
Dim test As Boolean
Dim fdl As Integer

fdl = Cells(Application.Rows.Count, 1).End(xlUp).Row + 1 'le (+1) va écrire dans la première cellule vide, pas dans la dernière cellule éditée...
For Each A In Range("A5:A20")
    If A.Value = plant1.Caption Then test = True: Exit For
Next A
If test = True Then
    ActiveSheet.Range("F7") = plant1.Caption
Else
    ActiveSheet.Range("A" & fdl).Value = plant1.Caption
End If
End Sub
ou aussi comme ça :
Code:
Private Sub valid_Click()
Dim A As Range
Dim fdl As Integer

fdl = Cells(Application.Rows.Count, 1).End(xlUp).Row + 1 'le (+1) va écrire dans la première cellule vide, pas dans la dernière cellule éditée...
For Each A In Range("A5:A20")
    If A.Value = plant1.Caption Then ActiveSheet.Range("F7") = plant1.Caption: Exit Sub
Next A
ActiveSheet.Range("A" & fdl).Value = plant1.Caption
End Sub
 
Dernière édition:
Re : Conditions \ Comparaisons \ Opérations

Parfait Robert, en réalité je ne connaissais pas le test boolean, c'est très pratique. Merci beaucoup pour ton aide.
Benjamin
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
17
Affichages
2 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…