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

soucis dans une macro

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

C

christofeu

Guest
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
 
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
 
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é.
 
- 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
9
Affichages
509
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…