Conditions \ Comparaisons \ Opérations

ben_osty

XLDnaute Nouveau
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 ;)
 

Robert

XLDnaute Barbatruc
Repose en paix
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:

Discussions similaires