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 :

Comptage multi feuille


Sujet :

Macros et VBA Excel

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 124
    Par défaut Comptage multi feuille
    Bonjour,

    je dois compter le nombre de ligne correspondant à plusieurs critères
    En gros j'ai quatre feuilles et sur la feuille 4 j'ai une colonne qui doit correspondre au nombre de lignes de la feuille 1 qui ont la même 'clé' et d'autres critères + nombre de ligne de la feuille 2, ...
    Pour faire ça, j'ai créer une fonction
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    Function CompteAcces(Quoi As Range, Interface As Boolean) As Long
       Dim Ws As Worksheet
       Dim x As Integer
       Dim Compteur As Long
     
       Compteur = 0
       Ws = ThisWorkbook.Worksheets("Feuil1")
       x = 1
       Do Until IsEmpty(Ws.Cells(x, 1).Value)
          If Ws.Cells(x, 1).Value = Quoi.Value Then
             If Interface Then
                If Ws.Cells(x, 12).Value = "INTERF?" Then
                   Compteur = Compteur + 1
                End If
             Else
                Compteur = Compteur + 1
             End If
          End If
          x = x + 1
       Loop
     
       Ws = Worksheets("Feuil2")
       x = 1
       Do Until IsEmpty(Ws.Cells(x, 1).Value)
          If Ws.Cells(x, 1).Value = Quoi.Value Then
             If Interface Then
                If Ws.Cells(x, 12).Value = "INTERF?" Then
                   Compteur = Compteur + 1
                End If
             Else
                Compteur = Compteur + 1
             End If
          End If
          x = x + 1
       Loop
     
       Ws = Worksheets("Feuil3")
       x = 1
       Do Until IsEmpty(Ws.Cells(x, 1).Value)
          If Ws.Cells(x, 1).Value = Quoi.Value Then
             If Interface Then
                If Ws.Cells(x, 12).Value = "INTERF?" Then
                   Compteur = Compteur + 1
                End If
             Else
                Compteur = Compteur + 1
             End If
          End If
          x = x + 1
       Loop
     
    CompteAcces = Compteur
     
    End Function
    Qui m'a l'air de correspondre à ce que je veux, sauf que ça plante directement à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       Ws = ThisWorkbook.Worksheets("Feuil1")
    Ca ne marche pas n'ont plus avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
       Ws = ThisWorkbook.Worksheets(1)
       Ws = ThisWorkbook.Worksheets("Mon nom de feuille")
       Ws = ThisWorkbook.Sheets("Feuil1")
    mais si j'utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       nb = ThisWorkbook.Worksheets.Count
    J'ai bien 5 feuilles
    Comment est-ce que je dois faire pour référencer la feuille 1 ?
    Existe il un moyen d'obtenir l'erreur ?
    En mode débogage, il me marque Indice en dehors de la Plage, mais si j'essaye d'utiliser un On Error Resume Next, ça plante pareil, et je n'ai rien dans Err.Number.

    Novice en VBA, Excel 97, Win2k

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    389
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 389
    Par défaut
    A la place de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Ws = ThisWorkbook.Worksheets("Feuil1")
    mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set Ws = ThisWorkbook.Worksheets("Feuil1")
    pas regardé le reste

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 124
    Par défaut
    Ca plante pareil.

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    389
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 389
    Par défaut
    Même chose avec les feuilles Feuil2 et Feuil3

    Quel est le message renvoyé?

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 124
    Par défaut
    Je voudrais bien le savoir, mais On Error, ne fonctionne pas non plus, ça plante brutalement.
    D'après le débogueur, "Indice en dehors de la Plage" quand je survole ThisWorkbook.Worksheets("Feuil1") .

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    389
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 389
    Par défaut
    regarde le nom de tes feuilles sur les onglets et dans ton code

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 124
    Par défaut
    J'ai bien compris, mais d'après la doc, on peut référencer la feuille 1 par
    Worksheets("Feuil1"), Worksheets("Son nom"), Worksheets(1)
    or aucun des trois ne fonctionne.
    Pourtant, je peux les voir dans les variables locales.

    Il n'y a pas un paramétrage dans Excel ?

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 124
    Par défaut
    Bon, j'ai redémarré le bouzin, et ça marche ... Sorry

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

Discussions similaires

  1. Réponses: 15
    Dernier message: 18/02/2009, 21h43
  2. comptage multi critères
    Par Peanut dans le forum Excel
    Réponses: 3
    Dernier message: 12/08/2008, 17h49
  3. Réponses: 55
    Dernier message: 04/06/2008, 14h07
  4. [VB6] - Erreur mémoire avec une application multi feuille
    Par Aurazed dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 20/07/2007, 10h37
  5. [EXCEL] Lire les données d'un fichier multi-feuilles
    Par FeydRautha dans le forum WinDev
    Réponses: 4
    Dernier message: 28/05/2007, 13h32

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