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 :

masquage de lignes résultat aléatoire [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Inscrit en
    Décembre 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 4
    Points : 4
    Points
    4
    Par défaut masquage de lignes résultat aléatoire
    Bonjour a tous.

    j'utilise la macro suivante pour masquer des lignes
    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
    Private Sub CommandButton1_Click()
    '
    Application.ScreenUpdating = False
    Range("D3:D400").Select
    For Each Cell In Selection
    Cpt = 0
    For i = 0 To 11
    If Cell.Offset(0, i) <> "" Then
    Cpt = Cpt + 1
    End If
    Next
    If Cpt = 0 Then
    Cell.EntireRow.Hidden = True
    End If
    Next
    Application.ScreenUpdating = True
    End Sub
    Mon souci est que si j'ai des valeurs dans les colonnes A,B ou C mais pas dans la colonne D l'es lignes sont bien masquées mais si j'ai des valeurs dans les colonnes apres la colonne D ( E et suivantes) les lignes ne se masquent plus !!!

    si quelqu'un peut m'aider a comprendre ??
    merci d'avance

  2. #2
    Membre expérimenté
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    673
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 673
    Points : 1 580
    Points
    1 580
    Par défaut
    Bonjour,
    Ce que tu décris est exactement ce qui est codé dans la macro : ton code compte les cellules renseignées entre la colonne D et la colonne O et si ce compteur à égal à 0, il masque la ligne.
    Quel est exactement ton problème ?

  3. #3
    Candidat au Club
    Inscrit en
    Décembre 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 4
    Points : 4
    Points
    4
    Par défaut mon probleme
    re bonjour, etant novice en VB je ne comprends pas ou sont definies les zones de controle. je veux avec mon ( range) definir uniquement la colonne a controler et ne pas tenir compte des autres colonnes !
    merci de m'expliquer ou tu vois que les colonnes controlées sot de D a O ?

    j'ai besoin d'apprendre
    a te lire
    Yves

  4. #4
    Membre expérimenté
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    673
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 673
    Points : 1 580
    Points
    1 580
    Par défaut
    Re,

    La ligne suivante sélectionne toutes les cellules de D3 à D400 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("D3:D400").Select
    Et cette ligne prend chacune de ces cellules une par une :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For Each Cell In Selection
    Enfin dans la boucle suivante, tu contrôles toutes les cellules de 0 à 11 colonnes à droite de ta cellule Cell, soit de la colonne D à O, et tu comptes celles qui ne sont pas vides :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For i = 0 To 11
       If Cell.Offset(0, i) <> "" Then
          Cpt = Cpt + 1
       End If
    Next
    Est-ce que ça répond à ton attente ?

  5. #5
    Candidat au Club
    Inscrit en
    Décembre 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 4
    Points : 4
    Points
    4
    Par défaut bien compris
    merci beaucoup pour cet eclairage
    donc je mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For i = 0 To 0
    If Cell.Offset(0, i) <> "" Then
    Cpt = Cpt + 1
    End If
    Next
    ok merci ca marche
    Yves

  6. #6
    Membre expérimenté
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    673
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 673
    Points : 1 580
    Points
    1 580
    Par défaut
    Ton raisonnement est juste, mais tu peux aussi faire beaucoup plus simple en supprimant la boucle devenue inutile :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Range("D3:D400").Select
    For Each Cell In Selection
       If Cell.Value <> "" Then
          Cell.EntireRow.Hidden = True
       End If
    Next Cell

  7. #7
    Candidat au Club
    Inscrit en
    Décembre 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 4
    Points : 4
    Points
    4
    Par défaut parfait
    Merci beaucoup c'est vrai c'est plus simple
    bonne continuation
    Yves

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 24/05/2007, 16h05
  2. loadvars : résultat aléatoire
    Par Pallas4 dans le forum Flash
    Réponses: 2
    Dernier message: 14/08/2006, 12h36
  3. Réponses: 3
    Dernier message: 07/04/2006, 10h40
  4. nb ligne résultat
    Par GMI dans le forum SQL
    Réponses: 3
    Dernier message: 28/09/2004, 12h23

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