Worksheet_Change et Calculate

jhofman

XLDnaute Occasionnel
Bonjour le forum



j'ai développé une application qui masque des lignes restituées en fonction de ma saisie ou plus indirectment selon le résultat lié à ma saisie.

voir si dessous
en fait les données sont pas rafraichies et le code ne fonctionne pas (à fonctionné mais ne fonctionne pas !!)
need help !!


Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("H6")) Is Nothing Then Exit Sub
Calculate
With Application
         .ScreenUpdating = True
         .Calculation = xlCalculationAutomatic
         .Calculate
End With
For i = 0 To 7
    MsgBox i & " " & BDDF_PRES.Cells(8 + i, 8).value
    If Cells(8 + i, 8) = 0 Then
    
        Rows(8 + i).EntireRow.Hidden = True
    Else 
        Rows(8 + i).EntireRow.Hidden = False
    End If
Next i
End Sub
 

macsscam

XLDnaute Junior
Re : Worksheet_Change et Calculate

Bonjour jhofman,

Je n'ai pas bien compris ta question, notamment la partie "a fonctionné mais ne fonctionne pas".

Pourrais-tu nous joindre un fichier et préciser les opérations que tu as suivi, ce qui s'est passé et ce que tu attendais ?


Par ailleurs, petite précision sur le début de ton code :

Code:
With Application
         .ScreenUpdating = True
         .Calculation = xlCalculationAutomatic
         .Calculate
End With

Cette partie de code est généralement utilisée pour optimiser l'exécution de la macro mais elle comprend deux parties :
- une au début de la macro
- une à la fin

Par exemple la partie qui va au début :

Code:
With Application
'Désactivation de l'affichage utilisateur
         .ScreenUpdating = False
'Le calcul des formules sera fait à la demande (utile s'il y a beaucoup
'de formules ou si la macro modifie beaucoup de cellules sources)            
         .Calculation = xlCalculationManual   
End With

Une partie qui peut aller pendant l'exécution (ou à la fin si pertinent) :
Code:
'Permet d'obliger Excel à calculer les formules (utile uniquement si
'Application.Calculation a été mis à Manual auparavant)
Application.Calculate

Une partie à la fin qui ne sert qu'à rétablir l'état de fonctionnement normal :
Code:
With Application
         .ScreenUpdating = True
         .Calculation = xlCalculationAutomatic
End With

Bon courage,

--
Max
 

jhofman

XLDnaute Occasionnel
Re : Worksheet_Change et Calculate

bonjour macsscam et le forum

je ne sais répondre à ta question ...
mais j'ai je pense identifié la source de mon problème que j'ai résolu autrement en évitant cette source...

le problème venait je pense que dans Worksheet_Change je ne pas mettre à jour l'affichage de mes feuille (?) j'ai procédé plus classiquement en introduisant un userform de saisie avec bouton de validation.

Merci de ton aide.
 

Discussions similaires

Statistiques des forums

Discussions
312 505
Messages
2 089 070
Membres
104 016
dernier inscrit
Mokson