declanchement d'une macro si cellule vide

  • Initiateur de la discussion Marion
  • Date de début
M

Marion

Guest
Bonjour au forum

Vu mon soucis de hier je pense avoir une solution

Il me faudrait un petit code

Sur ma feuille planning en cellule B1 une date

je supprime cette date tous les jours donc

Lorsque je supprime cette date un Msgbox apparaît me demandant si je veux declancher la macro

Merci de votre aide

A+Marion
 

Maxoverfred

XLDnaute Occasionnel
Sur ta feuille tu as l'évènement on change et tu pourrais pas exemple faire ceci


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
dim msg as string
if thisworkbook.worksheets('sheet1').range('B1').value='' then
msg= MsgBox('Voulez vous lancer la macro ZZé,vbYesNo,'Validation')
If msg1 = vbYes Then
' Appeler la macro
else
end if
end if
End Sub


Reste que cela va se déclencher assez souvent.. faut voir dans ton cas précis..
 
M

Marion

Guest
Re

merci de ta reponje et bonjour a toi

il y a un problème je declanche l'application dans toutes les cellules

Je joins un fichier

L'idée est que si l'on modifie b1 je déclanche l'application

Merci

A+Marion [file name=marion12.zip size=8697]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/marion12.zip[/file]
 

Pièces jointes

  • marion12.zip
    8.5 KB · Affichages: 19
  • marion12.zip
    8.5 KB · Affichages: 14
  • marion12.zip
    8.5 KB · Affichages: 15

Dan

XLDnaute Barbatruc
Bonjour Marion, Maxoverfred,

1. Comme je te l'ai dit Lien supprimé, attention à ta déclaration de variable. Dim res as Date n'est pas correct. Il te faut mettre
Code:
Dim res as String

2. Dans le code de ton fichier que t'as donné Maxoverfred, tu as omis de mettre
Code:
=''
après le Value.

3. Si dessous une solution qui devrait te convenir.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim res As String
With ThisWorkbook.Worksheets('planning')
Select Case Range('B1').Value
Case Is = ''
res = MsgBox('Voulez vous lancer la macro ZZé', vbYesNo)
If res = vbYes Then
' Appeler la macro
Else
End If
Case Else: End
End Select
End With
End Sub

Bon travail.

;)
 
M

Marion

Guest
Re

bonjour Dan

merci de cette réponse je suis toujours sur le même sujet que hier

en pernant cette solution je pense éviter le problème que j'ai rencontré

je viens de mettre ta macro dans le code de la feuille mais elle ne fonctionne pas

Si tu peux regarder

merci encore


A+Marion
 
M

Marion

Guest
Re

Dan je te renvoie le fichier avec ta macro mais elle se declache sur n'inporte quelle cellule

si tu peux regarder

A+Marion [file name=marion12_20050809161551.zip size=8900]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/marion12_20050809161551.zip[/file]
 

Pièces jointes

  • marion12_20050809161551.zip
    8.7 KB · Affichages: 12

Dan

XLDnaute Barbatruc
Oups Marion,

Milles excuses !! J'avais pas vérifié assez je crois. Hum ...

La macro :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim res As String
With ThisWorkbook.Worksheets('planning')
Select Case Range('B1').Value
Case Target
res = MsgBox('Voulez vous lancer la macro ZZé', vbYesNo)
If res = vbYes Then
' Appeler la macro
Else
End If
Case Else: End
End Select
End With
End Sub

Bon là cela doit aller.

;)
 
M

Marion

Guest
Re

Il est vrai que cela fonctionne trés bien maintenant , mais je pense mettre trés mal exprimée une fois de plus

C'est moi qui m'excuse car c'est au moment ou je me repositionne sur la cellule que le message doit apparaître


Vraiment désolée

Merci a toi

A+Marion
 
M

Marion

Guest
Re

Merci dan pour ta patience je viens de trouver un code sur le forum avec la recheche aprés adaptation il fonctionne bien
voci ce code


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim res As String
If Not Application.Intersect(Target, Range('b1')) Is Nothing Then
res = MsgBox('veux tu tranferer les données du planning vers saisie quantité en vue de tes rendements ', vbYesNo)
If res = vbNo Then
Exit Sub
Else
If res = vbYes Then
Application.ScreenUpdating = False
Sheets('PLANNING').Select
Application.Run ''PLANIFICATION ERIC.xls.XLS'!transfert_saisie_quantite'
Sheets('SAISIE QUANTITE').Select

End If
End If
End If
End Sub

excuse moi encore pour ne pas t'avoir donnée la bonne route
mais je voulais bien au départ declacher la macro si la cellule B1 ='' mais au fil du temps avec tes cnseil je me suis aperçue que cela ne pouvait pas fonctionner

Gros bisous a toi

A+Marion

PS: je poste encore un nouveau message car j'ai encore un soucis décidément les femmes
 

Discussions similaires

Statistiques des forums

Discussions
312 801
Messages
2 092 243
Membres
105 312
dernier inscrit
DD07