Mettre une formule par défaut

Résolu/Fermé
midu49 Messages postés 13 Date d'inscription mercredi 29 juin 2016 Statut Membre Dernière intervention 11 mai 2017 - 29 juin 2016 à 16:18
midu49 Messages postés 13 Date d'inscription mercredi 29 juin 2016 Statut Membre Dernière intervention 11 mai 2017 - 30 juin 2016 à 08:13
Bonjour,
Je suis toute nouvelle sur ce forum et après avoir cherché cherché, ma question reste toujours en suspens. J'ai trouvé comment mettre une valeur par défaut dans une cellule excel avec le code vba suivant qui marche super bien :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$B$7" Then
If Target.Value = "nouveau" Then Target.Value = ""
ElseIf Range("B7").Value = "" Then
Range("B7").Value = "nouveau"
End If
End Sub

Le mot "nouveau" s'affiche par défaut. Mais à la place de ce mot, j'aimerais mettre une formule, simplement qu'il aille chercher par défaut la valeur inscrite en B1. J'ai esayé à la place de "nouveau" : "=B1" mais ca ne marche pas.
Je précise que je connais très peu le langage vba...
Merci beaucoup pour votre aide !

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
29 juin 2016 à 16:23
Bonjour

au lieu de
=B1

=range("B1")
0
midu49 Messages postés 13 Date d'inscription mercredi 29 juin 2016 Statut Membre Dernière intervention 11 mai 2017
29 juin 2016 à 16:32
Bonjour michel_m.
Merci pour votre réponse,
Quand je met =range("B1") ça m'affiche un message d'erreur :

Erreur de compilation
Attendu : Then ou GoTo

Mais je ne sais comment articuler mon texte en rajoutant ça. J'ai essayé de mettre "Then" au lieu du "=" avant le bout de texte à changer, ça refuse aussi en mettant en rouge la valeur après
Then Target.Value = ""
...
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
29 juin 2016 à 18:48
méfie toi des imbrications de "if", elseif, et du then blabla sur la même ligne

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$B$7" Then
If Target = Range("B1") Then
Target = ""
Else
Target = Range("B1")
End If
Range("a1").Select
End If
End Sub

0
midu49 Messages postés 13 Date d'inscription mercredi 29 juin 2016 Statut Membre Dernière intervention 11 mai 2017
30 juin 2016 à 08:13
Alors, du coup, cette dernière formule ne marche pas tout à fait, mais ça m'a permis de retrouver le paramétrage qui me manquait, et ça donne donc :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$B$7" Then
If Target = Range("B1") Then Target.Value = ""
ElseIf Range("B7").Value = "" Then
Range("B7") = Range("B1")
End If
End Sub

En fait, il fallait enlever le .Value après Target. Bon, j'ai pas changé la mise en page et les imbrications, vu que ça marche comme ça.
Merci pour ton aide !
0