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 Sub

Et 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 Sub

Je 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 Sub

Hello!

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 Sub

Puis 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 Sub

Plein 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 Sub

Voilà 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!

Rechercher des sujets similaires à "variable taxte formule"