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 :

Executer une macro chaque fois qu'on a une valeur differente dans une colonne donnée


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    agent administratif
    Inscrit en
    Décembre 2017
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : agent administratif
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2017
    Messages : 16
    Par défaut Executer une macro chaque fois qu'on a une valeur differente dans une colonne donnée
    Bonjour à toutes et tous ,

    Voilà j'ai un gros tableau de données que j'ai simplifié pour obtenir votre aide;
    Dans ce tableau j'ai deux colonnes : Nature de prestation et assurés voir la photo
    j'ai une macro un peu bancale mais fonctionnelle qui me permet de filtrer une nature de prestation exemple ABA et de compter le nombre d'assurés sans doublon qui bénéficient de cette prestation.
    Dans mon exemple si on filtre ABA on obtient 4 assurés uniques.

    Ma question comment faire pour que ma macro fasse ce calcul automatiquement pour chaque nature de prestation donc pour ABA, ABG, ATP ect ?
    Cela sans que j'ai à remplir mon inputbox.

    Voici ma macro:

    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
    Sub AssUniq()
     
    Application.ScreenUpdating = False
     
    'On va compter le nombre d'assurés uniques ayant utilisé une nature de prestation à choisir
     
    Dim MonFiltre As String
    'Dim MonOnglet As String
     
    MonFiltre = InputBox("Choississez la nature de prestation")
    'MonOnglet = InputBox("Entrez le nom de l'onglet")
    Sheets("Donnees").Activate
    DernLigne = Range("A" & Rows.Count).End(xlUp).Row
     
        Rows("1:1").Select
        Selection.AutoFilter
        'ActiveSheet.Range("$A$1:$Z" & DernLigne).AutoFilter Field:=2, Criteria1:="ABA"
        ActiveSheet.Range("$A$1:$Z" & DernLigne).AutoFilter Field:=2, Criteria1:=MonFiltre
        Range("A1").Select
     
        Range("A1:Z" & DernLigne).Select
        Selection.Copy
    '    Sheets.Add After:=Sheets(Sheets.Count)
        Sheets.Add(After:=Worksheets(Worksheets.Count)).Name = MonFiltre & "_" & "AssUniq"
        ActiveSheet.Paste
        ActiveSheet.Paste
        Application.CutCopyMode = False
        Columns("C:C").Select
        ActiveSheet.Range("$C$1:$C" & DernLigne).RemoveDuplicates Columns:=1, Header:= _
            xlYes
     
       Range("A1").Select
     
      ActiveSheet.Cells(Rows.Count, "A").End(xlUp)(2).Offset(, 2) = Application.WorksheetFunction.CountA(Columns(3))
     
      Sheets("Donnees").Select
        ActiveSheet.Range("$A$1:$Z" & DernLigne).AutoFilter Field:=2
     
    Application.ScreenUpdating = True
    End Sub
    Nom : test.JPG
Affichages : 405
Taille : 231,1 Ko

    et un exemple de mon tableau source

    Merci de votre aide.

  2. #2
    Expert éminent
    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
    Par défaut
    Bonjour,

    utiliser un filtre avancé pour extraire la liste sans doublon puis
    pour chaque élément via une fonction de feuille de calculs NB.SI …

    ___________________________________________________________________________________________________________
    Je suis Paris, Egypte, Nigeria, New-York, Mogadicio, Barcelone, London, Manchester, Stockholm, Istanbul, Berlin, Nice, Bruxelles, Charlie, …

Discussions similaires

  1. [XL-2013] Valeur absolue dans une macro
    Par 419 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 05/12/2016, 15h40
  2. Réponses: 2
    Dernier message: 22/07/2015, 13h43
  3. Ré exécuter une fonction dans une boucle à chaque fois
    Par kalimmba dans le forum Débuter
    Réponses: 13
    Dernier message: 23/03/2015, 20h21
  4. Réponses: 5
    Dernier message: 23/05/2014, 09h04
  5. Réponses: 0
    Dernier message: 16/05/2014, 12h24

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