Ajouter une condition à un code VBA

  • Initiateur de la discussion Initiateur de la discussion Jiheme
  • 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 !

Jiheme

XLDnaute Accro
Bonjour le forum

Je voudrais que la partie de mon code en rouge gras ne s'exécute que si la date qui est en H2 est dépassée

Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
On Error Resume Next
If Sh.Index = 4 Then Range("M41") = Sheets("Data").Range("B12")

[COLOR=red][B]If Sh.Index > 4 Then Range("M41") = Sheets(Sh.Index - 1).Range("F49")[/B][/COLOR]

End Sub

Merci
A+
 
Re : Ajouter une condition à un code VBA

Slt Jiheme,

Essaye comme ceci...
Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
On Error Resume Next
If Sh.Index = 4 Then Range("M41") = Sheets("Data").Range("B12")

If Now > Range("H2") Then
If Sh.Index > 4 Then Range("M41") = Sheets(Sh.Index - 1).Range("F49")
End If

End Sub
Cdt, Hulk.
 
Dernière édition:
Re : Ajouter une condition à un code VBA

Bonjour
Peut-être :
Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
On Error Resume Next
If Sh.Index = 4 Then Range("M41") = Sheets("Data").Range("B12")

If Sh.Index > 4 [B][COLOR="Red"]And Range("H2") < Now()[/COLOR][/B] Then Range("M41") = Sheets(Sh.Index - 1).Range("F49")

End Sub
Bonne journée.
ROGER2327
 
Re : Ajouter une condition à un code VBA

Re,

Ah bon ? Peut-être remplacer le [H12] par Range("H12") comme ceci
Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
On Error Resume Next
If Sh.Index = 4 Then Range("M41") = Sheets("Data").Range("B12")

If Now > Range("H2") Then
If Sh.Index > 4 Then Range("M41") = Sheets(Sh.Index - 1).Range("F49")
End If

End Sub
Mais je doute qu'il y aille erreur sur ce que tu dis...

Bon de toutes manières, c'est vrai que la version à Roger est mieux écrite.

Cdt, Hulk.
 
Re : Ajouter une condition à un code VBA

Re...
L'écriture du code de Hulk me semble correcte... ...en théorie. J'ai déjà eu le même problème d'imbrication de conditions avec terminaison implicite. En écrivant
Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
   On Error Resume Next
   If Sh.Index = 4 Then Range("M41") = Sheets("Data").Range("B12")

   If Now > Range("H2") Then
      If Sh.Index > 4 Then 
         Range("M41") = Sheets(Sh.Index - 1).Range("F49")
      End If
   End If

End Sub
tout rentre dans l'ordre.
Mais on ne devrait pas être obligé de faire cela : le plus souvent, l'écriture de Hulk est acceptée. Mystère...
Par contre, le fait d'écrire [H12] ou Range("H12") ne devrait pas être critique.​
Bonne journée.
ROGER2327
 
Re : Ajouter une condition à un code VBA

Bonjour Roger, Hulk le Forum

Excusez moi de n'avoir pas répondu plutôt, mais hier ophtalmo et opticien ont occupés ma journée, il faut bien changer de lunettes de temps en temps pour continuer à profiter d'XLD.

Effectivement avec Range("h2") ça marche.

Encore merci à vous deux

A+
 
Re : Ajouter une condition à un code VBA

Bonjour tout le monde,

Ce n'est pas le range("h2") qui a éliminé l'erreur, c'est le end if que roger a ajouté.
Le endif n'est pas obligatoire si l'instruction à exécuter après le then est écrit sur la même ligne.
S'il n'y a rien après le then il faut le mettre que le compilateur sache où s'arretent les instructions à exécuter en cas de test vrai.
ex:

if a>b then b=0

ou

if a>b then
b=0
end if

eric
 
Re : Ajouter une condition à un code VBA

Bonjour Eric

Merci de l'explication, puisque tu as l'air didactique peux tu m'expliquer l'utilisation des [ ] en VBA comme dans le premier exemple de Hulk, qu'il a du modifier car je ne le vois plus

A+
 
- 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
4
Affichages
521
Réponses
4
Affichages
754
Retour