Besoin d'un petit coup de pouce svp! [Résolu]

Signaler
Messages postés
16
Date d'inscription
vendredi 29 septembre 2006
Statut
Membre
Dernière intervention
31 janvier 2007
-
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
-
Bonjour,
Cela fais 1 semaine que je découvre les macros Excel et donc Visual basic.
J'aimerais créer une macro qui masque les lignes des céllules vide ou =0 d'une colonne

Pour cela j'ai écris ce code :

Sub MasqueLigneVide()


    Application.ScreenUpdating = False
    ActiveSheets = "Reporting-mod"
    For i = 6 To 244
    Range("D" & i).Select
        If SelectCell = 0 Then
        ActiveCell.RowHeight = 0
        End If
        If SelectCell = "Préoccupant" Then
        End If
    Next i
    For l = 252 To 490
    Range("D" & l).Select
        If SelectCell = 0 Then
        ActiveCell.RowHeight = 0
        End If
        If SelectCell = "Critique" Then
        End If
    Next l
End Sub




La macro me supprime toute les lignes sans distinction. Voila la formule que j'ai dans les céllules de ma colonnes test :
SI(ET(C6>10;C6<20);"Préoccupant";SI(C6>20;"0";SI(C6<10;"0")))

Je n'arrive pas à voir pourquoi il me supprime tout, pourriez-vous m'adiez, m'aiguillez?

Merci par avance!

3 réponses

Messages postés
8
Date d'inscription
mardi 14 novembre 2006
Statut
Membre
Dernière intervention
19 avril 2011

Bonjour,

il faut que tu remplaces ton SelectCell par Range("D" & i).Value comme suit et alors c'est bon.

Bonne journée
Kattalin

Application.ScreenUpdating = False
    ActiveSheets = "Reporting-mod"
    For i = 6 To 244
    Range("D" & i).Select
        If  Range("D" & i).Value = 0 Then
        ActiveCell.RowHeight = 0
        End If
         Next i
        
 
    For l = 252 To 490
    Range("D" & l).Select
        If  Range("D" & l).Value = 0 Then
        ActiveCell.RowHeight = 0
        End If
    
    Next l

Kattalin
Messages postés
16
Date d'inscription
vendredi 29 septembre 2006
Statut
Membre
Dernière intervention
31 janvier 2007

Ok un grand grand GRAND merci Kattalin.

J'avais en plus dans ma séléction des céllules ayant pour valeur #Ref qui fesait merdé le programme, je les ai forcé à 0 et éffectivement ta raison Kattalin tout marche bien. Vraiment merci!

Manu
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
Plutôt que d'utiliser ActiveCell.RowHeight = 0
tu pourrais utiliser
Rows(i).Hidden = True

Comme ça, tu peux éventuellement les remettre à False par code ou manuellement pour les réafficher sans avoir à redéfinir la hauteur de chaque ligne.

MPi