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 :

Compteur à partir ligne 2 [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier Avatar de pilounet54
    Homme Profil pro
    retraité
    Inscrit en
    Février 2008
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : retraité
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 489
    Points : 89
    Points
    89
    Par défaut Compteur à partir ligne 2
    bonjour pouvez vous corriger svp les erreurs ?
    je souhaite à partir de la ligne 3 compter toutes la colonne A
    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
    Sub CompteurZero()
    Dim i As Integer
    Dim Compteur As Integer
     
     
    i = 1
    Compteur = 0
     
    Do While Range(>2,"A" & i).Value <> ""
     
     If Range(>2, "A" & i).Value = 0 Then
           Compteur = Compteur + 1
       Else
           Compteur = 0
     End If
     
     i = i + 1
    Loop
     
    'Copie de la valeur Compteur dans la cellule AD3
    Range("AD3").Value = Compteur
     
    End Sub
    merci d'avance

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 765
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 765
    Points : 28 623
    Points
    28 623
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Tu veux compter quoi exactement ?
    Le nombre de cellules remplies dans une colonne à partir de la ligne 3 ?
    Si c'est le cas, il existe une formule toute faite qui se nomme NBVAL que tu peux utiliser également dans VBA.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre régulier Avatar de pilounet54
    Homme Profil pro
    retraité
    Inscrit en
    Février 2008
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : retraité
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 489
    Points : 89
    Points
    89
    Par défaut
    Je souhaite juste ,que l'on modifie cette fonction pour compter tous les "1", exemple sur la colonne "A" mais à partir de ligne 3, bien sur que tu as raison une formule c'est bien mais quand tu en as des centaines et des centaines , je souhaite faire autrement pour ne plus voir les formules
    merci d'avance et bonjour à tous ,content de vous retrouver

  4. #4
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Septembre 2013
    Messages
    783
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2013
    Messages : 783
    Points : 1 562
    Points
    1 562
    Par défaut
    Bonjour,

    Quelque-chose du type (à adapter, testé) ci dessous devrait le faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ' A adapter si ça ne commence pas en A1
    Set InpRng = Range("A:A").SpecialCells(xlCellTypeConstants).Offset(3, 0).Resize(InpRng.Rows.Count - 2)
    Cnt = WorksheetFunction.CountIf(InpRng, 1)
    "Idéalement nous sommes ce que nous pensons. Dans la réalité, nous sommes ce que nous accomplissons." A.Senna
    et n'oubliez-pas de développer des .... sourires ^_^

  5. #5
    Membre régulier Avatar de pilounet54
    Homme Profil pro
    retraité
    Inscrit en
    Février 2008
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : retraité
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 489
    Points : 89
    Points
    89
    Par défaut
    Merci juste une question es qu'il à une déclaration à faire ?
    car cnt vide erreur 424 objet requis ? merci

  6. #6
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Septembre 2013
    Messages
    783
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2013
    Messages : 783
    Points : 1 562
    Points
    1 562
    Par défaut
    Bonjour,

    Voici le code complet que j'ai testé, mais je ne sais pas si la worksheet fonction est la même entre excel français et anglais ... A noter que ce code compte à partir de la ligne 3

    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
    Sub ComptColA()
     
    Dim InpRng As Range
    Dim Cnt As Double
     
    Set InpRng = Range("A3").CurrentRegion
    Debug.Print InpRng.Address
     
    ' A adapter si ça ne commence pas en A1
    Set InpRng = Range("A:A").SpecialCells(xlCellTypeConstants).Offset(2, 0).Resize(InpRng.Rows.Count - 2)
    Cnt = WorksheetFunction.CountIf(InpRng, 1) ' a voir en excel Français?
     
    Debug.Print InpRng.Address
     
    End Sub
    "Idéalement nous sommes ce que nous pensons. Dans la réalité, nous sommes ce que nous accomplissons." A.Senna
    et n'oubliez-pas de développer des .... sourires ^_^

  7. #7
    Membre régulier Avatar de pilounet54
    Homme Profil pro
    retraité
    Inscrit en
    Février 2008
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : retraité
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 489
    Points : 89
    Points
    89
    Par défaut
    Écoute en français c'est très bien il a pas erreur mais cela ne fonctionne pas !

  8. #8
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut

    Bonjour !

    Citation Envoyé par vinc_bilb Voir le message
    mais je ne sais pas si la worksheet fonction est la même entre excel français et anglais ...
    Vincent, même dans la version française d'Excel, le VBA reste nativement en anglais, que ce soit pour les dates,
    les nombres (point comme séparateur), les noms de fonctions de feuille de calculs …

    Il n'y a guère qu'avec la propriété FormulaLocal qu'évidemment les formules de calculs sont en français.
    Personnellement dans un environnement international mieux vaut utiliser la propriété native Formula
    Et je préfère Application au lieu de WorksheetFunction
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  9. #9
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Septembre 2013
    Messages
    783
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2013
    Messages : 783
    Points : 1 562
    Points
    1 562
    Par défaut
    Bonjour,

    Avec en feuille 1 les données suivantes (1ere = A1)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    1
    1
    2
    1
    1
    2
    2
    1
    1
    1
    1
    1
    2
    j'obtiens avec le code (j'avais fait une erreur, InpRng était appelé mais non défini )
    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
    Sub ComptColA()
     
    Dim InpRng As Range
    Dim Cnt As Double
     
     
    ' A adapter si ça ne commence pas en A1
    Set InpRng = Range("A:A").SpecialCells(xlCellTypeConstants)
    Set InpRng = InpRng.Offset(1, 0).Resize(InpRng.Rows.Count - 1)
     
    Cnt = WorksheetFunction.CountIf(InpRng, 1)
     
    Debug.Print "1", InpRng.Address, Cnt
    Cnt = WorksheetFunction.CountIf(InpRng, 2)
    Debug.Print "2", InpRng.Address, Cnt
    End Sub
    les sorties suivantes (immediate window)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    1             $A$2:$A$13     8 
    2             $A$2:$A$13     4
    "Idéalement nous sommes ce que nous pensons. Dans la réalité, nous sommes ce que nous accomplissons." A.Senna
    et n'oubliez-pas de développer des .... sourires ^_^

  10. #10
    Membre régulier Avatar de pilounet54
    Homme Profil pro
    retraité
    Inscrit en
    Février 2008
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : retraité
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 489
    Points : 89
    Points
    89
    Par défaut
    Le code effectivement m' intéresse énormément , à la seule différence c'est que je n'ai pas de résultat, aucune erreur ? et pourtant suivi à la lettre et au chiffre
    désolé cela ne fonctionne pas

  11. #11
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Septembre 2013
    Messages
    783
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2013
    Messages : 783
    Points : 1 562
    Points
    1 562
    Par défaut
    Vous pouvez joindre un exemple de ce qui ne fonctionne pas chez vous? Il se peut qu'il y ait quelques ruses (exemple, format texte, .....)
    "Idéalement nous sommes ce que nous pensons. Dans la réalité, nous sommes ce que nous accomplissons." A.Senna
    et n'oubliez-pas de développer des .... sourires ^_^

  12. #12
    Membre régulier Avatar de pilounet54
    Homme Profil pro
    retraité
    Inscrit en
    Février 2008
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : retraité
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 489
    Points : 89
    Points
    89
    Par défaut
    Bonjour et merci pour votre attention voici le code dans le classeur2
    Fichiers attachés Fichiers attachés

  13. #13
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Septembre 2013
    Messages
    783
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2013
    Messages : 783
    Points : 1 562
    Points
    1 562
    Par défaut
    et bien .... pas de soucis avec votre classeur (j'ai légèrement modifié la macro), et je ne vois pas d'où peut venir le pb sauf si votre config pour le calcul automatique est désactivé (Application.Calculation =xlCalculationManual)Classeur2.xlsm
    "Idéalement nous sommes ce que nous pensons. Dans la réalité, nous sommes ce que nous accomplissons." A.Senna
    et n'oubliez-pas de développer des .... sourires ^_^

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

Discussions similaires

  1. Compteur à partir d'une certaine ligne
    Par lozeba dans le forum Débutez
    Réponses: 4
    Dernier message: 26/06/2013, 11h00
  2. Réponses: 7
    Dernier message: 17/01/2007, 18h57
  3. compteur de lignes
    Par A2rem dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 04/01/2007, 14h39
  4. compteur de lignes?
    Par lnpt23 dans le forum Bases de données
    Réponses: 5
    Dernier message: 27/06/2006, 16h37
  5. compteur de ligne excel avec filtre
    Par calimero91 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 14/12/2005, 11h04

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