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:
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
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
-
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-
-
@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 ^^
-
-
Modérateur@Nintendoboy59Bonjour,
Re-désolé pour l'incruste...
D'où l'importance de ne jamais fusionner de cellules... -
-
-
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-
-
-
@Nintendoboy59Bonjour,
quand vous avez l'erreur, clic sur degbugage et passez le curseur souris sur Cellule pour voir sa valeur -
@f894009Bonjour
Excusez-moi de ma réponse tardive (Week end chargé ^^) Mais voici la valeur de la variable: Cellule = "$DS6:$H$6" -
@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+
-
-
ModérateurBonjour 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