Bonjour,
J'ai crée macro pour afficher et masquer les lignes.
Petit problème : je l'ai adapté sur un tableau plus complexe et cela ne fonctionne pas.
Il y a des MFC.
Quelqu'un peut m'aider ?
Merci.
Bonne journée
Bonjour,
J'ai crée macro pour afficher et masquer les lignes.
Petit problème : je l'ai adapté sur un tableau plus complexe et cela ne fonctionne pas.
Il y a des MFC.
Quelqu'un peut m'aider ?
Merci.
Bonne journée
https://www.developpez.net/forums/d8...s-discussions/
+ lire la dernière phrase de ma signature.
Problème..... lorsque je clic sur les boutons, ça ne fonctionne pas.
Mes colonnes vont de A à R et ma première MFC commence à la colonne E
MFC en colonnes E, H, K, N et R (avec calcul de dates dans ces colonnes).
voici le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 Sub Masquer() Dim MasquerLigneVide, rgPlage As Range, rgDer As Range, tablo Dim i&, j&, Coul&, pasCoul&, MFC1, Texte$ pasCoul = 18 * RGB(255, 255, 255) MasquerLigneVide = MsgBox("Voulez vous aussi masquer les lignes vides ?", vbQuestion + vbYesNo + vbDefaultButton1) = vbYes Application.ScreenUpdating = False With Worksheets("CDI") .Activate: afficher Set rgDer = .Columns("a:r").Find(What:="*", After:=.Range("a1"), LookIn:=xlValues, LookAt:= _ xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False) .Range(.Cells(rgDer.Row, 1), .Cells(.Rows.Count, 18)).Borders.LineStyle = xlLineStyleNone .Range(.Cells(1, 1), .Cells(.Rows.Count, 18)).Borders.LineStyle = xlLineStyleNone .Range("a1:r" & rgDer.Row).Borders.LineStyle = xlContinuous tablo = .Range("a1:r" & rgDer.Row) For i = rgDer.Row To 1 Step -1 If MasquerLigneVide Then Texte = "" For j = 1 To 18: Texte = Texte & IIf(IsError(tablo(i, j)), "z", tablo(i, j)): Next j If Texte = "" Then .Cells(i, j).EntireRow.Hidden = True End If If Not (MasquerLigneVide And Texte = "") Then Coul = 0 For j = 1 To 18: Coul = Coul + .Cells(i, j).Interior.Color: Next j MFC1 = tablo(i, 5) <> "" And tablo(i, 18) = "" And tablo(i, 5) < Date If Coul <> pasCoul Or MFC1 Then .Cells(i, j).EntireRow.Hidden = False Else .Cells(i, j).EntireRow.Hidden = True End If Next i End With
Bonjour
Que retourne selon toi
?
Code : Sélectionner tout - Visualiser dans une fenêtre à part MasquerLigneVide
tel qu'invoqué, il "estime" à True ou False la valeur d'une booléenne. o = false et toute autre valeur = True
Regarde ce que fait ceci :
regarde maintenant la valeur retournée par ton msgbox ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 for i = 0 to 4 if i then msgbox "coucou" else msgbox "pas vrai" next
Edit : ah pardon ! je n'avais pas bien vu (code non mis entre balises code) la ligne disant
Code : Sélectionner tout - Visualiser dans une fenêtre à part MasquerLigneVide = MsgBox("Voulez vous aussi masquer les lignes vides ?", vbQuestion + vbYesNo + vbDefaultButton1) = vbYes
J'ai beau écarquiller mes yeux (code non présenté indenté entre balises code), je ne vois personnellement aucune erreur que génèrerait le code présenté. Sauf si (bien évidemment) rgDer est nothing après ta recherche (mais tu l'aurais dit, n'est-ce-pas ? ...).
Du coup : explique en détail ce que tu veux exactement dire par :
- Une erreur dénoncée ? Et si oui laquelle et sur quelle ligne ?cela ne fonctionne pas
- un résultat différent de celui attendu ? -->> expose alors l'un et l'autre
Partager