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 :

Boucle VBA, additionner des lignes [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 30
    Par défaut Boucle VBA, additionner des lignes
    Bonjour, je vais vous exposer mon problème en espérant que vous pourrez m'aider.
    En fait, je dois faire une boucle dans un tableau de factures (listant tout les articles en colonne E de toute les factures en colonne F) et, sachant qu'une même facture contient plusieurs fois le même article, je dois additionner les lignes en doublon pour qu'il y ait au final une seule ligne par article par facture.

    Je sais pas si c'est très clair, voici le code que j'ai pour l'instant et qui me donne une "Erreur d'exécution '-2147417848 (80010108)':
    Erreur automation, l'objet invoqué s'est déconnecté de ses clients"

    Voici 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
        For m = 5 To lignefin2
            m = n
            Do While Range("E" & n).Value = Range("E" & n + 1).Value And Range("F" & n).Value = Range("F" & n + 1).Value
                Range("J" & n).FormulaR1C1 = Range("J" & n).Value + Range("J" & n + 1).Value
                Range("K" & n).FormulaR1C1 = Range("K" & n).Value + Range("K" & n + 1).Value
                Range("M" & n).FormulaR1C1 = Range("M" & n).Value + Range("M" & n + 1).Value
                Range("N" & n).FormulaR1C1 = Range("N" & n).Value + Range("N" & n + 1).Value
                Range("O" & n).FormulaR1C1 = Range("O" & n).Value + Range("O" & n + 1).Value
                Range("P" & n).FormulaR1C1 = Range("P" & n).Value + Range("P" & n + 1).Value
                Range("Q" & n).FormulaR1C1 = Range("Q" & n).Value + Range("Q" & n + 1).Value
                Range("R" & n).FormulaR1C1 = Range("R" & n).Value + Range("R" & n + 1).Value
                Range("S" & n).FormulaR1C1 = Range("S" & n).Value + Range("S" & n + 1).Value
                Rows(n + 1).Select
                Selection.Delete Shift:=xlUp
                n = n + 1
            Loop
        Next m

    EDIT : J'ai aussi essayé avec .Value au lieu du .FormulaR1C1 mais ça ne marche pas non plus.


    Je viens donc chercher votre aide en espérant pouvoir résoudre ce problème ! Merci d'avance !

  2. #2
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Par défaut
    Bonjour JoeJoeH,

    Voici une solution à tester

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
        For n = lignefin2 To 5 Step -1
            If Range("E" & n).Value = Range("E" & n - 1).Value And Range("F" & n).Value = Range("F" & n - 1).Value Then
                Range("J" & n) = Range("J" & n) + Range("J" & n - 1)
                Range("K" & n) = Range("K" & n) + Range("K" & n - 1)
                Range("M" & n) = Range("M" & n) + Range("M" & n - 1)
                Range("N" & n) = Range("N" & n) + Range("N" & n - 1)
                Range("O" & n) = Range("O" & n) + Range("O" & n - 1)
                Range("P" & n) = Range("P" & n) + Range("P" & n - 1)
                Range("Q" & n) = Range("Q" & n) + Range("Q" & n - 1)
                Range("R" & n) = Range("R" & n) + Range("R" & n - 1)
                Range("S" & n) = Range("S" & n) + Range("S" & n - 1)
                Rows(n - 1).Delete Shift:=xlUp
            End If
        Next n
    Cordialement.

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 30
    Par défaut
    Bonjour,

    Eh bien, rien à redire, ça marche et je te remercie vraiment pour cette réponse très rapide et efficace !

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

Discussions similaires

  1. [AC-2003] Boucle VBA sur des controles
    Par buzz73 dans le forum IHM
    Réponses: 2
    Dernier message: 29/06/2009, 11h30
  2. [Project]boucle vba pour des page microsot office project
    Par nb_fr31 dans le forum Général VBA
    Réponses: 2
    Dernier message: 19/10/2007, 12h28
  3. [Formulaire][VBA] Gestions des lignes du formulaire
    Par Oberown dans le forum VBA Access
    Réponses: 3
    Dernier message: 13/04/2007, 21h44
  4. [SQL-VBA]fusionner des lignes
    Par shagun dans le forum Requêtes et SQL.
    Réponses: 42
    Dernier message: 13/04/2007, 13h37
  5. [VBA] Supprimer des lignes dans une table
    Par shadockgreg dans le forum Access
    Réponses: 6
    Dernier message: 22/11/2006, 09h58

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