La fameuse erreur 400

Jaubert

XLDnaute Nouveau
Bonjour,

J'ai retourné ce forum et d'autres dans tous les sens, je n'ai rien trouvé qui m'aide... malgré des dizaines de fils sur cette fameuse erreur 400.

Bref, voici mon problème :

Je veux commander deux cellules différentes, contenant des dates, qui vont constituer les bornes d'un intervalle de temps. les updates doivent être gérées par un userform - récupéré sur un aurtez forum - , un calendrier sur lequel on se contente de cliquer sur la date choisie (voir fichier joint).

Deux boutons appellent ce calendrier ; un pour mettre à jour uniquement la date de début, un pour la date de fin.


Dans la feuille :
Code:
Sub timeframe_definition3()
    calendar.Show
    If calendar.Chk Then
        Range("content_date_start") = calendar.MonthView1.Value
    End If
End Sub



Sub timeframe_definition4()
    calendar.Show
    If calendar.Chk Then
        Range("content_date_end") = calendar.MonthView1.Value
    End If
End Sub


Dans le code du user calendrier
Code:
'Use the chosen date as reference and close calendar
Private Sub MonthView1_DateClick(ByVal DateClicked As Date)
Chk.Value = True
calendar.Hide
End Sub

'Display today's date in calendar
Private Sub UserForm_Activate()
MonthView1.Value = Now
End Sub

'Close the calendar
Private Sub UserForm_Terminate()
Chk.Value = False
End Sub

La chose étonnante réside ici :
La première procédure (date de début) fonctionne parfaitement, mais me renvoie l'erreur 400 uniquement quand je protège la feuille.
la deuxième procédure (date de fin) quand à elle fonctionne dans les deux cas, alors que c'est exactement le même code.

Précision : l'erreur 400 arrive avec l'update de la date de départ, indépendamment de la chronologie de lancement des macros.

j'ai aussi essayé de mettre les macros dans un module plutot que dans la feuille, je n'ai plus d'erreur 400 mais j'ai une erreur qui m'empêche de modifier une cellule protégée.

Une idée pour me décoincer ?


Merci d'avance pour vos réponses
Jaubert.
 

Pièces jointes

  • aidefofo.xls
    44.5 KB · Affichages: 25

camarchepas

XLDnaute Barbatruc
Re : La fameuse erreur 400

Bonjour , une solution

Si mot de passe , ajouter derriere unprotect et protect password:="Le mot de passe"

Code:
Sub timeframe_definition3()
    calendar.Show
    If calendar.Chk Then
        ActiveSheet.Unprotect
        Range("content_date_start") = calendar.MonthView1.Value
        ActiveSheet.Protect
    End If
End Sub
 

Jaubert

XLDnaute Nouveau
Re : La fameuse erreur 400

Bonjour,

Tout d'abord merci de ta proposition. Cependant elle ne fonctionne pas, peut-être à cause de ce que je viens de comprendre :

L'erreur n'était pas dans VBA mais dans Excel, où je n'ai autorisé l'utilisateur à modifier qu'uniquement la cellule C3, et pas C4. une fois cela corrigé tout marche correctement.

il ne modifie rien en réalité, il ne peut que cliquer sur les boutons, car les cellules editables sont cachées et innaccessible car le classeur est protégé aussi.

Bref, merci tout de même.

Jaubert
 

Discussions similaires

Statistiques des forums

Discussions
312 198
Messages
2 086 107
Membres
103 120
dernier inscrit
83400ren