Validation de données - Rajout dans liste

Imer2007

XLDnaute Occasionnel
Bonjour à tous et à toutes,

J'ai souvent eu accès à ce site pour résoudre mes soucis ou pour trouver des nouveautés, mais cette fois-ci, j'aurais besoin de votre aide pour un problème.:)

Je suppose que la solution est simple mais ca fait bien une demi-journée que je tourne en rond dessus.

Une validation de données peut-elle se mettre à jour automatiquement lorsqu'on rajoute des données dans la source ?

Explication :
En colonne A, je mets une liste de noms (exemple A1 :Jean, A2 : Jacques, A3 : Pierre)
En colonne B, je fais ma validation / liste. (donc j'aurais ma liste sur les 3 noms)
Lorsque je rajoute un nom à la suite des noms (A4 : Georges) , je souhaiterais que celui-ci apparaisse aussi dans ma liste, c'est à dire que ma liste s'adapte au contenu de ma source.

Merci de votre aide.
Rémi
 

cbea

XLDnaute Impliqué
Re : Validation de données - Rajout dans liste

Bonjour Imer2007,

Voici une solution.
Tu définis un nom à la plage de cellule en colonne A
- Insertion/Nom/Définir...
- Nom : ListeNom
- Référence : =DECALER(Feuil1!$A$1;;;NBVAL(Feuil1!$A:$A))
- Cliquer sur OK
PS: Remplacer Feuil1 si besoin

En cellule B1:
- Données/Validation...
- Autoriser : Liste
- Source : =ListeNom

L'ajout d'un nom en colonne A doit s'ajouter dans la liste en cellule B1.

Edit : Bonjour Jiheme
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Validation de données - Rajout dans liste

Bonjour,


Si l'élément frappé n'appartient pas à la liste, il est ajouté (Liste dans le tableur)
Dans l'onglet Alerte Erreur, décocher Quand les données valides sont frappées

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 If Target.Address = "$B$2" Then
   If IsError(Application.Match(Target.Value, [Liste], 0)) Then
     If MsgBox("On ajoute?", vbYesNo) = vbYes Then
       [Liste].End(xlDown).Offset(1, 0) = Target.Value
       Sheets("Liste").[Liste].Sort key1:=Sheets("Liste").Range("A2")
     Else
       Application.Undo
     End If
    End If
  End If
End Sub
Nom de champ:
=DECALER(Liste!$A$2;;;NBVAL(Liste!$A:$A)-1)

JB
Formation Excel VBA JB
 

Pièces jointes

  • DV_AjoutListex.xls
    29 KB · Affichages: 67

Imer2007

XLDnaute Occasionnel
Re : Validation de données - Rajout dans liste

La liste fonctionne impec'. En revanche, mais c'est juste un détail, j'ai des espaces vides qui s'affichent dans la liste lorsque je supprime les données de la source.

Pour info, dans mon cas, ma source comprend 3 données de bases (P1, P2, P3) commencant en F89.
Ma validation se fait dans les cellules d'un tableau (AL3:BG78).

Lorsque j'ajoute des données dans ma source, elles apparaissent sans problème dans ma validation, mais si j'en supprime, je me retrouve avec des espaces blancs (ce que je ne souhaiterais pas avoir).

L'exemple que je vous joins vous montrera de quoi je parle je pense.

http://img521.imageshack.us/my.php?image=sanstitre1bs5.jpg
 

Discussions similaires

Statistiques des forums

Discussions
312 854
Messages
2 092 830
Membres
105 540
dernier inscrit
missmel59