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

P

philvdr

Guest
dans la cellule A1 feuil1 je rentre une valeur et j'aurai aimer lancer une macro pour savoir si cette valeur existe dans la colonne A:A de la la feuil2, avec une reponse de type msgbox "valeur déjà existante"
 
Re : tester une cellule

Bonsoir philvdr
(C'est une coutume agréable de ce forum que de commencer en disant "bonjour" ou "bonsoir"... ...ou un autre mot convivial de son choix.)
Vous trouverez une proposition dans le classeur ci-joint.​
Bonne nuit !
ROGER2327
 

Pièces jointes

Re : tester une cellule

Bonjour le fil, bonjour le forum,

Tout a fait d'accord avec la remarque de Roger, je me permets de proposer un résultat similaire avec la methode Find :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$A$1" Then Exit Sub 'si l'édition a lieu ailleurs qu'en A1, sort de la procédure
If Target = "" Then Exit Sub 'si A1 est effacée, sort de la procédure
With Sheets("feuil2").Columns(1) 'prend en compte la colonne A de l'onglet "Feuil2"
    'si il existe au moins une occurrence de A1, message
    If Not .Find(Me.Range("A1")) Is Nothing Then MsgBox "Valeur déjà existante !"
End With 'fin de la prise en compte de la colonne A de l'onglet "Feuil2"
End Sub
 
Re : tester une cellule

Bonjour à tous
J'ai commis un erreur dans la rédaction du code fourni hier. Le voici corrigé :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long
Dim oCel As Range, oDat()
Dim xObj As Object
   Set xObj = Intersect(Target, Me.Columns(1))
   If Not xObj Is Nothing Then
      With xObj
         With Sheets("Feuil2")
            oDat = .Range(.Cells(1, 1), .Cells(Rows.Count, 1).End(xlUp)).Value
         End With
         For Each oCel In .Cells
            For i = 1 To UBound(oDat, 1)
               If oCel.Value = oDat(i, 1) Then
                  MsgBox oCel.Value & " se trouve en cellule A" & i & " de la feuille 'Feuil2'."
               End If
            Next i
         Next oCel
      End With
   End If
End Sub
Bonne journée.
ROGER2327
 
- 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

  • Question Question
XL 2021 Macro
Réponses
6
Affichages
329
Réponses
6
Affichages
339
Réponses
3
Affichages
262
Retour