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 :

problème avec la fonction CountIf [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2010
    Messages
    229
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2010
    Messages : 229
    Points : 168
    Points
    168
    Par défaut problème avec la fonction CountIf
    Bonjour à tous,

    J'ai de nouveau besoin d'aide sur le code suivant

    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 go_analyse_Click()
    Dim f, n, t  As Integer
     
    'on compte le nombre de ligne
     
    t = 1
    Do
    t = t + 1
    Loop Until Feuil4.Cells(t, 1) = "" And Feuil4.Cells(t + 1, 1) = ""
     
    'là ca bloque en essayant d'attribuer à n et f le nombre de valeur
    n = CountIf(Range("H:H"), "N")
    f = CountIf(Range("H:H"), "F")
    Feuil5.Cells("A9").Value = "Vous avez " & n & " nouveaux sur les " & t - 1 & " produits "
    Feuil5.Cells("A10").Value = "Vous avez" & f & " produits en fin de vie sur les " & t - 1 & " produits"
     
    End Sub

    J'aimerai savoir pourquoi CountIf ne marche pas dans ce cas là s'il vous plait,
    avec si possible la correction de ce code

    Merci d'avance
    Dodo

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 138
    Points : 54
    Points
    54
    Par défaut
    ton programme s'arrête à quel niveau en mode pa sà pas ?

  3. #3
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    Bonjour !

    Ceci n'est pas beau :
    Faire plutôt, au choix :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim f As Integer, n As Integer, t As Integer
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim f As Integer
    Dim n As Integer
    Dim t As Integer
    En effet, ton écriture revient à écrire, en fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim f As Variant, n As Variant, t As Integer
    Je sais, c'est nul, mais c'est comme ça !

    --------------------------------------------------------------------------
    Concernant la recherche du nombre de lignes, tu devrais regarder ce que te propose
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Feuil4.UsedRange.Rows.Count
    --------------------------------------------------------------------------
    Pour l'usage des fonctions Excel puis le Code VBA, il est préférable de dire à VBA que tu vas les chercher dans Excel.
    Donc, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.WorkSheetFunctions.Countif(...)

  4. #4
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2010
    Messages
    229
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2010
    Messages : 229
    Points : 168
    Points
    168
    Par défaut
    Merci de ta réponse Maxence
    Citation Envoyé par Maxence HUBICHE Voir le message

    En effet, ton écriture revient à écrire, en fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim f As Variant, n As Variant, t As Integer
    Merci pour l'info je savais pas

    --------------------------------------------------------------------------
    Citation Envoyé par Maxence HUBICHE Voir le message
    Concernant la recherche du nombre de lignes, tu devrais regarder ce que te propose
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Feuil4.UsedRange.Rows.Count
    Cette ecriture ne marche pas il me met une erreur au niveau du .count en disant "utilisation incorrect de la propriété"

    --------------------------------------------------------------------------
    Citation Envoyé par Maxence HUBICHE Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.WorkSheetFunctions.Countif(...)
    Pour ce code ca ne marche pas non plus peut etre l'ai-je mal ecrit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    n = Application.WorkSheetFunctions.CountIf(Range("H:H"), "N")

  5. #5
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    Je t'ai conseillé de regarder ce que te renvoyait cette phrase :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Feuil4.UsedRange.Rows.Count
    pas de la copier-coller dans ton code !
    ...
    Essaye de mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    t = Feuil4.UsedRange.Rows.Count
    à la place de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    t = 1
    Do
    t = t + 1
    Loop Until Feuil4.Cells(t, 1) = "" And Feuil4.Cells(t + 1, 1) = ""
    oups !
    J'avais tapé un s en trop ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    application.WorksheetFunction.CountIf(

  6. #6
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2010
    Messages
    229
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2010
    Messages : 229
    Points : 168
    Points
    168
    Par défaut
    Merci beaucoup ca marche très bien

    En plus ca m'a permis de connaître une méthode plus rapide pour compter les lignes, toujours utile a l'avenir

    pour le code ca donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     Private Sub go_analyse_Click()
    Dim f As Integer
    Dim n As Integer
    Dim t As Integer
     
    t = Feuil4.UsedRange.Rows.Count
     
    n = Application.WorksheetFunction.CountIf(Range("H:H"), "N")
    f = Application.WorksheetFunction.CountIf(Range("H:H"), "F")
    Feuil5.Cells("A9").Value = "Vous avez " & n & " nouveaux sur les " & t - 1 & " produits "
    Feuil5.Cells("A10").Value = "Vous avez" & f & " produits en fin de vie sur les " & t - 1 & " produits"
     
    End Sub
    Merci maxence
    @+

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

Discussions similaires

  1. Problème avec une fonction date.
    Par kmayoyota dans le forum ASP
    Réponses: 8
    Dernier message: 09/09/2004, 12h33
  2. Problème avec la fonction findfirst ()
    Par Angelico dans le forum Windows
    Réponses: 3
    Dernier message: 05/08/2004, 20h40
  3. [Requete SQL en VBA] Problème avec la fonction FLOOR
    Par zubral dans le forum Langage SQL
    Réponses: 4
    Dernier message: 13/07/2004, 13h24
  4. Problème avec les fonctions
    Par jvachez dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 13/01/2004, 12h06
  5. [Postgresql]Problème avec les fonctions ...
    Par fet dans le forum Requêtes
    Réponses: 4
    Dernier message: 02/10/2003, 09h04

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