Excel

Fermé
IRDS - 30 mars 2010 à 17:04
Mike-31 Messages postés 18335 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 septembre 2024 - 2 avril 2010 à 21:24
Bonjour,
Chaque fois que j'inscris une donnée dans une colonne dans excel je suis averti par message (j'ai activé cette application à partir "données" et "validation" après avoir défini le nom du champ à partir de "insertion"), le problème que seule les données se trouvant dans une seule colonne dans une deuxième feuille dans le même classeur qui sont pris en considération alors que j'ai une deuxième colonne dans la même feuille et je veux appliquer la même chose dans la même cellule où je vais saisir mes données. c.a.d je veux être informé si la donnée que je viens de la saisir se trouve dans la 1ère colonne ou la 2ème colonne ou dans les deux colonnes.
merci d'avance pour votre aide

9 réponses

Mike-31 Messages postés 18335 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 septembre 2024 5 095
30 mars 2010 à 17:52
Salut,

Il suffit de mettre la plage en surbrillance et appliquer la régle que l'on défini dans Données/Validation
dans le cas ou une régle est définie sur un colonne, la mettre en surbrillance Données/Validation et clic sur Tout effacer

et redéfinir la nouvelle plage et les critères souhaités
0
Bonjour,
Merci Mike pour votre intervention mais je n'ai pas compris tout à fait ce que vous m'avez demandé, en plus je veux que si je fais la saisie d'une donnée qui se trouve dans la colonne "A" de la 2ème feuille un message d'avertissement m'affiche pour me dire que c'est une donnée de la colonne "A" et si je fais la saisie d'une donnée de la colonne "B" de la 2ème feuille un message s'affiche pour me dire que c'est une donnée de la colonne "B", en plus j'ai des données qui se trouve à la fois dans la colonne "A" et "B" et j'aime bien que le message m'informe que cette donnée se trouve dans les deux colonnes.
Merci beaucoup pour votre aide
0
Mike-31 Messages postés 18335 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 septembre 2024 5 095
31 mars 2010 à 11:20
Re,

Alors en VBA, récupères le fichier ci joint, saisis des données dans la plage A2 à B30 de la feuille 2 ensuite saisis de données feuille 1 si ces ndonnées existent sur la feuille 2 soit colonne A ou B tu auras un message.

Si je trouve un moment je regarde s'l est possible de faire sans VBA

https://www.cjoint.com/?dFlq45UvGo
0
Merci,
est ce que je peux savoir comment je peux appliquer le programme que vous m'avez envoyé dans ma base de données et si je peux avoir une solution sans VBA
merci beaucoup pour votre aide
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Mike-31 Messages postés 18335 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 septembre 2024 5 095
31 mars 2010 à 14:45
Re,

Pour l'adapter à ton programme, il faudrait le voir soit en mettant le lien sur un post soit en message privé clic sur mon pseudo et message privé

Pour créer le lien, avec ce lien

https://www.cjoint.com/

pour passer sans VBA, et afin de bloquer la nouvelle saisie je ne vois que la Validation, une formule ne pourra te donner qu'un message exemple Doublon
0
Merci Mike pour ton aide
0
Bonjour, j'ai confronté un problème parce que je peux avoir une donnée qui se trouve à la fois dans la 1ère colonne qu'en 2ème colonne alors le résultat de son emplacement n'est plus correct puisque l'application que vous m'avez confirmée va donner, dans ce cas, la somme des lignes et des colonnes où se trouve cette donnée dans les deux cellules
je vous remercie pour votre intervention
0
Merci Mike pour votre aide
mais j'ai des problèmes:
1- comment je peux élargir la plage que vous m'avez envoyé puisque c'est un peu limité par rapport à ma base de données
2- je veux que la solution ne s'affiche pas dans une cellule, je veux qu'elle soit sous forme de message d'avertissement
3- comment je peux changer le message d'avertissement (juste ce qui s'affiche au message seulement en laissant les formulations)
Merci
0
Mike-31 Messages postés 18335 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 septembre 2024 5 095
Modifié par Mike-31 le 2/04/2010 à 21:29
Re,
Ci dessous le code qu'il conviendra d'alléger en fonction de l'option retenue, soit affichage dans cellule, soit dans un commentaire ou boite de dialogue.
de même pour les plages misent en application soit avec des références cellules soit avec des plages nommées.
Explications dans le code ligne précédée d'une apostrophe

Private Sub Worksheet_Change(ByVal Target As Range)
'la ligne ci-dessous définie la zone de saisie soumise à contrôle, soit en définissant la plage
If Not Intersect(Range("A2:B30"), Target) Is Nothing And Target.Count = 1 Then
'ou plus simplement en nomment la plage ici PlageSaisie
If Not Intersect([PlageSaisie], Target) Is Nothing And Target.Count = 1 Then
'si la plage de référence est sur une autre feuille il convient de nommer la plage ici nommée PlageRecherche
For Each c In [PlageRecherche]
'cette ligne compare les deux listes
If UCase(c.Value) = UCase(Target.Value) And c.Row <> Target.Row And c.Value <> Empty Then
'si valeur existante affiche le message en C2
[C2] = ("Valeur existante feuille 2 cellule :" & c.Address)
'si valeur existante affiche dans la cellule un message dans un commentaire
ActiveCell.AddComment
ActiveCell.Comment.Text Text:=("Valeur existante feuille 2 cellule :" & c.Address)
'attention, si la fonction déplacement de la validation après sélection
'est cochée il conviendra de modifier le code, ici pour un déplacement vers le bas
ActiveCell.Offset(0 - 1).AddComment
ActiveCell.Offset(0 - 1).Comment.Text Text:=("Valeur existante feuille 2 cellule :" & c.Address)
'Ou on conserve la boite de dialogue
réponse = MsgBox("Valeur existante feuille 2 cellule :" & c.Address & Chr$(10) & _
"Voulez-vous le garder ?", vbYesNo + vbInformation, "DETECTION DOUBLON")
If réponse = vbNo Then
Application.EnableEvents = False
Target.Value = Empty
Target.Select
Application.EnableEvents = True
End If
End If
Next c
End If
End Sub

A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
0