Nouveaux identifiants dans un déroulant et à placer aussi en Paramètres

Webperegrino

XLDnaute Impliqué
Bonjour Le Forum,

Voici un petit fichier dont je suis fier, mais grâce aussi à l’aide de macros reprises, et adaptées ici, à partir d’une application d’un des utilisateurs du Forum.
J’espère qu'il servira aussi en partage avec d’autres visiteurs de ce Forum.

Je coince au niveau de mes cellules à déroulant dans la feuille « SAISIE ».
Le déroulant fait référence à la Source « Noms » qui correspond à la colonne C de la feuille Paramètres.

J’ai bien déniché la macro suivante sur Le Forum [Voir dans la feuille Paramètres], mais elle n’est pas utilisable ici car il ne s’agit pas de ComboBox mais de cellules avec déroulant.

OBJECTIF SOUHAITÉ :
Comment le faire au niveau des cellules C17/C28, toujours dans la feuille SAISIE ?
En effet, si l'on ajoute un nouvel identifiant en colonne C dans Saisie, le déroulant C2:C dans la feuille Paramètres devrait se mettre à jour
… et si ce n'est pas trop demander rectifié dans l'ordre croissant.

Pouvez-vous m’éclairer, m’indiquer la « stratégie » pour rendre mes déroulants plus « intelligents et donc intuitifs » lorsque je veux y saisir un nouveau nom, listé pour la suite ?

Feuille SAISIE est protégé, mais sans mdp particulier.

Merci à l’avance,
Webperegrino
 

Pièces jointes

  • GESTION Stock et distibution de TICKETS.xls
    73.5 KB · Affichages: 43
  • GESTION Stock et distibution de TICKETS.xls
    73.5 KB · Affichages: 40
  • GESTION Stock et distibution de TICKETS.xls
    73.5 KB · Affichages: 43

laurent950

XLDnaute Accro
Re : Nouveaux identifiants dans un déroulant et à placer aussi en Paramètres

Bonjour,

Avant tous =

Validation des données (Onglet = Alerte d'erreur)

décochet = Quand des données non valides sont tapées

et

J'ai ajouter une variable dans votre maco d'origine

' Valeur de la cellule en mémoire
valCelluleActive = Target

et ajouter un module = Module1 qui fait office de procédure

VB:
Sub AjoutList(valCelluleActive)

' Ajoute a la saisie si pas dans la liste
    Dim F1 As Worksheet
    Set F1 = ThisWorkbook.Worksheets("SAISIE")
    Dim F2 As Worksheet
    Set F2 = ThisWorkbook.Worksheets("Paramètres")
    ' Derniere cellule Colonne c de paramétre
    derC = F2.Range("C65536").End(xlUp).Row + 1
    ' Nom en mémoire dans le tabNom colonne C feuille Paramètres
    TabNom = F2.Range(F2.Cells(2, 3), F2.Cells(derC - 1, 3))
    ' Test et si nom existant compteur = 1
    ' Boucle
    For i = 1 To UBound(TabNom, 1)
         If TabNom(i, 1) = valCelluleActive Then
         cpt = 1
         End If
     Next i
     
     ' Si compteur est = a 0 alors ajouter le texte a la suite de C
     If cpt = Empty Then
     F2.Cells(derC, 3) = valCelluleActive
     End If
End Sub

laurent
 

Pièces jointes

  • GESTION Stock et distibution de TICKETS.xls
    83 KB · Affichages: 36
  • GESTION Stock et distibution de TICKETS.xls
    83 KB · Affichages: 47
  • GESTION Stock et distibution de TICKETS.xls
    83 KB · Affichages: 41
Dernière édition:

Webperegrino

XLDnaute Impliqué
Re : Nouveaux identifiants dans un déroulant et à placer aussi en Paramètres

Bonsoir Le Forum,
Bonsoir Laurent,
Merci pour votre aide.
Je vais essayer de comprendre votre procédure rectificative qui s'approche du bon processus.

Toutefois un seul inconvénient persiste :
Comment faire pour n'avoir de réatualisation qu'avec une limitation aux valeurs saisies en Description en Colonne C ?

Date (colonne B) et NOMBRE (colonne 4) vont en effet dans les Paramètres "Description".
Il faudrait se limiter aux nouveaux éléments de la colonne 3 (Description).

Mais c'est déjà un gros progrès grâce à vous :
la liste du déroulant s'enrichit à partir de Paramètres pour les prochains déroulants.
Merci, si de votre côté, vous pouvez continuer à améliorer la macro.
Webperegrino
 
Dernière édition:

Webperegrino

XLDnaute Impliqué
Re : Nouveaux identifiants dans un déroulant et à placer aussi en Paramètres

Bonjour Le Forum, Bonjour Laurent,
La nuit semblait porter conseil...
Avec la rectification suivante, cela ne fonctionne pas bien non plus :
Private Sub Worksheet_Change(ByVal Target As Range)
Sheets("SAISIE").Unprotect
Application.ScreenUpdating = False
Application.EnableEvents = False
If Not Intersect(Target, [C19:C500]) Is Nothing Then ' Valeur de la cellule en mémoire
valCelluleActive = Target
End If
If Target.Count = 1 Then
.../...
Bonne journée à vous tous,
Webperegrino
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 677
Messages
2 090 842
Membres
104 677
dernier inscrit
soufiane12