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 complique pour classeur de plusieurs feuilles [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Femme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Mars 2021
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Mars 2021
    Messages : 7
    Par défaut Macro complique pour classeur de plusieurs feuilles
    Bonjour,
    je suis encore débutante en vba et je me coince dans le problème suivant :
    je traite des classeurs contenant plusieurs feuilles , je veux compter le nombre de ligne remplies (dans la colonne A) de chaque feuille et puis insérer ce nombre dans la colonne B dans un tableau d'une feuille séparé nommée Index sheet. j'ai le code suivant pour calculer le nombre de ligne mais j'arrive pas à développer en boucle pour résoudre mon problème.
    voici le code de calcul:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub comptage()
    n = 0
    For Each Cell In Sheets(3).Columns(1).Cells
    If Not IsEmpty(Cell) Then n = n + 1
    Next Cell
    MsgBox n
     
    End Sub
    si vous pouvez me proposer des codes ou joindre des fichiers et puis j'adapte le code.
    merci d'avance!

  2. #2
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Par défaut
    Bonjour Yass, bonjour le forum,

    C'est assez confus car tu parles de plusieurs classeurs et on ne sait pas s'il faut les prendre en compte ou s'il ne faut s'en tenir qu'aux onglets d'un seul classeur ?!...
    Le code ci-dessous n'agit que pour le classeur qui contiendra cette macro :

    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
    Sub comptage()
    Dim O As Worksheet 'déclare la variable O (Onglet)
    Dim DL As Long 'déclare la variable DL (Dernière Ligne)
    Dim NC As Long 'déclare la variable NC (Nombre de Cellules)
    Dim K As Integer 'déclare la variable K (incrément)
    Dim TB() As Variant 'déclare la variable TB (TaBleau)
     
    For Each O In ThisWorkbook.Sheets 'boucle sur tous les onglets O de ce classeur
        If O.Name <> "Index sheet" Then 'condition : si le nom de l'onglet de la boucle n'est pas "Index sheet"
            DL = O.Cells(Application.Rows.Count, "A").End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne A de l'onglet O
            On Error Resume Next 'gestion des erreurs (en cas d'erreur passe a la ligne suivante)
            'définit le nombre de cellules NC (dernière cellule DL moins le nombre de cellules vides des lignes 1 à DL dans la colonne A)
            NC = DL - O.Range("A1:A" & DL).SpecialCells(xlCellTypeBlanks).Cells.Count 'si aucune cellule vide cela génère une erreur
            If Err > 0 Then 'condition : si une erreur a été générée
                Err.Clear 'supprime l'erreur
                NC = DL 'redéfinit NC (=DL)
            End If 'fin de la condition
            On Error GoTo 0 'supprime la gestion des erreurs
            K = K + 1 'incrémente K
            ReDim Preserve TB(1 To 2, 1 To K) 'redimensionne le tableau TB (2 lignes, K colonnes)
            TB(1, K) = O.Name 'récupère le nom de l'onglet dans la ligne 1
            TB(2, K) = NC 'récupère la dernière ligne éditée DL dans la ligne 2
        End If 'fin de la condition
    Next O 'prochain onglet de la boucle
    With Sheets("Index sheet").Range("B1") 'prend en compte la cellule B1 de l'onglet "Index sheet"
        .CurrentRegion.ClearContents 'supprime d'éventuelle anciennes valeurs
        .Resize(K, 2).Value = Application.Transpose(TB) 'renvoie le tableau TB transposé dans B1 redimensionnée
    End With 'fin de la prose en compte de la cellule B1 de l'ongelt "Index sheet"
    End Sub

  3. #3
    Membre averti
    Femme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Mars 2021
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Mars 2021
    Messages : 7
    Par défaut
    Bonjour Thautheme ,
    en fait je veux faire cette opération pour chaque classeur , donc je vais appliquer le code à chaque fois je veux le nombre de ligne de chaque feuille d'un seul classeur non pas tous à la fois .
    merci pour ta réponse , c bien ce que je voulais !

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

Discussions similaires

  1. [Toutes versions] Modification d'une Macro pour un tri de données spécifique
    Par davidstarr dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 30/03/2011, 06h52
  2. [XL-2010] Modification de Macro pour un tri de données
    Par davidstarr dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/01/2011, 17h39
  3. Macro VBA pour tri successif de lignes
    Par thierryakaguy dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 21/07/2009, 23h27
  4. Macro compliquée (pour moi en tout cas)
    Par agnostiko dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 04/12/2007, 17h56
  5. Macro permettant le tri de données.
    Par Mlezen dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 04/10/2007, 20h22

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