IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Afficher/masquer ligne si


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    dessinateur
    Inscrit en
    Septembre 2020
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : dessinateur

    Informations forums :
    Inscription : Septembre 2020
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Afficher/masquer ligne si
    Bonjour à tous,

    Je recherche une macro pour un planning "artisan"

    j'ai une feuille "d'alimentation" du planning avec tous les chantiers et dans chaque lignes le planning du chantier. chaque chantier prends 3 lignes ( ligne 1 sans intérêt pour ma demande, ligne 2 la tache et la ligne 3 le nom des artisans).

    Pour pouvoir isoler le planning d'un seul artisan, j'ai créer une feuille clone avec liaison et dans celle ci je voudrais une macro qui :

    Vérifie dans chaque ligne si le nom de l'artisan apparait et si il apparait dans la ligne au dessous (car l'artisan est dans la troisième ligne d'un chantier et je veux la ligne 2 et 3 par chantier dans le planning)

    si le nom apparait on affiche la ligne sinon on masque la ligne.

    Mais je voudrais aussi par cellule afficher ou non la valeur pour cacher le nom des autres artisans qui apparaissent dans les lignes qui s'affichent (même problème qu'au dessus, il faut que la tache qui est sur la case de dessus reste)

    une photo vaut mieux que de longs discours:

    Nom : planning.JPG
Affichages : 635
Taille : 138,8 Ko


    en orange, la liste défilante où je choisis l'artisan.
    en rouge, les lignes qui doivent se masquer.
    en jaune, les cases qui doivent apparaitre vide.

    Ca sent l'usine a gaz , j'ai des notion de programmation mais en JAVA 2 et qui datent de plus de 10 ans.

    En vous remerciant par avance

    Cordialement

  2. #2
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 240
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 240
    Points : 5 655
    Points
    5 655
    Par défaut
    Bonjour,

    En se basant sur l'image fournie
    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
    Sub Affichge_Artisan()
        Dim DerLig As Long, i As Long, Nb As Long
        Dim Artisan As String
        Dim Cell As Range
     
        Application.ScreenUpdating = False
        Artisan = Range("D3").Value
        Cells.EntireRow.Hidden = False ' on affiche toutes les lignes masquées
        DerLig = Range("D" & Rows.Count).End(xlUp).Row
        Range("G5:BG" & DerLig).Font.ColorIndex = 2 'on passe toutes les polices de la plage en blanc
        For i = 7 To DerLig Step 3
            Nb = Application.WorksheetFunction.CountIf(Range("G" & i & ":BG" & i), Artisan)
            If Nb <> 0 Then
                For Each Cell In Range("G5:BG" & DerLig)
                    Rows(i - 2).EntireRow.Hidden = True 'on masque la première ligne de chaque
                    If Cells(i, Cell.Column) = Artisan Then 'si l'artisan  existe
                        Range(Cells(i - 1, Cell.Column), Cells(i, Cell.Column)).Font.ColorIndex = 1 'on met la police en noir
                        Nb = Nb - 1 'on décompte
                        If Nb = 0 Then Exit For 'on passe au test suivant dès que tout le nombre d'artisan trouvé est atteint
                    End If
                Next Cell 'on teste la cellule suivante
            Else
                Range(i - 2 & ":" & i).EntireRow.Hidden = True 'si l'artisan recherché n'esiste pas sur la ligne, alors on masque les 3 lignes
            End If
        Next i
    End Sub
    Cdlt

Discussions similaires

  1. [XL-2010] Liste déroulante pour afficher/masquer lignes sur différents onglets
    Par Pierre et le loup dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 29/06/2018, 15h27
  2. [XL-2007] afficher masquer lignes
    Par HELOW dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 14/09/2014, 09h51
  3. Macro afficher masquer ligne condition Vlookup
    Par m.hamzaoui dans le forum Général VBA
    Réponses: 3
    Dernier message: 01/06/2014, 20h20
  4. Afficher/masquer ligne d'un tableau
    Par ramone dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 08/11/2011, 10h10
  5. Afficher/masquer ligne tableau PB IE
    Par vct68 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 05/03/2008, 23h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo