Pause dans le programme non limité avec une condition

Résolu/Fermé
Nintendoboy59 Messages postés 16 Date d'inscription jeudi 28 mai 2015 Statut Membre Dernière intervention 29 juin 2015 - Modifié par pijaku le 29/05/2015 à 09:30
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 - 3 juin 2015 à 10:21
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 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
1 juin 2015 à 10:09
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 jeudi 28 mai 2015 Statut Membre Dernière intervention 29 juin 2015
1 juin 2015 à 12:35
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 jeudi 28 mai 2015 Statut Membre Dernière intervention 29 juin 2015 > Nintendoboy59 Messages postés 16 Date d'inscription jeudi 28 mai 2015 Statut Membre Dernière intervention 29 juin 2015
1 juin 2015 à 14:05
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 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709 > Nintendoboy59 Messages postés 16 Date d'inscription jeudi 28 mai 2015 Statut Membre Dernière intervention 29 juin 2015
1 juin 2015 à 15:00
Re,

quelle manip faites-vous, car je n'arrive pas a voir d'erreur ?????
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 751 > Nintendoboy59 Messages postés 16 Date d'inscription jeudi 28 mai 2015 Statut Membre Dernière intervention 29 juin 2015
1 juin 2015 à 15:16
Bonjour,

Re-désolé pour l'incruste...
D'où l'importance de ne jamais fusionner de cellules...
0
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709 > pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024
1 juin 2015 à 15:25
Bonjour,

Je n'avais pas pense a des cellules fusionnees !!!!! La, faut voir
0
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
28 mai 2015 à 18:29
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 jeudi 28 mai 2015 Statut Membre Dernière intervention 29 juin 2015
29 mai 2015 à 09:11
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 jeudi 28 mai 2015 Statut Membre Dernière intervention 29 juin 2015
29 mai 2015 à 09:30
Il marche sauf à partir du If Range(Cellule) = "" Then car le débogage marque incompatibilité de type .
0
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709 > Nintendoboy59 Messages postés 16 Date d'inscription jeudi 28 mai 2015 Statut Membre Dernière intervention 29 juin 2015
29 mai 2015 à 10:50
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 jeudi 28 mai 2015 Statut Membre Dernière intervention 29 juin 2015 > f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024
1 juin 2015 à 09:36
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 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709 > Nintendoboy59 Messages postés 16 Date d'inscription jeudi 28 mai 2015 Statut Membre Dernière intervention 29 juin 2015
1 juin 2015 à 10:07
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 jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 751
29 mai 2015 à 11:00
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 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
29 mai 2015 à 11:02
Bonjour,

Tout a fait
0