Pause dans le programme non limité avec une condition

Résolu
Nintendoboy59 Messages postés 17 Statut Membre -  
f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   -
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. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    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. Nintendoboy59 Messages postés 17 Statut Membre
       
      Merci je testerais sa en début d'aprés-midi et je te dit le résultat ^^
      0
    2. Nintendoboy59 Messages postés 17 Statut Membre > Nintendoboy59 Messages postés 17 Statut Membre
       
      Cela 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. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717 > Nintendoboy59 Messages postés 17 Statut Membre
       
      Re,

      quelle manip faites-vous, car je n'arrive pas a voir d'erreur ?????
      0
    4. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773 > Nintendoboy59 Messages postés 17 Statut Membre
       
      Bonjour,

      Re-désolé pour l'incruste...
      D'où l'importance de ne jamais fusionner de cellules...
      0
    5. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717 > pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention  
       
      Bonjour,

      Je n'avais pas pense a des cellules fusionnees !!!!! La, faut voir
      0
  2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    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. Nintendoboy59 Messages postés 17 Statut Membre
       
      Je te remercie je vais tester sa tout de suite et je te dis si sa marche ou pas ^^
      0
    2. Nintendoboy59 Messages postés 17 Statut Membre
       
      Il marche sauf à partir du If Range(Cellule) = "" Then car le débogage marque incompatibilité de type .
      0
      1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717 > Nintendoboy59 Messages postés 17 Statut Membre
         
        Bonjour,

        quand vous avez l'erreur, clic sur degbugage et passez le curseur souris sur Cellule pour voir sa valeur
        0
      2. Nintendoboy59 Messages postés 17 Statut Membre > f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention  
         
        Bonjour

        Excusez-moi de ma réponse tardive (Week end chargé ^^) Mais voici la valeur de la variable: Cellule = "$DS6:$H$6"
        0
      3. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717 > Nintendoboy59 Messages postés 17 Statut Membre
         
        Bonjour,

        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. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    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. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Bonjour,

      Tout a fait
      0