![]() |
|
Forum
|
|
|||||||
![]() |
|
|
LinkBack | Outils de la discussion |
|
|
#1 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: juin 2005
Localisation: Rezé
Version Excel : Excel XP (PC)
Messages: 381
|
Bonsoir le forum
Mon titre et long, mais pour une future recherche ce doit etre plus simple. Toujours est-il que mon exemple lui est simple. Le Pb doit se résoudre avec la combinaison d'une liste de choix et d'une recherche verticale; mais je sèche. Si une As des formules peut venir a mon secours....! Je ne serai pas décu s'il s'agit d'un garcon. Bonne semaine à tous
__________________
Pierre |
|
|
|
| ANNONCES | |||
|
|
|
|
#3 (permalink) | |
|
XLDnaute Occasionel
Date d'inscription: juin 2005
Localisation: Rezé
Version Excel : Excel XP (PC)
Messages: 381
|
Citation:
Super et merci; Dans le principe c'est exactement ce qu'il me faut, mais comment faire pour que les mots de la liste de choix ne soient pas tronqués et sans avoir à élargir la colonne B ?
__________________
Pierre |
|
|
|
|
|
|
#4 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: juin 2005
Localisation: Rezé
Version Excel : Excel XP (PC)
Messages: 381
|
Je n'y connais pas grand chose en macro, mais si cà peut simplifier ton travail, la valeur renvoyée peut etre la premiere lettre du mot de la liste de choix; par exemple G pour garage; M pour maintenance; R pour réparation, mais ce qui est important pour mon tableau c'est que la colonne B ne soit pas plus large que la valeur d'une lettre et que la liste soit lisible entierement.
A+
__________________
Pierre |
|
|
|
|
|
#5 (permalink) |
|
XLDnaute Impliqué
Date d'inscription: juillet 2006
Messages: 841
|
Bonjour,
Autre solution : Après avoir mis la liste de validation en place (liste nommée), retourner dans le menu Insertion Nom Définir et modifier les références de la plage nommée, par ex. de $A$1:$A$20 en $A$1:$B$20. La liste de validation affichera le contenu des 2 colonnes, ligne par ligne. Au lieu de cliquer sur la valeur de la colonne A, cliquer sur celle en-dessous, c'est la valeur associée. mjo |
|
|
|
|
|
#6 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: mars 2006
Messages: 390
|
Bonjour à tous,
pour la largeur de la liste de validation, voici un code qui élargit la colonne B le temps de la saisie puis la repositionne à sa largeur initiale. Code:
Private Sub Worksheet_Change(ByVal Target As Range)
vlarg = 1.86
If Not (Intersect(Target, Range("$B$2:$B$17")) Is Nothing) Then
If Intersect(Target, Range("$B$2:$B$17")).Address = Target.Address Then
Target.ColumnWidth = 6
Application.EnableEvents = False
If IsNumeric(Target.Value) Then Target.Value = Chr$(Target.Value + 64)
'Target.ColumnWidth = vlarg
Application.EnableEvents = True
End If
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
vlarg = 1.86
If Not (Intersect(Target, Range("$B$2:$B$17")) Is Nothing) Then
If Intersect(Target, Range("$B$2:$B$17")).Address = Target.Address Then
Target.ColumnWidth = 6
Application.EnableEvents = False
If IsNumeric(Target.Value) And Not (IsEmpty(Target.Value)) Then Target.Value = Chr$(Target.Value + 64)
Application.EnableEvents = True
End If
Else
Columns(2).ColumnWidth = vlarg
End If
End Sub
|
|
|
|
|
|
#7 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: juin 2005
Localisation: Rezé
Version Excel : Excel XP (PC)
Messages: 381
|
Ok ODVJ mais maintenant c'est le mot entier qui est saisi et non pas une seule lettre.
Quand à ta solution MJO excel n'en veut pas. D'aprés lui il faut faire réference a une seule colonne dans la formule. Merci a vous deux pour le temps de recherche A+
__________________
Pierre |
|
|
|
|
|
#8 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: mars 2006
Messages: 390
|
Bonjour,
là je ne comprends plus ! lorsque tu sélectionnes une des cellules B3:B17, la colonne B s'élargit pour que la liste de validation qui affiche les noms entiers soit lisible. Après sélection dans la liste de validation, la valeur affichée est une lettre et, tant que tu restes dans la zone B3:B17, la colonne garde sa largeur pour le cas où tu voudrais faire une autre saisie. Si tu quittes la zone B3:B17, la colonne B reprend sa taille initiale. Et le résultat affiché après saisie reste sous forme d'une lettre. en tout cas, chez moi c'est ce que ça fait. A+ |
|
|
|
|
|
#9 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: juin 2005
Localisation: Rezé
Version Excel : Excel XP (PC)
Messages: 381
|
J'ai du faire une erreur qq part, j'ai introduit ta macro dans l'exemle classeur 2 et regarde ce que ça donne !
A+
__________________
Pierre |
|
|
|
|
|
#10 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: mars 2006
Messages: 390
|
Bonjour,
hé oui.... tu n'as pas utilisé ma zone de validation. c'est pour cela que ça ne marche pas. si tu regardes de plus près ma zone de validation, tu verras que le contenu de la cellule n'a rien à voir avec ce que tu vois. donc pour que ça marche, reprend mon tableau de valeur et colle le sur le tien. pour que tu comprennes, la zone de validation ne contient qu'une séquence de 1 à 7 habilée par un format cellule particulier. A+ |
|
|
|
|
|
#11 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: juin 2005
Localisation: Rezé
Version Excel : Excel XP (PC)
Messages: 381
|
Ok je n'avais pas gaffe. ça marche;
Par contre je ne sais pas pourquoi quand on efface la valeur saisie dans la colonne B avec la liste de choix un @ vient s'inscrire. ! A+
__________________
Pierre |
|
|
|
|
|
#12 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: mars 2006
Messages: 390
|
Bonsoir,
il faut ajouter And Not (IsEmpty(Target.Value) dans la première procédure : Code:
Private Sub Worksheet_Change(ByVal Target As Range)
vlarg = 1.86
If Not (Intersect(Target, Range("$B$2:$B$17")) Is Nothing) Then
If Intersect(Target, Range("$B$2:$B$17")).Address = Target.Address Then
Target.ColumnWidth = 6
Application.EnableEvents = False
If IsNumeric(Target.Value) And Not (IsEmpty(Target.Value)) Then Target.Value = Chr$(Target.Value + 64)
'Target.ColumnWidth = vlarg
Application.EnableEvents = True
End If
End If
End Sub
A+ |
|
|
|
|
|
#13 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: juin 2005
Localisation: Rezé
Version Excel : Excel XP (PC)
Messages: 381
|
Et bien cette fois c'est bon, çà correspond exactement à ce que je voulais; mais j'avoue ne pas comprendre la facon dont tu as transformé la liste de choix !
En cliquant en haut à gauche, dans la zone nom je retrouve ma liste et mes lettres, mais dans un ordre ?? et cela me renvoie sur des cellules vides ? Si tu as encore un peu de temps pour m'expliquer.... Grand merci tout de même.
__________________
Pierre |
|
|
|
|
|
#14 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: mars 2006
Messages: 390
|
Bonsoir,
en G1:G7, j'ai mis la séquence numérique 1, 2, 3, 4, 5, 6, 7. sur G1, j'ai mis le format personnalisé "Garage" sur G2, j'ai mis le format personnalisé "Atelier" sur G3, j'ai mis le format personnalisé "Course" etc..... les macro évènementielles Worksheet_change et Worksheet_selectionchange, après les vérifications d'usage sur le positionnement et le contenu, affectent à la cellule target la valeur Chr$(Target.Value + 64) qui est le caractère dont le code ascii est celui du "@" (64) augmenté de la valeur numérique du choix opéré dans la liste de diffusion, choix caché derrière le format personnalisé déjà décrit. globalement je ne travaille que sur du numérique déguisé. A+ |
|
|
|
|
|
#15 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: juin 2005
Localisation: Rezé
Version Excel : Excel XP (PC)
Messages: 381
|
" Ouarf " c'est du haut vol au niveau programation.
Excuse ma lourdeur mais j'ai compris uniquement le format personalisé, que je saurais refaire, un petit peu le fonctionnement avec l'instruction, mais pas du tout la séquence numérique que je ne saurais pas refaire. Comment réalises tu la séquence numérique en G1:G7 ? A+
__________________
Pierre |
|
|
|
| ANNONCES | |
![]() |
| Liens sociaux |
| Outils de la discussion | |
|
|
Discussions similaires
|
||||
| Discussion | Auteur | Forum | Réponses | Dernier message |
| renvoi d'une valeur si la cellule est en couleur | Laurent | Forum Excel | 4 | 08/06/2006 09h07 |
| dans une cellule avec choix déroulant, une saisie semi automatique d'une liste.. | Jare | Forum Excel Downloads - Archives | 20 | 08/11/2004 22h14 |
| renvoi de la valeur d'une textbox dans un label | violaine | Forum Excel Downloads - Archives | 2 | 09/09/2004 17h07 |
| renvoi une cellule voisine dans la même ligne avec une condition dans une colonn | Steffi | Forum Excel Downloads - Archives | 7 | 05/09/2003 11h42 |
| renvoi de la valeur d'une cellule | Germaine | Forum Excel Downloads - Archives | 6 | 02/09/2003 19h46 |