Macro qui ne fonctionne pas, menu déroulant intuitif

Fermé
liv.larsen - 1 oct. 2013 à 15:09
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 2 oct. 2013 à 10:28
Bonjour à tous.. et toutes!

J'ai une macro qui ne veut tout simplement pas fonctionner lorsque je l'exécute mais qui fonctionne très bien lorsque je l'enregistre!

Dans ma macro j'ai entre autre la création d'un menu déroulant intuitif qui fonctionne bien lorsque je rentre la formule manuellement mais qui semble créer un problème lorsqu'exécutée avec par la macro... voici le code:

Sub Déverrouillage()
'
' Déverrouillage Macro
'

'
ActiveSheet.Unprotect
ActiveWindow.SmallScroll Down:=27
Range("D34:D83").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:= _
"=DECALER(food,EQUIV(D34&""*"",food;0)-1,,NB.SI(food,D34&""*""))"
.IgnoreBlank = False
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = False
.ShowError = False
End With
Range("D29").Select
End Sub
A voir également:

2 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 311
1 oct. 2013 à 16:24
Bonjour,

VBA ne comprend que l'anglais :-/

essaies avec
Formulalocal

extrait de l'aide en ligne Microsoft
Cette propriété renvoie ou définit la formule de l'objet, en utilisant les références du style A1 dans le langage de l'utilisateur. Type de données Variant en lecture-écriture
0
Salut Michel_m
merci de ton aide, mais je ne suis pas certaine de comprendre ta réponse.

J'y vais pas mal à tâtons dans VBA...

La Formulalocal, je dois la placer où???

De ce que j'ai lu sur mon problème qui est en fait une erreur 1004, le problème est :
Ce problème peut se produire lorsque l'une des conditions suivantes est remplie :
*La macro Microsoft Visual Basic pour Applications (VBA) copie et colle une ligne entière dans un classeur Excel 2003.
*La macro Microsoft VBA copie et colle une plage de 2 516 lignes ou plus dans un classeur Excel 2003


Mais.. ma liste source à 2 000 lignes donc je suis à moins de 2 516.. donc ce serait la copie de ma liste déroulante qui me provient d'une autre feuille du classeur et qui est en fait un tableau croisé dynamique.. mais je ne sais pas comment ou quoi faire pour contourner le problème.. voici ce que l'aide offre:
Pour contourner ce problème si votre macro VBA copie et colle une ligne entière, modifiez le code de la macro pour copier uniquement la section de la ligne contenant des données. Par exemple, utilisez un code de macro VBA semblable au suivant :
Range(Range("A" & ActiveCell.Row), Range("IV" & ActiveCell.Row).End(xlToLeft)).Select

Je ne sais pas comment appliquer cette formule pour contourner le problème!
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 311
1 oct. 2013 à 17:19
La Formulalocal, je dois la placer où???

a la place de formula1
0
Je suis allée dans ma macro, j'ai modifié formula1 pour formulalocal mais j'ai encore le même problème. Le débogage me surligne ma formule pour ma liste déroulante intuitive.

J'ai essayé la même marco mais avec une liste de validation .. = food et ça fonctionne. Ça bogue quand je mets la formule qui permet à ma liste d'être intuitive, c'est-à-dire de se décaler aux 'mots commençant par les premières lettres inscrites dans la case.
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 311
2 oct. 2013 à 10:28
Bonjour,

on va pas s'en sortir sans être + précis et avec un code tronqué (Food:???? par ex)

le mieux serait de joindre un extrait de ton classeur en expliquant clairement ce que tu veux faire

pour joindre une pièce
mettre le classeur sans données confidentielles en pièce jointe sur
https://www.cjoint.com/
puis copier l'adresse du lien et la coller dans le message de réponse


suis absent cet après midi jusqu'à 17 h env.
0