With Worksheets("data"), quel macro à utiliser

  • Initiateur de la discussion Initiateur de la discussion news
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

news

XLDnaute Impliqué
Bonjour à tous du forum,

j'utilise la macro suivante dans This Workbook :

Private Sub Workbook_BeforeClose(Cancel As Boolean)
With Worksheets("data")
If Range("G4") = "" Or Range("G4") < 0 Then
réponse = MsgBox("verifiy", vbInformation)
Else
Worksheets("Feuil2").Activate
ActiveWorkbook.Save
Application.Quit
End If
End With
End Sub


s'il y a une valeur dans G4, par exemple le montant 5,
Msgbox n'est pas affiché, si on se trouve sur la feuille("data").

Mais si on se trouve sur la feuille("Feuil2") et on veut fermer le fichier en cliquant sur x
la Msgbox est affiché !!


Est-ce que la formule : With Worksheets("data")
ne devrait activer une macro que pour la feuille("data") ?

Comment résoudre ?

je n'avance pas,
 
Dernière édition:
Re : With Worksheets("data"), quel macro à utiliser

Bonjour News

Lorsque tu utiises un bloc d'instructions "with", il faut faire précéder les objets concernés par un point comme ci-dessous. Dans le cas contraire, pour le cas présent, les instructions seront appliquées à la feuille active...

Code:
With Worksheets("data")
    If [COLOR="Red"][B].[/B][/COLOR]Range("G4") = "" Or [COLOR="red"][B].[/B][/COLOR]Range("G4") < 0 Then
End With

bonne journée
@+
 
Re : With Worksheets("data"), quel macro à utiliser

et bien voilà,

c'est si simple que tout, d'y mettre que .

et qu'est-ce que j'ai cherché et pourquoi auparavant a quand même affiché Masgbox,

merci encore Pierrot93 pour astuce,

news
 
Re : With Worksheets("data"), quel macro à utiliser

Salut, msgbox peut être appellé de n'importe où,


exemple:

With Sheets("feuil1") ' avec la feuille 1

.range("A1").Value ="Bonjour" ' je fais cette Action dan la cellule a1 de cette feuille

end with

équivaut à Sheets("Feuil1").Range("A1").value = "Bonjour"

si tu mets with WorkSheets("Feuil1")

et ensuite
Range("A1").value, tu t'adresse à la feuille active or si ce n'est pas la bonne message d'erreur!
l'avantage de procéder ainsi, c'est que tu peux peut traiter plusieurs actions dans une feuille sans l'avoir sélectionné au préalable.

et ton code est plus structuré donc plus lisible.

Cordialement Gilbert
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
15
Affichages
818
Réponses
4
Affichages
742
Retour