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 :

Détecter les mots dans une liste sous condition


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2016
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2016
    Messages : 23
    Par défaut Détecter les mots dans une liste sous condition
    Bonjour, dans un fichier excel j'ai une liste de voudrais détecter les codes fonctions dont le nombre de S1 égale le nombre des S2. je voudrais afficher dans ne autre liste tous les codes fonctions dont le nombre des S1 n'égale pas S2.

    je voudrais faire une macro car dans mon fichier d'origine j'ai un tableau qui contient 6000 lignes qui rend la tâche plus difficile.
    CODE DE FONCTION.xlsx

    Vous trouverez le fichier en PJ.
    Par exemple dans le fichier je voudrais afficher dans une liste CF1 et CF3 puisque c'est sont les codes de fonction dont le nombre de S1 n’égale pas celui de S2

  2. #2
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    bonjour
    sans VBA

    1 - Clic en A1 puis onglet INSERTION / Tableau
    2 - Clic dans ton tableau puis clic onglet Insertion / TblCroiséDynamique / TblCroiséDynamique
    3- choisir dans la feuille encours ou bien nouvelle feuille
    4 - en ligne code fonction / en colonne semaine / en valeur REFERENCE (en tant que nombre comme format)
    5 - dans la colonne S2 clic droite puis paramètre champs de valeur : afficher les valeur / différence par rapport / choisir S1
    et à chaque mise à jours des données cliquer dans le tableau et puis actualiser
    n'hésitez pas de revenir si c'est pas claire
    Bonne continuation
    Fichiers attachés Fichiers attachés

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2016
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2016
    Messages : 23
    Par défaut
    Merci beaucoup pour votre aide, j'ai déjà travaillé avec les tableaux croisés dynamiques mais dans mes tableaux d'origines j'ai 6500 ligne c'est pour cela que je voudrais afficher que les CF avec diff <> 0.

  4. #4
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    je t'assure qu'avec un TCD y a aucun problème de temps d'exécution ni de nombre de ligne
    Pour travailler avec les valeur différent de zéro faite un simple filtre et tu aura ton résultat
    Bonne continuation

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2016
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2016
    Messages : 23
    Par défaut
    J'ai essayé de faire un filtre mais je n'ai pas pu, vous avez une idée comment éliminer les 0 de la liste des différences ?

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2016
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2016
    Messages : 23
    Par défaut
    Bonjour je pense pas qu'on puisse faire un filtre sur la colonne des différence. j'ai essayé mais je peux pas faire.

  7. #7
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    avec VBA
    ajouter un onglet nommé "RESULTAT" et tester ça :
    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
    Sub regroup2()
    Application.ScreenUpdating = False
    Dim f1 As Worksheet
    Dim f2 As Worksheet
     
    Set f1 = Sheets("Sheet1")
    Set f2 = Sheets("RESULTAT")
    f2.Cells.ClearContents
    Dim i As Long
     
    Set d = CreateObject("Scripting.Dictionary")
        '**********************************************************
        TblBD = f1.Range("A2:D" & f1.Range("C" & Rows.Count).End(xlUp).Row)
        For i = 1 To UBound(TblBD)
        X = 0
        clé = TblBD(i, 2)
        If TblBD(i, 3) = "S1" Then d(clé) = d(clé) + (X + 1)
      Next i
      f2.Range("A2").Resize(d.Count) = Application.Transpose(d.keys)
      f2.Range("B2").Resize(d.Count) = Application.Transpose(d.items)
     
     
      Set d2 = CreateObject("Scripting.Dictionary")
        '**********************************************************
        TblBD = f1.Range("A2:D" & f1.Range("C" & Rows.Count).End(xlUp).Row)
        For i = 1 To UBound(TblBD)
        X = 0
        clé = TblBD(i, 2)
        If TblBD(i, 3) = "S2" Then d2(clé) = d2(clé) + (X + 1)
      Next i
      f2.Range("A2").Resize(d2.Count) = Application.Transpose(d2.keys)
      f2.Range("C2").Resize(d2.Count) = Application.Transpose(d2.items)
     
     f2.Cells(1, 1) = "Référence"
     f2.Cells(1, 2) = "S1"
     f2.Cells(1, 3) = "S2"
     f2.Cells(1, 4) = "Différence"
     
      'Calculer différence différence
      For ligne = 2 To f2.Range("A" & Rows.Count).End(xlUp).Row
      f2.Cells(ligne, 4) = f2.Cells(ligne, 3) - f2.Cells(ligne, 2)
      Next ligne
     
      'supprimer ligne égal à zéro
      For i = f2.Range("A" & Rows.Count).End(xlUp).Row To 2 Step -1
        If f2.Cells(i, 4) = 0 Then
        f2.Cells(i, 1).EntireRow.Delete
        End If
     Next i
     
    Application.ScreenUpdating = True
    f2.Select
    End Sub
    tester avec prudence sur une copie de ton fichier pour munir contre tous risque de perte de données
    Fichiers attachés Fichiers attachés

  8. #8
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2016
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2016
    Messages : 23
    Par défaut
    Bonjour Bennaser, le programme fonctionne parfaitement. MERCI pour vos efforts.

  9. #9
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    merci de cliquer sur RESOLU en bas
    bonne continuation

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

Discussions similaires

  1. eliminer les mots dans une liste
    Par masomo dans le forum Lisp
    Réponses: 4
    Dernier message: 01/08/2016, 13h42
  2. [C# 2.0] Détecter les doublons dans une List<string>
    Par Rodie dans le forum Windows Forms
    Réponses: 36
    Dernier message: 30/03/2013, 16h21
  3. [SP-2007] Comment lister les groupes d'un AD dans une liste sous SP ?
    Par thegritch dans le forum SharePoint
    Réponses: 1
    Dernier message: 17/10/2011, 17h09
  4. Réponses: 1
    Dernier message: 31/10/2008, 01h20
  5. Extraction dans une liste sous condition
    Par INFERNOTRONIC dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 08/07/2008, 15h44

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