soucis dans une macro

christofeu

XLDnaute Nouveau
Bonjour le forum

Voici ma première macro qui fonctionne trés bien report de la couleur interieur + message erreur si texte saisi incorrect par rapport a la base de données.

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect([F2:F100], Target) Is Nothing Then
On Error Resume Next
Target.Interior.ColorIndex = [couleurs].Find(Target, LookAt:=xlWhole).Interior.ColorIndex
End If
End Sub


Je voudrais rajouter une deuxième "opération" du meme genre sur une deuxième colonne pour générer un message erreur si texte saisi incorrect par rapport a ma base de données

voilà la modif de ma macro mais sa ne marche pas

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect([F2:F100], Target) Is Nothing Then
On Error Resume Next
Target.Interior.ColorIndex = [couleurs].Find(Target, LookAt:=xlWhole).Interior.ColorIndex
End If
If Not Intersect([d2:d100], Target) Is Nothing Then
On Error Resume Next
Target = [outils].Find(Target, LookAt:=xlWhole)
End If
End Sub



Je pense qu'il manque des trucs genre Next mais où?
J'y connais rien en VBA je cherche des exmples sur le forum et je change les plages de données.
Merci pour votre aide
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : soucis dans une macro

Bonjour Christofeu, bonjour le forum,

Essaie comme ça :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range 'déclare la variable r (Recherche)
 
If Not Intersect([F2:F100], Target) Is Nothing Then
    On Error Resume Next
    Target.Interior.ColorIndex = [couleurs].Find(Target, LookAt:=xlWhole).Interior.ColorIndex
End If
 
If Not Intersect([d2:d100], Target) Is Nothing Then 'condition 1
    Set r = [outils].Find(Target, LookAt:=xlWhole) 'définit la recherche r
    If r Is Nothing Then 'condition 2 : si aucune occurence n'est trouvée
        If MsgBox("Saisie incorrecte ! Voulez-vous recommencer", vbYesNo, "ATTENTION !") = vbYes Then 'condition 3: si "oui" au message
            Target.ClearContents 'efface le contenu
            Target.Select 'place le curseur dans la cellule
        End If 'fin de la condition 3
    End If 'fin de la condition 2
End If 'fin de la condition 1
End Sub
 

christofeu

XLDnaute Nouveau
Re : soucis dans une macro

Merci robert

J'ai trouvé une autre solution :
Données / Validation / autoriser Liste / sources =outils

comme cela j'ai le choix soi en saisissant directement ou faire défiler la liste déroulante
Parfois on cherche trop compliqué.
 

Discussions similaires

Statistiques des forums

Discussions
312 108
Messages
2 085 380
Membres
102 876
dernier inscrit
BouteilleMan