Liste déroulante EXCEL
Camcam50
Messages postés
1
Statut
Membre
-
titeufdu89 Messages postés 387 Statut Membre -
titeufdu89 Messages postés 387 Statut Membre -
Bonjour a tous, je suis sincèrement désolée de solliciter votre aide mais je ne m'en sors pas (je suis actuellement à mon poste de travail donc c'est assez urgent).
Comment créer une liste déroulante à partir de libellés et quand je clique sur ce libellé dans la liste de choix je me retrouve qu'avec l'initial de ce libellé ???
C'est à dire : j'ai dans la liste "absence non justifiée" et quand je clique dessus je voudrais que ca me mette simplement ANJ mais qu'en qu'une seule colonne, je ne veux pas en creer 2.
Merci d'avance pour votre aide !
Comment créer une liste déroulante à partir de libellés et quand je clique sur ce libellé dans la liste de choix je me retrouve qu'avec l'initial de ce libellé ???
C'est à dire : j'ai dans la liste "absence non justifiée" et quand je clique dessus je voudrais que ca me mette simplement ANJ mais qu'en qu'une seule colonne, je ne veux pas en creer 2.
Merci d'avance pour votre aide !
A voir également:
- Liste déroulante EXCEL
- Liste déroulante excel - Guide
- Excel liste déroulante en cascade - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
3 réponses
Bonjour, ce n'est pas très clair ce que tu veux! J'ai compris que tu voulais créer une liste déroulante, c'est expliqué ici mais pas "j'ai dans la liste "absence non justifiée" et quand je clique dessus je voudrais que ca me mette simplement ANJ mais qu'en qu'une seule colonne, je ne veux pas en creer 2. "
Bonjour,
Si j'ai bien compris ta demande tu souhaiterais avoir une validation de donnée (liste de déroulanle) avec les libellés entier et lorsque tu sélectionnes un libellé dans la liste déroulante ce soit les initiales qui soient renvoyées dans ta cellule... c'est bien ça?
Si j'ai bien compris ta demande tu souhaiterais avoir une validation de donnée (liste de déroulanle) avec les libellés entier et lorsque tu sélectionnes un libellé dans la liste déroulante ce soit les initiales qui soient renvoyées dans ta cellule... c'est bien ça?
Si j'avais bien compris ta demande voici un code qui te permettras d'avoir ce que tu souhaites.
Tu crée un validation de donnée (liste déroulante) alimenté par tes libellés en entier dans la colonne où tu souhaites voir apparaitre les initiales puis dans l'interface Visual Basic :
- colle le code ci-dessous directement dans la feuille qui contient ton tableau
- mets a jour les coordonnées de la plage qui déclenche la macro "Set plage = ActiveSheet.Range("A1:A" & l)" >>> remplace les A par l'adresse de la colonne en question et le 1 par la première ligne de ton tableau
La macro s’exécutera automatiquement dès lors qu'une cellule comprise dans la plage sus-nommée est modifiée et renverra les initiales du libellé sélectionné :
En espérant avoir été suffisamment clair dans mon explication
Jc
Tu crée un validation de donnée (liste déroulante) alimenté par tes libellés en entier dans la colonne où tu souhaites voir apparaitre les initiales puis dans l'interface Visual Basic :
- colle le code ci-dessous directement dans la feuille qui contient ton tableau
- mets a jour les coordonnées de la plage qui déclenche la macro "Set plage = ActiveSheet.Range("A1:A" & l)" >>> remplace les A par l'adresse de la colonne en question et le 1 par la première ligne de ton tableau
La macro s’exécutera automatiquement dès lors qu'une cellule comprise dans la plage sus-nommée est modifiée et renverra les initiales du libellé sélectionné :
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Application.ScreenUpdating = False
Dim l As Integer
Dim plage As Range
l = Range("A65536").End(xlUp).Row 'la macro détermine la longueur du tableau en fonction de la dernière ligne non vide de la colonne A (à mettre en jour si besoin)
Set plage = ActiveSheet.Range("A1:A" & l) 'remplace les "A" par l'adresse de la colonne où sont contenues les cellules où tu souhaites inscrire les initiales
'si ton tableau ne commence pas à la ligne 1 remplace le "1" par la première ligne de ton tableau
If Not Intersect(Target, plage) Is Nothing And Target.Cells.Count = 1 Then
Dim i As Integer, lg As Integer
Dim lib As String, initial As String
lib = ActiveCell.Value
lg = Len(ActiveCell.Value)
'1er lettre de la chaine si lettre
initial = Mid(lib, 1, 1)
'analyse du reste de l'intitulé et extrait les caractères situés après les espaces
For i = 2 To lg
If Mid(lib, i, 1) = " " And Mid(lib, i + 1, 1) <> " " Then
initial = initial & Mid(lib, i + 1, 1)
End If
Next i
'reporte les initiales dans la cellule
ActiveCell = UCase(initial)
End If
Application.EnableEvents = True
End Sub
En espérant avoir été suffisamment clair dans mon explication
Jc