Pause dans le programme non limité avec une condition

Résolu
Bonjour à tous et à toute,
Voilà j'ai un problème avec mon programme, il s'agit d'une macro sous excel qui permet, quant je double clique sur une cellule d'effacer le texte qu'il contient et si je n'écrit rien dedans de remettre le contenue précédent. Voilà le programme que j'ai écrit pour cela:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Dim Valeur As Variant
    Valeur = Target.Value(TextBox)
    If Cancel = False Then
        Target.Value(TextBox) = ""
    Else
        If Target.Value(TextBox) = "" Then
            Target.Value(TextBox) = Valeur
        End If
   End If
End Sub


Met le problème c'est que le programme est terminé avant que Cancel = true donc il ne remet pas le contenue précédent si je met rien dans la cellule c'est pourquoi j'aimerais mettre une pause dans le programme et qui le relancerais que quant le cancel = true je vous remercie d'avance

3 réponses

  1. Re,

    Dim Valeur As Variant
    Dim Cellule As String
    
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
        'memoire valeur cellule
        Valeur = Target.Value
        'raz cellule
        Target.Value = ""
        'memoire adresse cellule
        Cellule = Target.Address
    End Sub
    
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
        If Cellule <> "" And Target.Count = 1 Then 'pour l'ouverture fichier et selection multiple
            If Range(Cellule) = "" Then 'cellule selection precedente vide
                Range(Cellule) = Valeur 'ecriture ancienne valeur
            End If
        End If
    End Sub
    1
    1. Merci je testerais sa en début d'aprés-midi et je te dit le résultat ^^
      0
    2. @Nintendoboy59Cela marque la même erreur que précédement et cellule est égale toujours à "$DS6:$H$6" donc j'essaye de rechercher mais je trouve pas donc je continue de chercher tout en comptant sur vous ^^
      0
    3. @Nintendoboy59Re,

      quelle manip faites-vous, car je n'arrive pas a voir d'erreur ?????
      0
    4. Modérateur
      @Nintendoboy59Bonjour,

      Re-désolé pour l'incruste...
      D'où l'importance de ne jamais fusionner de cellules...
      0
    5. @pijakuBonjour,

      Je n'avais pas pense a des cellules fusionnees !!!!! La, faut voir
      0
  2. Bonjour,

    Ira mieux avec ceci:

    Dim Valeur As Variant
    Dim Cellule As Variant

    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    'memoire valeur cellule
    Valeur = Target.Value
    'raz cellule
    Target.Value = ""
    'memoire adresse cellule
    Cellule = Target.Address
    End Sub

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Cellule <> "" Then 'pour l'ouverture fichier
    If Range(Cellule) = "" Then 'cellule selection precedente vide
    Range(Cellule) = Valeur 'ecriture ancienne valeur
    End If
    End If
    End Sub
    0
    1. Je te remercie je vais tester sa tout de suite et je te dis si sa marche ou pas ^^
      0
    2. Il marche sauf à partir du If Range(Cellule) = "" Then car le débogage marque incompatibilité de type .
      0
    3. @Nintendoboy59Bonjour,

      quand vous avez l'erreur, clic sur degbugage et passez le curseur souris sur Cellule pour voir sa valeur
      0
    4. @f894009Bonjour

      Excusez-moi de ma réponse tardive (Week end chargé ^^) Mais voici la valeur de la variable: Cellule = "$DS6:$H$6"
      0
    5. @Nintendoboy59Bonjour,

      le code en l'etat est pour une cellule selectionnee, sans test pour voir si plusieurs cellules sont selectionnees.
      Je modifie le code

      A+
      0
  3. Modérateur
    Bonjour tout le monde,

    @f894009 : Pourquoi : Dim Cellule As Variant?
    L'adresse d'un Range sera toujours en String.
    J'aurais plutôt définit :
    Dim Cellule As String

    0
    1. Bonjour,

      Tout a fait
      0