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 :

Compter Champ identiques


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2007
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 144
    Par défaut Compter Champ identiques
    Bonjour !

    J'aimerais compter le nombre de champs identique à partir de la colone 1 (A) et du numéro de ligne " i ".

    En faite, je tris par ordre alphabétique ma colone, puis j'aimerais compter le nombre de doublons pour chaque ligne, j'utilise une boucle qui par de i=1 à NOMBRE LIGNE TOTAL et j'aimerais supprimer les doublons de tout mon tableau.
    Voici se que j'ai commencé à faire :

    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
    rivate Sub CommandButton1_Click()
    Dim iNbItems, i, i2 As Integer
     
    iNbItems = ActiveSheet.UsedRange.Rows.Count
    ' On tri la liste par ordre alphabétique
    range("A1:C" & iNbItems).Sort Key1:=range("A1"), Order1:=xlAscending, Header:= _
            xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
            DataOption1:=xlSortNormal
     
    For i = 1 To iNbItems
        If Cells(i + 1, 1) = Cells(i, 1) Then
            range("A" & i).Select
            Selection.EntireRow.Delete
        End If
     Next
     
    End
    Le soucis c'est que mon code ne fonctionne pas du premier coup, a cose du NEXT...
    J'aimerais donc, compter le nombre de ligne identique à partir de ma ligne i Et ensuite, supprimer le nombre de ligne en conséquence...

    Merci !

  2. #2
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonjour.

    Dans ce cas, il vaut mieux commencer par la fin. Essaie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For i = inbitems To 2 step -1
        If Cells(i , 1) = Cells(i-1, 1) Then Rows(i).delete    
    Next i
    A mettre au point.

    Bon courage,

    PGZ

  3. #3
    Membre éprouvé
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2007
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 144
    Par défaut


    Il n'y à rien à mettre au point, sa fonctionne super !!!

    Merci, je n'y avait même pas pensé !

    J'aimerais comprendre ton
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For i = iNbItems To 2 Step -1
    A quoi sert le Step-1? je ne connais pas cette formule, merci de m'aider à comprendre !

  4. #4
    Membre Expert
    Avatar de JackOuYA
    Inscrit en
    Juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1 040
    Par défaut
    bonjour,

    step - 1 : traduction literrale pas - 1 ..

    à chaque tour de boucle 1 est enlevé à i .., l'astuces de partir de la derniére ligne à la premiére permet d'éviter les problémes de 'remontée' de lignes suite à suppression....

  5. #5
    Membre éprouvé
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2007
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 144
    Par défaut
    Mais dans quel but tu fai sun "Pas -1" ??
    Car tu dis que ta boucle s'arrete à 2 donc je ne comprend pas...

    Merci de m'aider !

  6. #6
    Membre Expert
    Avatar de JackOuYA
    Inscrit en
    Juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1 040
    Par défaut
    il y as combien de ligne dans ta feuille ?

    pour le savoir rajoute la ligne msgbox

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ..
    iNbItems = ActiveSheet.UsedRange.Rows.Count
    msgBox  INbItems
    ..

  7. #7
    Membre éprouvé
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2007
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 144
    Par défaut
    D'après se que je crois voir sur le net, le Step -1 Servirait à dire qu'on décrémente de -1 à chaque foi???

    Si j'ai 10 ligne, alors on fera 10 9 8 7 6 5 4 3 2...

    C'est sa??

    Car j'ai essayer en mettant Step -2
    et on décrémente de Deux en deux...
    J'ai bien compris?

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

Discussions similaires

  1. Comment compter les champs identiques
    Par domik dans le forum Access
    Réponses: 6
    Dernier message: 28/01/2007, 20h26
  2. compter champs de plusieurs bases
    Par sony351 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 13/09/2005, 08h19
  3. Requete croisant deux champs identiques
    Par sabotage dans le forum Langage SQL
    Réponses: 2
    Dernier message: 07/08/2005, 11h59
  4. Compter champs non vide
    Par szdavid dans le forum Oracle
    Réponses: 4
    Dernier message: 13/07/2005, 14h01
  5. plusieurs champs identiques en ligne
    Par viviking dans le forum Langage SQL
    Réponses: 12
    Dernier message: 18/06/2004, 11h25

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