Variable taxte dans formule
Bonjour,
Décidément je ne comprends vraiment rien à la syntaxe pour incruster des variables dans les différentes formules d'excel.
Typiquement ici j'essaye de créer une lcase avec iste déroulante dont le contenu dépend d'une autre case.
Voilà mon code, et ça bloque au niveau de la syntaxe de Formula... J'ai tout essayé, les guillemets, les espaces, les esperluettes. Je finis par me demander s'i y a une règle?
Voilà mon code pour ceux qui sauront du premier coup d'oeil =)
Sub material_name(material As String)
Range("C15").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=" & material
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End SubEt ensuite dans le module de la worksheet en question
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$14" Then
If Target = "HDPE" Then
material_name (HDPE)
ElseIf Target = "LDPE" Then
material_name (LDPE)
End If
End If
End SubJe vous remercie d'avance, bonne soirée.
Bonjour
Ce code fonctionne si tu as 2 zones nommées ("HDPE" et "LDPE")
Mets des guillemets (voir parties surlignées)
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$14" Then
If Target = "HDPE" Then
material_name "HDPE"
ElseIf Target = "LDPE" Then
material_name "LDPE"
End If
End If
End SubHello!
Effectivement, ça fonctionne beaucoup meiux comme ça! Sinon je suis incapable de dégoter un cours qui pourrait m'expliquer comment utiliser les & et les guillemets, je fais au pif à chaque fois jusqu'à temps que ça marche, c'est un peu embêtant.
Merci pour l'astuce, ce sera toujours des guillemest pour une variable texte du coup?
Bonjour,
Je reposte au même endroit car ça concerne la même procédure, et le même problème mais pour une cellule cette fois.
Je ne trouve pas la syntaxe exacte, même sur le reste de la toile... J'ai l'impression que tout le monde sait faire ces choses là sauf moi, je ne sais vraiment pas où apprendre.
Sub choose_list(list As String, location As Range)
location.Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=" & list
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End SubPuis pour appeler la procédure j'ai tenté:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$E$7" Then
If Target = "Europe" Then
choose_list "Europe", .Range("E12")
ElseIf Target = "Asia" Then
choose_list "Asia", .Range("E12")
End If
End If
End SubPlein de mercis d'avance =)
Bonjour
Un truc qui me gène c'est quoi ce . (point) devant le Range .Range("E12")
Si ce n'est pas ça la cause du problème
Ok c'est ça. J'avais trouvé cette syntaxe avec le point sur Internet...
Cool, merci.
Bonjour,
Alors que je rouvrais ce fichier avec lequel je pensais en avoir terminé, voilà un nouveau soucis lié à cette procédure pour laquelle j'avais déjà posé une question. Elle a très bien fonctionné depuis mais voilà qu'aujourd'hui j'ai un nouveau de problème que je n'arrive pas à résoudre. J'ai cherché sur internet et le message d'erreur qui apparaît arrive dans beaucoup de cas mais je n'ai pas trouvé le mien. Le voici:
"L'objet invoqué s'est déconnecté de ses clients". Pour le coup, l'objet invoqué, je pense que c'est l'argument "list" mais toutes les listes que j'invoque sont situées dans une feuille du même classeur alors je ne vois pas à quoi est due la deconnection.
Voilà le code:
Sub choose_list(list As String, location As Range)
location.Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=" & list
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End SubVoilà c'est là que ça bugge quand je lance choose_list. Etant donné que ça fonctionnait très bien avant, je ne vois pas d'où vient l'erreur...
Je vous remercie d'avance!