Pause dans le programme non limité avec une condition

Résolu
Nintendoboy59 Messages postés 16 Date d'inscription   Statut Membre Dernière intervention   -  
f894009 Messages postés 17277 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

f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
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
Nintendoboy59 Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
 
Merci je testerais sa en début d'aprés-midi et je te dit le résultat ^^
0
Nintendoboy59 Messages postés 16 Date d'inscription   Statut Membre Dernière intervention   > Nintendoboy59 Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
 
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
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713 > Nintendoboy59 Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
 
Re,

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

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

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

quand vous avez l'erreur, clic sur degbugage et passez le curseur souris sur Cellule pour voir sa valeur
0
Nintendoboy59 Messages postés 16 Date d'inscription   Statut Membre Dernière intervention   > f894009 Messages postés 17277 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
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713 > Nintendoboy59 Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
 
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
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
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
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

Tout a fait
0