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 :

somme d'une même valeur sur le même tableau


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 18
    Par défaut somme d'une même valeur sur le même tableau
    Bonjour,
    je suis un peu just niveau timing, on doit finir notre inventaire de fin d'année et on m'a demander de sortir une macro pour gagner du temps.

    Je voudrais savoir si je dois utiliser 2 boucles For pour rechercher dans le même tableau une référence et cumuler ses quantités...ou faire la même chose mais avec une 1 boucle for et une boucle Do avec condition.

    bien sur après je copie le cumule total de chaque réf. sur un nouvelle feuille.

    en vous remerciant.
    Sofiane
    j'ai joint une partie de mon fichier excel

    les références se trouvent en colonne 3 et les quantités en colonne 15
    Fichiers attachés Fichiers attachés

  2. #2
    Membre chevronné
    Inscrit en
    Octobre 2008
    Messages
    273
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Octobre 2008
    Messages : 273
    Par défaut
    Bonjour,

    Tu as le choix entre plusieurs solutions.

    Moi j'opterai pour une requête.

    1) Tu enregistres ton fichier et tu nommes ton tableau
    2) Données / données externes / créer une requête / excel files*
    3) Tu donnes le chemin de ton fichier
    4) Tu importe ton tableau
    5) Suivant / Afficher les données ou modifier dans msquery / Terminer
    6) Tu cliques sur le bouton 'SQL' dans la barre d'outil
    7) Tu tape dans la fenêtre SQL : select [N° article], sum(Quantité) from nomdetontableau group by [N° article]
    8) OK / fichier / renvoyer les données vers excel.

    Je te conseille toutefois d'enlever les espaces aux noms de champs, car je ne suis pas sur pour les crochets :
    [N° article] : avec espace ??
    N°article : sans espace

    Bon courage.

    @+

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 18
    Par défaut
    Ok merci, sur sql, j'ai reussi à faire ma requête, mais le truc c'est que je le voudrais en vba... pour par la suite mettre le tout en page...

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 11
    Par défaut
    Désolé si j'ai pas bien compris :

    Tu as plusieurs articles identiques sur des lignes différentes, et tu voudrai faire le total c'est bien ça ??

    EDIT: Car j'ai fait un truc pour rechercher différents articles (selon leur code ) qui était implanter dans différentes salles :

    exemple :

    Salle | Article | Quantité
    1 | article1 | 20
    1 | article 33 | 10
    2| Article 20 | 2
    ...

    Et ça me le mettait en forme :

    Article | Quantité

    Article 1 | 125
    Article 2 | 2330
    ...

    Faut juste que tu me dise ce que je dois compter ou soustraire ... C'était pas de la gestion de stock c'était pour un appel d'offre, mais ça peut s'appliquer parfaitement.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 18
    Par défaut
    c'est ça!
    mais mes données se trouvent sur la même feuille!!
    genre:
    art A | 190
    art A | 180
    art A | 180
    art B | 145
    art C | 10
    art C | 124
    art D | 180
    art E | 14

    voilà, ma macro doit faire la somme pour chaque ART
    et apres je copie la somme dans un endroit sur une autre feuille

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 11
    Par défaut
    Voila, j'ai pas retrouvé mon fichier original, car j'ai changer de boite, et je le possède plus.
    Heureusement que je me souviens de la logique ^^

    Edit: je suis partit de l'idée que le numéro de l'articles était ce qui dissociait les articles entres eux, et que le somme devez se faire à partir des nombres de la dernière colonne, ça donne ç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
    Sub RegrouperArticle()
    Dim I
    Dim J
    Dim MaxFeuilleDonnées As Integer
    Dim NomFeuille1
    Dim NomFeuille2
    Dim QuantitéArticle As Integer
    Dim NomArticle As String
     
    '=====================================
    'Renseigner les noms des deux Feuilles
    '=====================================
     
    NomFeuille1 = "Feuil1"
     
    NomFeuille2 = "Feuil2"
     
    '=================
    'Trie des articles
    '=================
     
     
    MaxFeuilleDonnées = ThisWorkbook.Worksheets(NomFeuille1).Range("C2").End(xlDown).Row
     
    For I = 2 To MaxFeuilleDonnées
    NomArticle = ThisWorkbook.Worksheets(NomFeuille1).Cells(I, 3)
     
     
    For J = 2 To 60000
    'Si article déjà trouvé, on ajoute les quantités
        If ThisWorkbook.Worksheets(NomFeuille2).Cells(J, 1) = NomArticle Then
        ThisWorkbook.Worksheets(NomFeuille2).Cells(J, 2).Value = ThisWorkbook.Worksheets(NomFeuille2).Cells(J, 2).Value + ThisWorkbook.Worksheets(NomFeuille1).Cells(I, 15).Value
        Exit For
        'si article non trouvé, on le créer.
            Else
            If ThisWorkbook.Worksheets(NomFeuille2).Cells(J, 1) = "" Then
     
            ThisWorkbook.Worksheets(NomFeuille2).Cells(J, 1) = NomArticle
            QuantitéArticle = ThisWorkbook.Worksheets(NomFeuille2).Cells(J, 2).Value + ThisWorkbook.Worksheets(NomFeuille1).Cells(I, 15).Value
            ThisWorkbook.Worksheets(NomFeuille2).Cells(J, 2).Value = QuantitéArticle
            Exit For
            End If
        End If
    Next
    Next
     
     
    End Sub
    Alors la logique veut, que tu renseigne les noms des deux feuilles (l'une appelé données, c'est là ou y'a les renseignements à chercher, et l'autre pour faire le tableau de récapitulation.)

    Ensuite y'a plus qu'a lancer ! Je l'ais testé sur le bout de fichier que tu a lié avec ton premier post, chez moi ça marche niquel !!

    EDIT :

    je les pas écrit en automatique, mais pour relancer une recherche, tu doit supprimer les informations de la seconde feuille, et pour mieux lire, faire un trie par ordre alphabétique...

    Mais vu que tu voulais un truc qui marche rapidement, je me suis pas lancé dans ça...(quoique facile à réaliser vous me direz ^^).

    PS: ça peut prendre quelque minute selon la taille de ton fichier.

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

Discussions similaires

  1. remplir une colonne entière avec la même valeur
    Par potili2 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/11/2007, 12h24
  2. [Configuration] Valeurs différentes pour même code sur 2 serveurs
    Par Xris dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 10
    Dernier message: 12/02/2007, 01h40
  3. [SQL] Copie de valeur sur la même table
    Par 22yo dans le forum Access
    Réponses: 2
    Dernier message: 19/08/2006, 08h21
  4. Acquitter une requête POST sur la même connexion
    Par phaby dans le forum Langage
    Réponses: 2
    Dernier message: 18/04/2006, 10h59
  5. Plusieurs version d'une même App sur un même serveur
    Par Jeweller dans le forum XMLRAD
    Réponses: 27
    Dernier message: 14/02/2006, 11h33

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