XL 2010 Erreur masquage de lignes et problème impression

Orson83

XLDnaute Impliqué
Bonjour la communauté,
Je rencontre plusieurs problèmes liés au masquage de lignes.
En effet, dans un processus étape par étape, je suis obligé de masquer des lignes avant d'arriver à la dernière étape.
Du coup, un sous total affiche 0, et je n'arrive pas à faire disparaître les lignes non saisies à l'impression.
J'ai préparé un fichier exemple avec des macro que je n'arrive pas à corriger.
Merci pour votre aide.
Bonne journée.
Tchotchodu31
 

Pièces jointes

  • Masquer lignes et print V1.xlsm
    34.2 KB · Affichages: 10
Solution
Bonjour

Je ne vois pas de quoi du parles

Les lignes 16 et 17 sont masquées sur leur colonne E est vide dans Controle, cela de façon totalement indépendante au masquage lié au nombre de locations dans Worksheet_Change

La ligne 50 est sans doute à ne pas masquer quand on choisit 12 locations
VB:
Private Sub Worksheet_Change(ByVal Target As Range)

If Intersect(Target, Range("E37")) Is Nothing Then Exit Sub

Application.ScreenUpdating = False
SelectNbLoc = Range("E37").Value

x = Left(SelectNbLoc, InStr(SelectNbLoc, " ") - 1)
y = 38 + x
Range("38:49").EntireRow.Hidden = False 'Masque des lignes
If y < 50 Then Range(y & ":49").EntireRow.Hidden = True 'Masque des lignes
Application.ScreenUpdating = True

End Sub

Orson83

XLDnaute Impliqué
RE
Le code traitait les 3 blocs et dans ce cas la ligne 51 n'est pas masquée
Merci Chris pour ces nouvelles modifications de code.

Le SOUS.TOTAL a du sens car je souhaite que les lignes "location mensuelle" (39:49) non renseignées ou a 0 soient masquées pour une utilisation propre du document.

Concernant les résultats de la feuille 2, ils doivent tous être juste en permanence même si la ligne 51 (feuille 1) est masquée. La cellule E7 de la feuille 2 affiche "0 €" à l'étape 1, 2 et 4. du processus étape par étape.

En effet, mon classeur est beaucoup plus complexe que l'exemple, car en réalité, il traite des données de 20 pages. Ces données peuvent être comparées à toutes les étapes de saisie, y compris dans d'autres pages.

Est-ce-que du code VBA permettrait de forcer le résultat du SOUS.TOTAL de la cellule E51 (feuille 1) dans la cellule E7 (feuille 2) même si la ligne 51 est masquée ?

Je remets un exemple dans ce post.

Merci pour ta patience.
 

Pièces jointes

  • Masquer lignes et print V2.xlsm
    35.6 KB · Affichages: 3

chris

XLDnaute Barbatruc
RE

Le SOUS.TOTAL a du sens car je souhaite que les lignes "location mensuelle" (39:49) non renseignées ou a 0 soient masquées pour une utilisation propre du document.

Si les lignes n'ont pas de valeur autre que 0, SOMME ou SOUS.TOTAL ne change rien mais SOMME résout le problème en feuille 2

Si la cellule contient SOUS.TOTAL elle vaut 0 si elle somme des lignes masquées et VBA lira donc 0
 

Orson83

XLDnaute Impliqué
RE

Le SOUS.TOTAL a du sens car je souhaite que les lignes "location mensuelle" (39:49) non renseignées ou a 0 soient masquées pour une utilisation propre du document.

Si les lignes n'ont pas de valeur autre que 0, SOMME ou SOUS.TOTAL ne change rien mais SOMME résout le problème en feuille 2

Si la cellule contient SOUS.TOTAL elle vaut 0 si elle somme des lignes masquées et VBA lira donc 0
Merci pour ton aide précieuse et ta patience.
Pour le reste, je vais m'adapter.
Tchotchodu31
 

Orson83

XLDnaute Impliqué
Bonjour à tous,
Je ré-ouvre ce post car je viens de m'apercevoir que le nombre de ligne à masquer ne correspond pas à la valeur du Select quand on choisi 12 locations. En effet, les lignes 16 et 17 disparaissent.
Merci pour votre aide à la correction de la macro en feuille 1 qui est jointe à ce post.
Tchotchodu31
 

Pièces jointes

  • Cacher des lignes.xlsm
    22.6 KB · Affichages: 1

chris

XLDnaute Barbatruc
Bonjour

Je ne vois pas de quoi du parles

Les lignes 16 et 17 sont masquées sur leur colonne E est vide dans Controle, cela de façon totalement indépendante au masquage lié au nombre de locations dans Worksheet_Change

La ligne 50 est sans doute à ne pas masquer quand on choisit 12 locations
VB:
Private Sub Worksheet_Change(ByVal Target As Range)

If Intersect(Target, Range("E37")) Is Nothing Then Exit Sub

Application.ScreenUpdating = False
SelectNbLoc = Range("E37").Value

x = Left(SelectNbLoc, InStr(SelectNbLoc, " ") - 1)
y = 38 + x
Range("38:49").EntireRow.Hidden = False 'Masque des lignes
If y < 50 Then Range(y & ":49").EntireRow.Hidden = True 'Masque des lignes
Application.ScreenUpdating = True

End Sub
 

Discussions similaires

Réponses
2
Affichages
380
Compte Supprimé 979
C
Réponses
6
Affichages
250

Membres actuellement en ligne

Statistiques des forums

Discussions
312 338
Messages
2 087 397
Membres
103 536
dernier inscrit
komivi