Bonjour,
Je travaille sur une base de données d'environ 10.000 articles. Pour chaque article existent une référence (toutes les références sont des codes 6 chiffres) et une désignation. Par exemple : 100001 - Tiroir de bureau.
Je travaille donc sur un tableau de 10.000 lignes et deux colonnes.
Les utilisateurs doivent saisir une référence quelconque dans certaines cellules d'une autre feuille (dans le même fichier). J'aimerais traiter les deux cas de figure suivants :
1. La référence n'est pas dans la base de données et dans ce cas un message d'erreur s'affiche et interdit de sortir de la cellule (le résultat est très satisfaisant avec la fonction Données/Validation de données)
2. Si la référence est dans la base de données, un message de confirmation s'affiche en rappelant la référence saisie par l'utilisateur et la désignation associée (Valider ? OUI / NON), pour vérifier que la référence saisie correspond bien à l'article souhaité.
Mon problème est là. Comment conditionner l'apparitition d'un boîte de dialogue pour le cas N°2, à la validation du cas N°1 ?
J'ai aussi pensé utiliser la fonction equiv (cf. ci-dessous) pour vérifier que le contenu saisi était dans la liste, mais en l'état, le contenu de la cellule target est remplacé par la formule et cela crée une référence circulaire.
Nota: Feuil2!A:A correspond à la colonne référence de ma base de données articles
Une fois le problème résolu, je pourrai m'en sortir avec des If.
______________________
Private Sub Worksheet_Change(ByVal Target As Range)
Dim a As String
Target.FormulaR1C1 = "=MATCH(Feuil1!RC,Feuil2!A:A)"
a = Target.Value
If a <> "#n/a" Then
MsgBox "ton message d'erreur", vbCritical + vbOKOnly, "ton_titre"
End If
End Sub
______________________
Merci pour votre aide
Paulwasit
Je travaille sur une base de données d'environ 10.000 articles. Pour chaque article existent une référence (toutes les références sont des codes 6 chiffres) et une désignation. Par exemple : 100001 - Tiroir de bureau.
Je travaille donc sur un tableau de 10.000 lignes et deux colonnes.
Les utilisateurs doivent saisir une référence quelconque dans certaines cellules d'une autre feuille (dans le même fichier). J'aimerais traiter les deux cas de figure suivants :
1. La référence n'est pas dans la base de données et dans ce cas un message d'erreur s'affiche et interdit de sortir de la cellule (le résultat est très satisfaisant avec la fonction Données/Validation de données)
2. Si la référence est dans la base de données, un message de confirmation s'affiche en rappelant la référence saisie par l'utilisateur et la désignation associée (Valider ? OUI / NON), pour vérifier que la référence saisie correspond bien à l'article souhaité.
Mon problème est là. Comment conditionner l'apparitition d'un boîte de dialogue pour le cas N°2, à la validation du cas N°1 ?
J'ai aussi pensé utiliser la fonction equiv (cf. ci-dessous) pour vérifier que le contenu saisi était dans la liste, mais en l'état, le contenu de la cellule target est remplacé par la formule et cela crée une référence circulaire.
Nota: Feuil2!A:A correspond à la colonne référence de ma base de données articles
Une fois le problème résolu, je pourrai m'en sortir avec des If.
______________________
Private Sub Worksheet_Change(ByVal Target As Range)
Dim a As String
Target.FormulaR1C1 = "=MATCH(Feuil1!RC,Feuil2!A:A)"
a = Target.Value
If a <> "#n/a" Then
MsgBox "ton message d'erreur", vbCritical + vbOKOnly, "ton_titre"
End If
End Sub
______________________
Merci pour votre aide
Paulwasit