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 :

VBA - Masquer des lignes sous condition


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Etudiant en Alternance
    Inscrit en
    Octobre 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Etudiant en Alternance
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2020
    Messages : 5
    Par défaut VBA - Masquer des lignes sous condition
    Bonjour,

    Les lignes ci-dessous, font parties d'un ancien tableau Excel de 2018 (INITIALE) et ce que je souhaiterai (FINALE).

    Le problème est le suivant : je n'arrive pas en copiant et modifiant les chiffres seulement, à ce qu'elle fonctionne dans le nouveau tableau Excel que j'ai effectué.

    Je pense que cela est dû à une fonction particulière dans le nommage des feuilles et/ou fonction de macro car lorsque j'effectue ces changements dans l'ancien tableau cette dernière marche.

    Pourriez-vous m'aider ou m'informer sur certaines de ces fonctions ? Y-a-t-il un autre moyen de le coder sur VBA ?

    Merci d'avance

    

    INITIALE : "Feuil20.MasquerLignesVides"

    
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub MasquerLignesVides()
     
    For i = [A103].End(xlUp).Row To 20 Step -1
     
    If Application.WorksheetFunction.CountBlank(Cells(i, 5)) = 1 Then
     
    Rows(i).EntireRow.Hidden = True
     
    End If
     
    End Sub
    FINALE : "Masquerleslignesvides"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub Masquerleslignesvides()
     
    For i = [A646].End(xlUp).Row To 19 Step -1
     
    If Application.WorksheetFunction.CountBlank(Cells(i, 6)) = "" Then
     
    Rows(i).EntireRow.Hidden = True
     
    End If
     
    End Sub

  2. #2
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    bonjour
    essayer avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Option Explicit
    Sub Masquerleslignesvides()
    Dim derligne As Long
    Dim F As Worksheet
    Set F = Sheets("Feuil1")
    derligne = F.Range("F" & Rows.Count).End(xlUp).Row
    Dim Cel As Range
    For Each Cel In F.Range("F19:F" & derligne).Cells
        If Cel = vbNullString Then Cel.EntireRow.Hidden = True
    Next Cel
    End Sub

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Etudiant en Alternance
    Inscrit en
    Octobre 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Etudiant en Alternance
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2020
    Messages : 5
    Par défaut Merci
    Merci de votre réponse rapide BENNASR, tout fonctionne

    Cependant j'ai une petite question es ce qu'il vous serais possible de m'expliquer rapidement ce qui constitue votre codage, et plus particulièrement cette partie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    derligne = F.Range("F" & Rows.Count).End(xlUp).Row
    Dim Cel As Range
    For Each Cel In F.Range("F19:F" & derligne).Cells
        If Cel = vbNullString
    et aussi l utilisation de Dim ?

  4. #4
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Option Explicit
    Sub Masquerleslignesvides()
    Dim derligne As Long
    Dim F As Worksheet
    Set F = Sheets("Feuil1")
    derligne = F.Range("F" & Rows.Count).End(xlUp).Row ' pour chercher la dernière cellule non vide de la colonne F
    Dim Cel As Range 
    For Each Cel In F.Range("F19:F" & derligne).Cells 'pour chaque cellule de la plage allant de F19 à le derniere ligne non vide de la colonne F
        If Cel = vbNullString Then Cel.EntireRow.Hidden = True 'si la cellule est nulle alors masquer toute la logne
    Next Cel ' tester cellule suvante
    End Sub

Discussions similaires

  1. Masquer des lignes sous certaines conditions
    Par Whismer0 dans le forum Excel
    Réponses: 7
    Dernier message: 11/06/2018, 14h05
  2. Masquer des lignes sous certaines conditions
    Par Banane54 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 16/12/2016, 16h18
  3. [XL-2007] Code VBA pour supprimer des lignes sous condition - problème
    Par PeaceMaker dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 08/06/2011, 09h09
  4. Masquer des lignes sous condition
    Par linousxm dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 23/05/2010, 13h19

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