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 :

Macro afficher et cacher


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    361
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2010
    Messages : 361
    Par défaut Macro afficher et cacher
    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
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    https://www.developpez.net/forums/d8...s-discussions/

    + lire la dernière phrase de ma signature.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    361
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2010
    Messages : 361
    Par défaut
    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

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    Que retourne selon toi
    ?
    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 :
    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
    regarde maintenant la valeur retournée par ton msgbox ...

    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

  5. #5
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    ignorer (mauvaise manip)

  6. #6
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    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 :
    cela ne fonctionne pas
    - Une erreur dénoncée ? Et si oui laquelle et sur quelle ligne ?
    - un résultat différent de celui attendu ? -->> expose alors l'un et l'autre

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Macro afficher / cacher onglet de mon choix d'un fichier Excel
    Par aurelienclearsheet dans le forum Excel
    Réponses: 2
    Dernier message: 01/10/2014, 21h12
  2. Ne pas afficher ou cacher un texte
    Par NPortmann dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 15/12/2006, 10h27
  3. [MFC] Afficher et cacher une ToolBar
    Par Philippe320 dans le forum MFC
    Réponses: 4
    Dernier message: 04/07/2006, 12h37
  4. Réponses: 1
    Dernier message: 28/09/2005, 23h37
  5. [VB6] Datagrid afficher ou cacher des colonnes par code
    Par soazig dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 06/02/2003, 17h19

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