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 :

Vérifier la présence d'une valeur dans une liste et la placer ailleurs si absente


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Inscrit en
    Juin 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 9
    Points : 3
    Points
    3
    Par défaut Vérifier la présence d'une valeur dans une liste et la placer ailleurs si absente
    Bonjour,

    je suis actuellement entrain de créer un document excel pour une société et je suis bloqué sur une mise au point de macro.

    Je voudrai avoir (si possible)un macro qui permet de comparer une nouvelle valeur dans une liste qui se trouve en feuil 1 et si celle-ci n'est pas présente l'ajouter dans un tableau qui se trouve sur la feuil 2,afin comptabiliser le nombre de fois que ce mot se répete.

    Pouvez-vous m'aider?
    Je vous remercie d'avance

  2. #2
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Bonjour,
    il faudrait être plus clair ou plus précis.

    ...comparer une nouvelle valeur dans une liste qui se trouve en feuil 1 et si celle-ci n'est pas présente l'ajouter dans un tableau qui se trouve sur la feuil 2,afin comptabiliser le nombre de fois que ce mot se répete.
    si la donnée n'existait pas, pourquoi connaitre le nombre de fois où elle se répète ? ça devrait être zero, non ? mais je suis sur que tu vas mieux expliquer ou c'est moi qui a le cerveau qui travaille mal

    sinon, d'après ce que j'en pense, ça doit etre faisable

  3. #3
    Membre confirmé Avatar de drakkar_agfa
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 618
    Points : 638
    Points
    638
    Par défaut
    Je peux te proposer ceci
    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
    Sub aaatest()
        Dim iLigne As Integer
        Dim iColonne As Integer
        Dim iNombre As Integer
        Dim rDans As Range
        Dim sRecherche As String
     
        iLigne = 1 'Ta ligne comme tu veux
        iColonne = 1 'Ta colonne
     
        sRecherche = Worksheets("Feuil1").Cells(iLigne, iColonne).Value
        iNombre = Application.CountIf(Worksheets("Feuil2").Columns(1), sRecherche)
        If iNombre > 1 Then
            MsgBox sRecherche & " se retrouve " & iNombre & " fois."
        Else
            Worksheets("Feuil2").Cells(Worksheets("Feuil2").Range("A65536").End(xlUp).Row + 1, 1) = sRecherche
            MsgBox sRecherche & " a été ajouté."
        End If
     
    End Sub
    Ce code vérifie si ta recheche existe dans le tableau de la feuil2, si oui, tu as le nombre de fois que ta donnée est présente sinon, elle l'ajoute à la fin!

    Bonne chance!

  4. #4
    Candidat au Club
    Inscrit en
    Juin 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Pour casefayere

    En fait,je suis en train de créer une fichier excel,qui comptabiliser le nombre de fois qu'un type de panne se répéte dans le mois pour une société.De ce fait, en feuil 1 il a la liste des pannes présent et en feuil 2 un tableau qui comptabilise le nombre de fois que le meme type de pannes se répéte .Ce fichier va permettre de supprimer la pannes la plus fréquente.

    Le macro que je voudrai réaliser est si un type de panne est rajouter en feuil 1 et non présent dans la liste,sera rajouter automatiquement dans un tableau en feuille 2 afin d'effectuer la comptabilisation.

    Citation Envoyé par drakkar_agfa Voir le message
    Je peux te proposer ceci
    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
    Sub aaatest()
        Dim iLigne As Integer
        Dim iColonne As Integer
        Dim iNombre As Integer
        Dim rDans As Range
        Dim sRecherche As String
     
        iLigne = 1 'Ta ligne comme tu veux
        iColonne = 1 'Ta colonne
     
        sRecherche = Worksheets("Feuil1").Cells(iLigne, iColonne).Value
        iNombre = Application.CountIf(Worksheets("Feuil2").Columns(1), sRecherche)
        If iNombre > 1 Then
            MsgBox sRecherche & " se retrouve " & iNombre & " fois."
        Else
            Worksheets("Feuil2").Cells(Worksheets("Feuil2").Range("A65536").End(xlUp).Row + 1, 1) = sRecherche
            MsgBox sRecherche & " a été ajouté."
        End If
     
    End Sub
    Ce code vérifie si ta recheche existe dans le tableau de la feuil2, si oui, tu as le nombre de fois que ta donnée est présente sinon, elle l'ajoute à la fin!

    Bonne chance!
    Je viens d'essayer et il me marque "Erreur Execution: 1004" c'est quoi exactement cette erreur,je suis pas habituer au macro.
    Merci beaucoup

  5. #5
    Membre confirmé Avatar de drakkar_agfa
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 618
    Points : 638
    Points
    638
    Par défaut
    Bonjour,

    Sur quelle ligne as-tu l'erreur?

  6. #6
    Candidat au Club
    Inscrit en
    Juin 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    J'ai l'erreur sur la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sRecherche = Worksheets("Feuil1").Cells(iLigne, iColonne).Value
    je vais t'envoyer le fichier sa sera plus simple je pense

    Merci de m'aider
    Fichiers attachés Fichiers attachés

  7. #7
    Membre confirmé Avatar de drakkar_agfa
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 618
    Points : 638
    Points
    638
    Par défaut
    Je crois que tu devrais changer les noms de feuilles que j'avais utilisées par les noms de TES feuilles... Vérifies aussi que les lignes et colonnes correspondent aux tiennes.

    Après quelques petites modif tu devrais être ok!

  8. #8
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    je ne vois pas bien l'utilité d'une macro
    un tableau dynamique fera cela très bien
    i

  9. #9
    Candidat au Club
    Inscrit en
    Juin 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par drakkar_agfa Voir le message
    Je crois que tu devrais changer les noms de feuilles que j'avais utilisées par les noms de TES feuilles... Vérifies aussi que les lignes et colonnes correspondent aux tiennes.

    Après quelques petites modif tu devrais être ok!
    J'ai essayer hier,et il me marque plin d'erreur je n'aarive pas a le faire fonctionner correctement.

  10. #10
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 133
    Points : 160
    Points
    160
    Par défaut TCD
    Bonjour,

    Un TCD suffit largement à répondre pour les statistiques de panne comme je l'ai fait dans la correction c-joint

    Il faudra réactualiser la TCD (Tableu Croisé Dynamique)

    Fichiers attachés Fichiers attachés

  11. #11
    Candidat au Club
    Inscrit en
    Juin 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    merci pour ton aide.
    En fait , je voudrai avoir quelque chose qui fasse automatiquement le transfert d'une nouvelle valeur qui se trouve dans la colonne "type" dans une autre feuille du fait que la liste de données est loin d'être finis.

  12. #12
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 133
    Points : 160
    Points
    160
    Par défaut automatiser le raffraichissement
    Bonjour,


    Il suffit de détecter les changements de la feuille de saisie pour declencher le raffraichissement de la TCD

    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 Worksheet_Change(ByVal Target As Range)
    'Maj sur la colonne Type ou Machine
    If Target.Column = 5 Or Target.Column = 6 Then
        
        If Target.Row >= 2 Then
            ' On reactulise le tcd
            ThisWorkbook.Worksheets("Feuil1").PivotTables("Tableau croisé dynamique1").PivotCache.Refresh
        End If
    
    End If
    
    End Sub
    A chaque changement de la colonne Type ou Machine on reactualise le tcd

    Tout simplement


Discussions similaires

  1. Réponses: 1
    Dernier message: 13/04/2015, 11h17
  2. Réponses: 1
    Dernier message: 15/07/2014, 17h57
  3. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48
  4. Réponses: 1
    Dernier message: 25/09/2006, 17h15
  5. Mettre une valeur d'une table dans une variable
    Par Raphou96 dans le forum Access
    Réponses: 5
    Dernier message: 06/02/2006, 15h19

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