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 :

masquer les lignes


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 271
    Par défaut masquer les lignes
    bjr
    j'ai une macro dont le but est de masquer les lignes qui contient les doubles:
    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
    sub doublet()
        with sheets("swing")
            for i=5 to .range("b65535").end(xlup).row
                for j=i+1 to .range("b65535").end(xlup).row
                    if .cells(i,2)=.cells(j,2) and .cells(i,2)<>"" and .cells(j,2)<>"" then
                        dim r1,r2,mymultiplerange as range
                        set r1=.cells(i,2)
                        set r2=.cells(j,2)
                        set mymultiplerange=union(r1,r2)
                        mymultiplerange.entirerow.hidden=false
                    else
                        mymultiplerange.entirerow.hidden=true
                    end if
                 next j
             next i
        end with
    end sub.
    est ce que vous pouvez m'aider d'obtenir une macro dont le but et d'afficher les lignes qui contient les doubles et de masquer les autre.

  2. #2
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    SAlut
    Et si tu éditais ton message et que tu m'étais des indentations et les balises code pour que ça les garde ça serait pas une bonne idée ? Par ce que la c'est pas évident a lire et faut refaire les indentations a chaque fois que tu post

    Sélectionnes ton code et appuis sur le bouton #

    [Edit]
    Alors sinon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim r1 As Range, r2 As Range, mymultiplerange As Range
    Les déclaration faut répéter a chaque fois le As, sinon du déclares les 2 premiers en variant, c'est pas la but.Et il est plus "correcte" de mettre toutes tes declarations au debut, ca n'est pas obligatoire mais c'est plus "propre".

    Pour récupérer la dernière cellule non vide il vaut mieux faire comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For i = 5 To .Cells(Rows.Count, "B").End(xlUp).Row
    c'est pour une meilleur compatibilité avec les version récente d'excel

    Ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If .Cells(i, 2) = .Cells(j, 2) And .Cells(i, 2) <> "" And .Cells(j, 2) <> "" Then
    Si tes 2 cellule sont identique et que l'une d'elle seulement est vide c'est bon (puisque qu'elles sont identique l'autre est vide aussi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If .Cells(i, 2) = .Cells(j, 2) And .Cells(i, 2) <> "" Then
    Tu peux egalement remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
                    Set r1 = .Cells(i, 2)
                    Set r2 = .Cells(j, 2)
                    Set mymultiplerange = Union(r1, r2)
    Par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                    Set mymultiplerange = Range(.Cells(i, 2), .Cells(j, 2))
    Tu peux donc supprimer r1 et r2 qui ne servent plus, dans la declaration Dim du debut

    Attention ton raisonnement est pas bon dans cette parti du code(je viens de m'en rendre compte)
    Je pense que tu cherche plutot a faire quelque chose comme ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
                    'Set r1 = .Cells(i, 2)
                    'Set r2 = .Cells(j, 2)
                    'Set mymultiplerange = Union(r1, r2)
                    Set mymultiplerange = Range(.Cells(i, 2), .Cells(j, 2))
                If .Cells(i, 2) = .Cells(j, 2) And .Cells(i, 2) <> "" And .Cells(j, 2) <> "" Then
                    mymultiplerange.EntireRow.Hidden = False
                Else
                    mymultiplerange.EntireRow.Hidden = True
                End If
    En voila deja un bout de traité, pour ton probleme je regarde mais je pense qu'il suffit d'inversé le If final
    [/Edit]


    Merci
    A++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  3. #3
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 271
    Par défaut
    bjr
    le problème est le voici
    j'ai un tableau se forme d'une liste des saisis et je veux une macro dont le but est : afficher les n° en saisi en double et masquer les non doublet.
    la saisie se fait a partir de la cellule B5.
    MERCI BCP.

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

Discussions similaires

  1. [2K8] Masquer les lignes à 0 dans XLS
    Par tiboleo dans le forum SSAS
    Réponses: 1
    Dernier message: 20/08/2010, 17h39
  2. masquer les lignes listbox
    Par abouhossam dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 12/11/2008, 14h37
  3. [BO6.5.1] Masquer les lignes vides
    Par Herlece dans le forum Deski
    Réponses: 3
    Dernier message: 06/08/2008, 12h03
  4. Supprimer/Masquer les lignes vides
    Par ouskel'n'or dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 23/05/2007, 13h13
  5. masquer les lignes dans une zone si une cellule de la ligne est vide
    Par keguira dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/11/2006, 19h21

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