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 !

2 réponses

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour

    au lieu de
    =B1

    =range("B1")
    0
    1. 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
  2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
    1. 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