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 :

Macro pour somme de cases si texte d'une autre case ne change pas


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Femme Profil pro
    Stagiaire
    Inscrit en
    Avril 2018
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Stagiaire

    Informations forums :
    Inscription : Avril 2018
    Messages : 1
    Par défaut Macro pour somme de cases si texte d'une autre case ne change pas
    Bonjour,

    Voilà le problème que je rencontre:

    J'ai un fichier excel de 255'000 lignes et 12 colonnes, les lignes étant classées alphabetiquement selon la colonne D. Ma colonne D contient du texte et ma colonne L contient des nombres. Beaucoup de mes cellules D contiennent le même texte, je souhaiterais donc créer une macro qui me ferait la somme des nombres de la colonne L pour toutes les cellules D contenant le même texte.

    Par exemple, si mes lignes 1 à 1200 contiennent le même texte en colonne D, j'aimerais qu'une case m'indique la somme de L1 à L 1200. Et ainsi de suite pour la prochaine suite de texte similaire de la colonne D...Qui peut aller d'une centaine à plusieurs milliers.

    J'ai essayé différentes combinaisons de boucle et de IF mais je n'arrive simplement pas à déterminer ces Range variables selon si le texte est similaire ou non. Pourriez-vous m'aider?

  2. #2
    Membre Expert Avatar de Transitoire
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2017
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 733
    Par défaut
    Bonjour,
    Puisque vous avez un base de données de x milliers de lignes avec 8 colonnes d'une feuil1.
    possibilité de faire une extraction dans la colonne Z(exemple)par filtre élaboré sur valeur colonne D sans doublons. Vous obtenez une colonne Z comprenant une seule fois toutes les possibilités de D. Ensuite, sur une feuille supplémentaire feuil2. vous copiez les en tètes des deux colonnes D et L de feuil1 et vous les placez dans A1 et B1 de Feuil2. Puis en partant toujours de cette feuille, vous faites une extraction élaborée de la première valeur de Z. avec une somme des valeurs de L(Feuil1) et vous inscrivez les deux valeurs en D1 et E1 sur Feuil2 . Il ne vous reste plus qu'a faire la même chose avec la deuxième valeur de Z avec une boucle automatique qui va a nouveau extraire, calculer, coller a la suite dans feuil2. Quand vous arrivez à la fin des valeurs de Z , vous aurez en Feuil2 une liste des valeurs de D avec le total (correspondant aux sommes) en E.
    C'est pas facile. mais ça marche.

    Cordialement

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 105
    Par défaut Après la bataille
    J'arrive après la bataille, mais , Transitoire, si tu reviens sur cette discussion, je te donne une procédure qui réalise exactement ce que tu veux faire. Je mets les libellés et leurs totaux dans ls colonnes Z et AA de ta feuille. Voilà le code :
    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 essai()
    Dim s1 As Worksheet
    Set s1 = ActiveWorkbook.ActiveSheet
                ' on va placer les totaux en colonnes 26 et 27
    lig1 = 1: lig2 = 1
    s1.Cells(lig2, 26) = s1.Cells(lig1, 4)      ' on place le premier libellé
    s1.Cells(lig2, 27) = 0                      'on initialise la celule qui contiendra les totaux
    Do
        Do Until s1.Cells(lig1, 4) <> s1.Cells(lig2, 26) 'on boucle jusqu'à ce que le libellé change
            s1.Cells(lig2, 27) = s1.Cells(lig2, 27) + s1.Cells(lig1, 12)    ' on joute les valeurs de la colonne 12 dans la colone 27
            lig1 = lig1 + 1
        Loop
        If s1.Cells(lig1, 4) = "" Then End    'on est arrivé à la fin : on s'en va!
                                                ' j'ai supposé qu'après la dernière ligne occupée, on trouve des lignes vides
        lig2 = lig2 + 1                         ' on avance d'une ligne en colonne 26
        s1.Cells(lig2, 26) = s1.Cells(lig1, 4)   ' on place le nouveau libellé
        s1.Cells(lig2, 27) = 0
    Loop
     
    End Sub
    Si ça peut t'être utile... Cordialement

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 105
    Par défaut
    Pardon, c'est à Irastage que je m'adressais!

  5. #5
    Membre Expert Avatar de Transitoire
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2017
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 733
    Par défaut
    Bonjour,
    Excellent cher "Pantagruel" Voila quelque chose digne du Frontispice de l'abbaye de Thélème "Fais ce que vouldras"

    Cordialement

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 105
    Par défaut
    Mince alors! Un scribe qui connait Rabelais...Sorcellerie?
    Au fait, elle tourne, ma boucle : je ne l'ai pas testée...?
    Cordialement.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 06/09/2017, 07h32
  2. Réponses: 4
    Dernier message: 27/03/2016, 00h32
  3. [XL-2000] Macro pour somme de cellules colorées
    Par clévic dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 06/06/2013, 22h51
  4. macro pour calculer la vitesse d'execution d'une macro
    Par victorzecat dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 08/12/2007, 14h34

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