Mettre une formule par défaut

Résolu
midu49 Messages postés 13 Statut Membre -  
midu49 Messages postés 13 Statut Membre -
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 !
A voir également:

2 réponses

michel_m Messages postés 18903 Statut Contributeur 3 317
 
Bonjour

au lieu de
=B1

=range("B1")
0
midu49 Messages postés 13 Statut Membre
 
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 18903 Statut Contributeur 3 317
 
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 Statut Membre
 
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