Bonsoir tout le monde
Voici mon probleme
Avec le code ci joint ,lorsque la liste est composée de "nombre" tout
fonctionne sans le moindre souci mais
lorsque la liste est composée de "texte" alors
lorsque j'ai selectionnéuné une cellule(cellule A3 par exemple)
que je lui attibue le second élément du menu déroulant ("bonjour" par
exemple) alors ok
mais lorsque je veux après avoir selectionné une autre cellule
(b32 par exemple)ré-attribué directement après "bonjour" du menu déroulant
alors je suis obligé de selectionné et attribué un autre élément ("salut"
par exemple)du menu déroulant et après encore resélectionné le premier
élément"bonjour".
comment cela se fait il ?
comment cela peut il etre resolu ??
j'ai essayé en changeant le type de variable mais cela ne va pas
voici le code que j'utilise
Private Sub ComboBox1_Click()
ActiveCell.Value = Me.ComboBox1.Value
End Sub
Private Sub ComboBox1_GotFocus()
Dim Rg As Range, Tblo As Variant
With Worksheets("Données")
Set Rg = .Range("C26:C" & .Range("C7").End(xlUp).Row)
Tblo = Rg
End With
Me.ComboBox1.List = Tblo
End Sub
en esperant avoir ete clair
merci pour votre aide
Andrée et Romuald
Bonsoir tout le monde
Voici mon probleme
Avec le code ci joint ,lorsque la liste est composée de "nombre" tout
fonctionne sans le moindre souci mais
lorsque la liste est composée de "texte" alors
lorsque j'ai selectionnéuné une cellule(cellule A3 par exemple)
que je lui attibue le second élément du menu déroulant ("bonjour" par
exemple) alors ok
mais lorsque je veux après avoir selectionné une autre cellule
(b32 par exemple)ré-attribué directement après "bonjour" du menu déroulant
alors je suis obligé de selectionné et attribué un autre élément ("salut"
par exemple)du menu déroulant et après encore resélectionné le premier
élément"bonjour".
comment cela se fait il ?
comment cela peut il etre resolu ??
j'ai essayé en changeant le type de variable mais cela ne va pas
voici le code que j'utilise
Private Sub ComboBox1_Click()
ActiveCell.Value = Me.ComboBox1.Value
End Sub
Private Sub ComboBox1_GotFocus()
Dim Rg As Range, Tblo As Variant
With Worksheets("Données")
Set Rg = .Range("C26:C" & .Range("C7").End(xlUp).Row)
Tblo = Rg
End With
Me.ComboBox1.List = Tblo
End Sub
en esperant avoir ete clair
merci pour votre aide
Andrée et Romuald
Bonsoir tout le monde
Voici mon probleme
Avec le code ci joint ,lorsque la liste est composée de "nombre" tout
fonctionne sans le moindre souci mais
lorsque la liste est composée de "texte" alors
lorsque j'ai selectionnéuné une cellule(cellule A3 par exemple)
que je lui attibue le second élément du menu déroulant ("bonjour" par
exemple) alors ok
mais lorsque je veux après avoir selectionné une autre cellule
(b32 par exemple)ré-attribué directement après "bonjour" du menu déroulant
alors je suis obligé de selectionné et attribué un autre élément ("salut"
par exemple)du menu déroulant et après encore resélectionné le premier
élément"bonjour".
comment cela se fait il ?
comment cela peut il etre resolu ??
j'ai essayé en changeant le type de variable mais cela ne va pas
voici le code que j'utilise
Private Sub ComboBox1_Click()
ActiveCell.Value = Me.ComboBox1.Value
End Sub
Private Sub ComboBox1_GotFocus()
Dim Rg As Range, Tblo As Variant
With Worksheets("Données")
Set Rg = .Range("C26:C" & .Range("C7").End(xlUp).Row)
Tblo = Rg
End With
Me.ComboBox1.List = Tblo
End Sub
en esperant avoir ete clair
merci pour votre aide
Andrée et Romuald
*Bonjour Andrée et Romuald*,
Essaie comme ca :
Private Sub ComboBox1_Change()
ActiveCell = ComboBox1
End Sub
Private Sub Worksheet_Activate(ByVal Target As Range)
Application.EnableEvents = False
ComboBox1.Clear
For Each cel In Range("A1:A5")
ComboBox1.AddItem cel
Next
Application.EnableEvents = True
End SubBonsoir tout le monde
Voici mon probleme
Avec le code ci joint ,lorsque la liste est composée de "nombre" tout
fonctionne sans le moindre souci mais
lorsque la liste est composée de "texte" alors
lorsque j'ai selectionnéuné une cellule(cellule A3 par
exemple)
que je lui attibue le second élément du menu déroulant ("bonjour" par
exemple) alors ok
mais lorsque je veux après avoir selectionné une autre
cellule
(b32 par exemple)ré-attribué directement après "bonjour" du menu
déroulant
alors je suis obligé de selectionné et attribué un autre élément
("salut"
par exemple)du menu déroulant et après encore resélectionné le premier
élément"bonjour".
comment cela se fait il ?
comment cela peut il etre resolu ??
j'ai essayé en changeant le type de variable mais cela ne va pas
voici le code que j'utilise
Private Sub ComboBox1_Click()
ActiveCell.Value = Me.ComboBox1.Value
End Sub
Private Sub ComboBox1_GotFocus()
Dim Rg As Range, Tblo As Variant
With Worksheets("Données")
Set Rg = .Range("C26:C" & .Range("C7").End(xlUp).Row)
Tblo = Rg
End With
Me.ComboBox1.List = Tblo
End Sub
en esperant avoir ete clair
merci pour votre aide
Andrée et Romuald
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
*Bonjour Andrée et Romuald*,
Essaie comme ca :
Private Sub ComboBox1_Change()
ActiveCell = ComboBox1
End Sub
Private Sub Worksheet_Activate(ByVal Target As Range)
Application.EnableEvents = False
ComboBox1.Clear
For Each cel In Range("A1:A5")
ComboBox1.AddItem cel
Next
Application.EnableEvents = True
End Sub
Bonsoir tout le monde
Voici mon probleme
Avec le code ci joint ,lorsque la liste est composée de "nombre" tout
fonctionne sans le moindre souci mais
lorsque la liste est composée de "texte" alors
lorsque j'ai selectionnéuné une cellule(cellule A3 par
exemple)
que je lui attibue le second élément du menu déroulant ("bonjour" par
exemple) alors ok
mais lorsque je veux après avoir selectionné une autre
cellule
(b32 par exemple)ré-attribué directement après "bonjour" du menu
déroulant
alors je suis obligé de selectionné et attribué un autre élément
("salut"
par exemple)du menu déroulant et après encore resélectionné le premier
élément"bonjour".
comment cela se fait il ?
comment cela peut il etre resolu ??
j'ai essayé en changeant le type de variable mais cela ne va pas
voici le code que j'utilise
Private Sub ComboBox1_Click()
ActiveCell.Value = Me.ComboBox1.Value
End Sub
Private Sub ComboBox1_GotFocus()
Dim Rg As Range, Tblo As Variant
With Worksheets("Données")
Set Rg = .Range("C26:C" & .Range("C7").End(xlUp).Row)
Tblo = Rg
End With
Me.ComboBox1.List = Tblo
End Sub
en esperant avoir ete clair
merci pour votre aide
Andrée et Romuald
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
*Bonjour Andrée et Romuald*,
Essaie comme ca :
Private Sub ComboBox1_Change()
ActiveCell = ComboBox1
End Sub
Private Sub Worksheet_Activate(ByVal Target As Range)
Application.EnableEvents = False
ComboBox1.Clear
For Each cel In Range("A1:A5")
ComboBox1.AddItem cel
Next
Application.EnableEvents = True
End SubBonsoir tout le monde
Voici mon probleme
Avec le code ci joint ,lorsque la liste est composée de "nombre" tout
fonctionne sans le moindre souci mais
lorsque la liste est composée de "texte" alors
lorsque j'ai selectionnéuné une cellule(cellule A3 par
exemple)
que je lui attibue le second élément du menu déroulant ("bonjour" par
exemple) alors ok
mais lorsque je veux après avoir selectionné une autre
cellule
(b32 par exemple)ré-attribué directement après "bonjour" du menu
déroulant
alors je suis obligé de selectionné et attribué un autre élément
("salut"
par exemple)du menu déroulant et après encore resélectionné le premier
élément"bonjour".
comment cela se fait il ?
comment cela peut il etre resolu ??
j'ai essayé en changeant le type de variable mais cela ne va pas
voici le code que j'utilise
Private Sub ComboBox1_Click()
ActiveCell.Value = Me.ComboBox1.Value
End Sub
Private Sub ComboBox1_GotFocus()
Dim Rg As Range, Tblo As Variant
With Worksheets("Données")
Set Rg = .Range("C26:C" & .Range("C7").End(xlUp).Row)
Tblo = Rg
End With
Me.ComboBox1.List = Tblo
End Sub
en esperant avoir ete clair
merci pour votre aide
Andrée et Romuald
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
bonsoir,
j'ai essayé mais cela ne demarre pas car a la compilation j'ai le message
"la declaration de la procedure ne correspond pas a la description de
l'evenement ou de la procedure de meme nom" ??
n'y a t il pas un faute dans "for each cel in range"
serait-il possible de joindre eventuellement un exemple
merci
Andrée et Romuald
bonsoir,
j'ai essayé mais cela ne demarre pas car a la compilation j'ai le message
"la declaration de la procedure ne correspond pas a la description de
l'evenement ou de la procedure de meme nom" ??
n'y a t il pas un faute dans "for each cel in range"
serait-il possible de joindre eventuellement un exemple
merci
Andrée et Romuald
bonsoir,
j'ai essayé mais cela ne demarre pas car a la compilation j'ai le message
"la declaration de la procedure ne correspond pas a la description de
l'evenement ou de la procedure de meme nom" ??
n'y a t il pas un faute dans "for each cel in range"
serait-il possible de joindre eventuellement un exemple
merci
Andrée et Romuald
bonsoir,
j'ai essayé mais cela ne demarre pas car a la compilation j'ai le message
"la declaration de la procedure ne correspond pas a la description de
l'evenement ou de la procedure de meme nom" ??
n'y a t il pas un faute dans "for each cel in range"
serait-il possible de joindre eventuellement un exemple
merci
Andrée et Romuald
Autant pour moi, l'événement Activate n'a pas d'argument
voila le fichier exemple : http://cjoint.com/?frhPsJmcCF
--
JLuc
bonsoir,
j'ai essayé mais cela ne demarre pas car a la compilation j'ai le message
"la declaration de la procedure ne correspond pas a la description de
l'evenement ou de la procedure de meme nom" ??
n'y a t il pas un faute dans "for each cel in range"
serait-il possible de joindre eventuellement un exemple
merci
Andrée et Romuald
Autant pour moi, l'événement Activate n'a pas d'argument
voila le fichier exemple : http://cjoint.com/?frhPsJmcCF
--
JLuc
bonsoir,
j'ai essayé mais cela ne demarre pas car a la compilation j'ai le message
"la declaration de la procedure ne correspond pas a la description de
l'evenement ou de la procedure de meme nom" ??
n'y a t il pas un faute dans "for each cel in range"
serait-il possible de joindre eventuellement un exemple
merci
Andrée et Romuald
Autant pour moi, l'événement Activate n'a pas d'argument
voila le fichier exemple : http://cjoint.com/?frhPsJmcCF
--
JLuc
Bonsoir tout le monde
Voici mon probleme
Avec le code ci joint ,lorsque la liste est composée de "nombre" tout
fonctionne sans le moindre souci mais
lorsque la liste est composée de "texte" alors
lorsque j'ai selectionnéuné une cellule(cellule A3 par exemple)
que je lui attibue le second élément du menu déroulant ("bonjour" par
exemple) alors ok
mais lorsque je veux après avoir selectionné une autre cellule
(b32 par exemple)ré-attribué directement après "bonjour" du menu déroulant
alors je suis obligé de selectionné et attribué un autre élément ("salut"
par exemple)du menu déroulant et après encore resélectionné le premier
élément"bonjour".
comment cela se fait il ?
comment cela peut il etre resolu ??
j'ai essayé en changeant le type de variable mais cela ne va pas
voici le code que j'utilise
Private Sub ComboBox1_Click()
ActiveCell.Value = Me.ComboBox1.Value
End Sub
Private Sub ComboBox1_GotFocus()
Dim Rg As Range, Tblo As Variant
With Worksheets("Données")
Set Rg = .Range("C26:C" & .Range("C7").End(xlUp).Row)
Tblo = Rg
End With
Me.ComboBox1.List = Tblo
End Sub
en esperant avoir ete clair
merci pour votre aide
Andrée et Romuald
Bonsoir tout le monde
Voici mon probleme
Avec le code ci joint ,lorsque la liste est composée de "nombre" tout
fonctionne sans le moindre souci mais
lorsque la liste est composée de "texte" alors
lorsque j'ai selectionnéuné une cellule(cellule A3 par exemple)
que je lui attibue le second élément du menu déroulant ("bonjour" par
exemple) alors ok
mais lorsque je veux après avoir selectionné une autre cellule
(b32 par exemple)ré-attribué directement après "bonjour" du menu déroulant
alors je suis obligé de selectionné et attribué un autre élément ("salut"
par exemple)du menu déroulant et après encore resélectionné le premier
élément"bonjour".
comment cela se fait il ?
comment cela peut il etre resolu ??
j'ai essayé en changeant le type de variable mais cela ne va pas
voici le code que j'utilise
Private Sub ComboBox1_Click()
ActiveCell.Value = Me.ComboBox1.Value
End Sub
Private Sub ComboBox1_GotFocus()
Dim Rg As Range, Tblo As Variant
With Worksheets("Données")
Set Rg = .Range("C26:C" & .Range("C7").End(xlUp).Row)
Tblo = Rg
End With
Me.ComboBox1.List = Tblo
End Sub
en esperant avoir ete clair
merci pour votre aide
Andrée et Romuald
Bonsoir tout le monde
Voici mon probleme
Avec le code ci joint ,lorsque la liste est composée de "nombre" tout
fonctionne sans le moindre souci mais
lorsque la liste est composée de "texte" alors
lorsque j'ai selectionnéuné une cellule(cellule A3 par exemple)
que je lui attibue le second élément du menu déroulant ("bonjour" par
exemple) alors ok
mais lorsque je veux après avoir selectionné une autre cellule
(b32 par exemple)ré-attribué directement après "bonjour" du menu déroulant
alors je suis obligé de selectionné et attribué un autre élément ("salut"
par exemple)du menu déroulant et après encore resélectionné le premier
élément"bonjour".
comment cela se fait il ?
comment cela peut il etre resolu ??
j'ai essayé en changeant le type de variable mais cela ne va pas
voici le code que j'utilise
Private Sub ComboBox1_Click()
ActiveCell.Value = Me.ComboBox1.Value
End Sub
Private Sub ComboBox1_GotFocus()
Dim Rg As Range, Tblo As Variant
With Worksheets("Données")
Set Rg = .Range("C26:C" & .Range("C7").End(xlUp).Row)
Tblo = Rg
End With
Me.ComboBox1.List = Tblo
End Sub
en esperant avoir ete clair
merci pour votre aide
Andrée et Romuald
*Bonjour Andrée et Romuald*,
J'ai chercher et je pense, je dis bien je pense t'avoir trouvé une
solution :
Dans le module de feuille :
Private Sub Worksheet_BeforeRightClick(ByVal Target As _
Range, Cancel As Boolean)
' Supprimer l'entrée si elle existe
For Each CmdDroit In Application.CommandBars("cell").Controls
If CmdDroit.Type = msoControlComboBox Then CmdDroit.Delete
Next CmdDroit
' Ajouter les entrées
Set myControl = CommandBars("cell").Controls _
.Add(Type:=msoControlComboBox, Before:=1)
With myControl
For x = 1 To 5
.AddItem Text:Îlls(x, 1), Index:=x
Next
.ListIndex = 1
.DropDownLines = 3
.DropDownWidth = 75
.ListHeaderCount = 0
.Tag = "MonMenu"
.OnAction = "MetLaValeur"
End With
End Sub
Dans un module standard :
Sub MetLaValeur()
Dim MonBtn As CommandBarComboBox, strTxt As String
Set MonBtn = CommandBars("cell").FindControl(, , "MonMenu")
strTxt = MonBtn.Text
'ici vous mettez vos instructions, exemple :
ActiveCell = strTxt
End Sub
Dis nous si ca te conviendrais (en adaptant à tes données)
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
*Bonjour Andrée et Romuald*,
J'ai chercher et je pense, je dis bien je pense t'avoir trouvé une
solution :
Dans le module de feuille :
Private Sub Worksheet_BeforeRightClick(ByVal Target As _
Range, Cancel As Boolean)
' Supprimer l'entrée si elle existe
For Each CmdDroit In Application.CommandBars("cell").Controls
If CmdDroit.Type = msoControlComboBox Then CmdDroit.Delete
Next CmdDroit
' Ajouter les entrées
Set myControl = CommandBars("cell").Controls _
.Add(Type:=msoControlComboBox, Before:=1)
With myControl
For x = 1 To 5
.AddItem Text:Îlls(x, 1), Index:=x
Next
.ListIndex = 1
.DropDownLines = 3
.DropDownWidth = 75
.ListHeaderCount = 0
.Tag = "MonMenu"
.OnAction = "MetLaValeur"
End With
End Sub
Dans un module standard :
Sub MetLaValeur()
Dim MonBtn As CommandBarComboBox, strTxt As String
Set MonBtn = CommandBars("cell").FindControl(, , "MonMenu")
strTxt = MonBtn.Text
'ici vous mettez vos instructions, exemple :
ActiveCell = strTxt
End Sub
Dis nous si ca te conviendrais (en adaptant à tes données)
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
*Bonjour Andrée et Romuald*,
J'ai chercher et je pense, je dis bien je pense t'avoir trouvé une
solution :
Dans le module de feuille :
Private Sub Worksheet_BeforeRightClick(ByVal Target As _
Range, Cancel As Boolean)
' Supprimer l'entrée si elle existe
For Each CmdDroit In Application.CommandBars("cell").Controls
If CmdDroit.Type = msoControlComboBox Then CmdDroit.Delete
Next CmdDroit
' Ajouter les entrées
Set myControl = CommandBars("cell").Controls _
.Add(Type:=msoControlComboBox, Before:=1)
With myControl
For x = 1 To 5
.AddItem Text:Îlls(x, 1), Index:=x
Next
.ListIndex = 1
.DropDownLines = 3
.DropDownWidth = 75
.ListHeaderCount = 0
.Tag = "MonMenu"
.OnAction = "MetLaValeur"
End With
End Sub
Dans un module standard :
Sub MetLaValeur()
Dim MonBtn As CommandBarComboBox, strTxt As String
Set MonBtn = CommandBars("cell").FindControl(, , "MonMenu")
strTxt = MonBtn.Text
'ici vous mettez vos instructions, exemple :
ActiveCell = strTxt
End Sub
Dis nous si ca te conviendrais (en adaptant à tes données)
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
je ne comprends pas tres bien ce que je dis mettre comme instructions (moi
j'ai mis "activecell=combobox1")mais sans certitude
ce qui m'inquiete c'est que je ne vois pas où indiquer la plage du menu
déroulant
merci pour la patience
Andrée et Romuald
Private Sub Worksheet_BeforeRightClick(ByVal Target As _
Range, Cancel As Boolean)
' Supprimer l'entrée si elle existe
For Each CmdDroit In Application.CommandBars("cell").Controls
If CmdDroit.Type = msoControlComboBox Then CmdDroit.Delete
Next CmdDroit
' Ajouter les entrées
Set myControl = CommandBars("cell").Controls _
.Add(Type:=msoControlComboBox, Before:=1)
With myControl
For x = 1 To 5
.AddItem Text:Îlls(x, 1), Index:=x
Next
.ListIndex = 1
.DropDownLines = 3
.DropDownWidth = 75
.ListHeaderCount = 0
.Tag = "MonMenu"
.OnAction = "MetLaValeur"
End With
End Sub
Sub MetLaValeur()
Dim MonBtn As CommandBarComboBox, strTxt As String
Set MonBtn = CommandBars("cell").FindControl(, , "MonMenu")
strTxt = MonBtn.Text
'ici vous mettez vos instructions, exemple :
ActiveCell = strTxt
End Sub
je ne comprends pas tres bien ce que je dis mettre comme instructions (moi
j'ai mis "activecell=combobox1")mais sans certitude
ce qui m'inquiete c'est que je ne vois pas où indiquer la plage du menu
déroulant
merci pour la patience
Andrée et Romuald
Private Sub Worksheet_BeforeRightClick(ByVal Target As _
Range, Cancel As Boolean)
' Supprimer l'entrée si elle existe
For Each CmdDroit In Application.CommandBars("cell").Controls
If CmdDroit.Type = msoControlComboBox Then CmdDroit.Delete
Next CmdDroit
' Ajouter les entrées
Set myControl = CommandBars("cell").Controls _
.Add(Type:=msoControlComboBox, Before:=1)
With myControl
For x = 1 To 5
.AddItem Text:Îlls(x, 1), Index:=x
Next
.ListIndex = 1
.DropDownLines = 3
.DropDownWidth = 75
.ListHeaderCount = 0
.Tag = "MonMenu"
.OnAction = "MetLaValeur"
End With
End Sub
Sub MetLaValeur()
Dim MonBtn As CommandBarComboBox, strTxt As String
Set MonBtn = CommandBars("cell").FindControl(, , "MonMenu")
strTxt = MonBtn.Text
'ici vous mettez vos instructions, exemple :
ActiveCell = strTxt
End Sub
je ne comprends pas tres bien ce que je dis mettre comme instructions (moi
j'ai mis "activecell=combobox1")mais sans certitude
ce qui m'inquiete c'est que je ne vois pas où indiquer la plage du menu
déroulant
merci pour la patience
Andrée et Romuald
Private Sub Worksheet_BeforeRightClick(ByVal Target As _
Range, Cancel As Boolean)
' Supprimer l'entrée si elle existe
For Each CmdDroit In Application.CommandBars("cell").Controls
If CmdDroit.Type = msoControlComboBox Then CmdDroit.Delete
Next CmdDroit
' Ajouter les entrées
Set myControl = CommandBars("cell").Controls _
.Add(Type:=msoControlComboBox, Before:=1)
With myControl
For x = 1 To 5
.AddItem Text:Îlls(x, 1), Index:=x
Next
.ListIndex = 1
.DropDownLines = 3
.DropDownWidth = 75
.ListHeaderCount = 0
.Tag = "MonMenu"
.OnAction = "MetLaValeur"
End With
End Sub
Sub MetLaValeur()
Dim MonBtn As CommandBarComboBox, strTxt As String
Set MonBtn = CommandBars("cell").FindControl(, , "MonMenu")
strTxt = MonBtn.Text
'ici vous mettez vos instructions, exemple :
ActiveCell = strTxt
End Sub
*Bonjour Andrée et Romuald*,je ne comprends pas tres bien ce que je dis mettre comme instructions
(moi j'ai mis "activecell=combobox1")mais sans certitude
ce qui m'inquiete c'est que je ne vois pas où indiquer la plage du menu
déroulant
merci pour la patience
Andrée et Romuald
Explications :
Dans le module de feuille :
Cette procédure evenementielle se produit au clic droit sur la cellule.
A cet endroit, je rajoute dans le menu contextuel du clic droit une
Combobox avec les elements tires de la feuillePrivate Sub Worksheet_BeforeRightClick(ByVal Target As _
Range, Cancel As Boolean)
' Supprimer l'entrée si elle existe
For Each CmdDroit In Application.CommandBars("cell").Controls
If CmdDroit.Type = msoControlComboBox Then CmdDroit.Delete
Next CmdDroit
' Ajouter les entrées
Definition d'une variable objet avec l'ajout d'un control ComboboxSet myControl = CommandBars("cell").Controls _
.Add(Type:=msoControlComboBox, Before:=1)
With myControl
Ajout des valeurs a la Combobox avec les valeurs recuperees dans la
feuille de A1 a A5For x = 1 To 5
.AddItem Text:Îlls(x, 1), Index:=x
Next
Definition de l'item selectionne (sinon, la liste ne contient pas la
valeur du premier item).ListIndex = 1
Nombre de valeur affichable par la Combo.DropDownLines = 3
.DropDownWidth = 75
.ListHeaderCount = 0
Donne un nom au control Combo.Tag = "MonMenu"
Macro a executer apres un choix dans la Combo.OnAction = "MetLaValeur"
End With
End Sub
Dans un module standard :
Cette macro ne sera executee que quand tu selectionnera une valeur dans la
Combo. Si tu l'execute toute seule, tu aura l'erreur que tu as eueSub MetLaValeur()
Dim MonBtn As CommandBarComboBox, strTxt As String
Set MonBtn = CommandBars("cell").FindControl(, , "MonMenu")
strTxt = MonBtn.Text
'ici vous mettez vos instructions, exemple :
ActiveCell = strTxt
End Sub
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
*Bonjour Andrée et Romuald*,
je ne comprends pas tres bien ce que je dis mettre comme instructions
(moi j'ai mis "activecell=combobox1")mais sans certitude
ce qui m'inquiete c'est que je ne vois pas où indiquer la plage du menu
déroulant
merci pour la patience
Andrée et Romuald
Explications :
Dans le module de feuille :
Cette procédure evenementielle se produit au clic droit sur la cellule.
A cet endroit, je rajoute dans le menu contextuel du clic droit une
Combobox avec les elements tires de la feuille
Private Sub Worksheet_BeforeRightClick(ByVal Target As _
Range, Cancel As Boolean)
' Supprimer l'entrée si elle existe
For Each CmdDroit In Application.CommandBars("cell").Controls
If CmdDroit.Type = msoControlComboBox Then CmdDroit.Delete
Next CmdDroit
' Ajouter les entrées
Definition d'une variable objet avec l'ajout d'un control Combobox
Set myControl = CommandBars("cell").Controls _
.Add(Type:=msoControlComboBox, Before:=1)
With myControl
Ajout des valeurs a la Combobox avec les valeurs recuperees dans la
feuille de A1 a A5
For x = 1 To 5
.AddItem Text:Îlls(x, 1), Index:=x
Next
Definition de l'item selectionne (sinon, la liste ne contient pas la
valeur du premier item)
.ListIndex = 1
Nombre de valeur affichable par la Combo
.DropDownLines = 3
.DropDownWidth = 75
.ListHeaderCount = 0
Donne un nom au control Combo
.Tag = "MonMenu"
Macro a executer apres un choix dans la Combo
.OnAction = "MetLaValeur"
End With
End Sub
Dans un module standard :
Cette macro ne sera executee que quand tu selectionnera une valeur dans la
Combo. Si tu l'execute toute seule, tu aura l'erreur que tu as eue
Sub MetLaValeur()
Dim MonBtn As CommandBarComboBox, strTxt As String
Set MonBtn = CommandBars("cell").FindControl(, , "MonMenu")
strTxt = MonBtn.Text
'ici vous mettez vos instructions, exemple :
ActiveCell = strTxt
End Sub
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
*Bonjour Andrée et Romuald*,je ne comprends pas tres bien ce que je dis mettre comme instructions
(moi j'ai mis "activecell=combobox1")mais sans certitude
ce qui m'inquiete c'est que je ne vois pas où indiquer la plage du menu
déroulant
merci pour la patience
Andrée et Romuald
Explications :
Dans le module de feuille :
Cette procédure evenementielle se produit au clic droit sur la cellule.
A cet endroit, je rajoute dans le menu contextuel du clic droit une
Combobox avec les elements tires de la feuillePrivate Sub Worksheet_BeforeRightClick(ByVal Target As _
Range, Cancel As Boolean)
' Supprimer l'entrée si elle existe
For Each CmdDroit In Application.CommandBars("cell").Controls
If CmdDroit.Type = msoControlComboBox Then CmdDroit.Delete
Next CmdDroit
' Ajouter les entrées
Definition d'une variable objet avec l'ajout d'un control ComboboxSet myControl = CommandBars("cell").Controls _
.Add(Type:=msoControlComboBox, Before:=1)
With myControl
Ajout des valeurs a la Combobox avec les valeurs recuperees dans la
feuille de A1 a A5For x = 1 To 5
.AddItem Text:Îlls(x, 1), Index:=x
Next
Definition de l'item selectionne (sinon, la liste ne contient pas la
valeur du premier item).ListIndex = 1
Nombre de valeur affichable par la Combo.DropDownLines = 3
.DropDownWidth = 75
.ListHeaderCount = 0
Donne un nom au control Combo.Tag = "MonMenu"
Macro a executer apres un choix dans la Combo.OnAction = "MetLaValeur"
End With
End Sub
Dans un module standard :
Cette macro ne sera executee que quand tu selectionnera une valeur dans la
Combo. Si tu l'execute toute seule, tu aura l'erreur que tu as eueSub MetLaValeur()
Dim MonBtn As CommandBarComboBox, strTxt As String
Set MonBtn = CommandBars("cell").FindControl(, , "MonMenu")
strTxt = MonBtn.Text
'ici vous mettez vos instructions, exemple :
ActiveCell = strTxt
End Sub
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
Bonsoir tout le monde
Voici mon probleme
Avec le code ci joint ,lorsque la liste est composée de "nombre" tout
fonctionne sans le moindre souci mais
lorsque la liste est composée de "texte" alors
lorsque j'ai selectionnéuné une cellule(cellule A3 par
exemple)
que je lui attibue le second élément du menu déroulant ("bonjour" par
exemple) alors ok
mais lorsque je veux après avoir selectionné une autre cellule
(b32 par exemple)ré-attribué directement après "bonjour" du menu
déroulant
alors je suis obligé de selectionné et attribué un autre élément ("salut"
par exemple)du menu déroulant et après encore resélectionné le premier
élément"bonjour".
comment cela se fait il ?
comment cela peut il etre resolu ??
j'ai essayé en changeant le type de variable mais cela ne va pas
voici le code que j'utilise
Private Sub ComboBox1_Click()
ActiveCell.Value = Me.ComboBox1.Value
End Sub
Private Sub ComboBox1_GotFocus()
Dim Rg As Range, Tblo As Variant
With Worksheets("Données")
Set Rg = .Range("C26:C" & .Range("C7").End(xlUp).Row)
Tblo = Rg
End With
Me.ComboBox1.List = Tblo
End Sub
en esperant avoir ete clair
merci pour votre aide
Andrée et Romuald
Bonsoir tout le monde
Voici mon probleme
Avec le code ci joint ,lorsque la liste est composée de "nombre" tout
fonctionne sans le moindre souci mais
lorsque la liste est composée de "texte" alors
lorsque j'ai selectionnéuné une cellule(cellule A3 par
exemple)
que je lui attibue le second élément du menu déroulant ("bonjour" par
exemple) alors ok
mais lorsque je veux après avoir selectionné une autre cellule
(b32 par exemple)ré-attribué directement après "bonjour" du menu
déroulant
alors je suis obligé de selectionné et attribué un autre élément ("salut"
par exemple)du menu déroulant et après encore resélectionné le premier
élément"bonjour".
comment cela se fait il ?
comment cela peut il etre resolu ??
j'ai essayé en changeant le type de variable mais cela ne va pas
voici le code que j'utilise
Private Sub ComboBox1_Click()
ActiveCell.Value = Me.ComboBox1.Value
End Sub
Private Sub ComboBox1_GotFocus()
Dim Rg As Range, Tblo As Variant
With Worksheets("Données")
Set Rg = .Range("C26:C" & .Range("C7").End(xlUp).Row)
Tblo = Rg
End With
Me.ComboBox1.List = Tblo
End Sub
en esperant avoir ete clair
merci pour votre aide
Andrée et Romuald
Bonsoir tout le monde
Voici mon probleme
Avec le code ci joint ,lorsque la liste est composée de "nombre" tout
fonctionne sans le moindre souci mais
lorsque la liste est composée de "texte" alors
lorsque j'ai selectionnéuné une cellule(cellule A3 par
exemple)
que je lui attibue le second élément du menu déroulant ("bonjour" par
exemple) alors ok
mais lorsque je veux après avoir selectionné une autre cellule
(b32 par exemple)ré-attribué directement après "bonjour" du menu
déroulant
alors je suis obligé de selectionné et attribué un autre élément ("salut"
par exemple)du menu déroulant et après encore resélectionné le premier
élément"bonjour".
comment cela se fait il ?
comment cela peut il etre resolu ??
j'ai essayé en changeant le type de variable mais cela ne va pas
voici le code que j'utilise
Private Sub ComboBox1_Click()
ActiveCell.Value = Me.ComboBox1.Value
End Sub
Private Sub ComboBox1_GotFocus()
Dim Rg As Range, Tblo As Variant
With Worksheets("Données")
Set Rg = .Range("C26:C" & .Range("C7").End(xlUp).Row)
Tblo = Rg
End With
Me.ComboBox1.List = Tblo
End Sub
en esperant avoir ete clair
merci pour votre aide
Andrée et Romuald