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 "Total" qui fonctionne mal [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 31
    Par défaut Macro "Total" qui fonctionne mal
    Bonjour à tous ! J'en appel encore à votre savoir (promis dès que j'arriverais à faire fonctionner mon fichier je me mettrais à aider les gens ! )

    Voilà j'ai la macro ci dessous qui, dans un premier temps, m'insère dans la colonne T et U une formule pour les lignes où en B il y à le mot "Total" à gauche sur l'ensemble des feuilles concernées (du 12e au dernier). Cela fonctionne très bien.
    Dans un second temps, la macro est censé me faire un total de toutes les lignes (dans les colonnes T et U) où en B il y à le mots "Total" à gauche sur les mêmes feuilles. C'est là que le bât blesse...
    En fait la Macro va bien faire le "Total des sous totaux" sur la feuille n°12 mais sur la feuille n°13 elle va faire le "Total des sous totaux" + le total de la feuille n°12, etc...

    Ci dessous la Macro en question, et je vous mets en pièce jointe le fichier :
    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
    Sub Total()
    Dim LastLig As Long, Deb As Long, Fin As Long
    Dim T As Double, U As Double
    Dim Prem As String
    Dim c As Range
     
    For I = 12 To Sheets.Count
    With Sheets(I)
        LastLig = .Cells(.Rows.Count, 1).End(xlUp).Row
        Set c = .Range("B2:B" & LastLig).Find("Total*", LookIn:=xlValues, lookat:=xlPart)
        Deb = 2
        If Not c Is Nothing Then
            Prem = c.Address
            Do
                Fin = c.Row - 1
                .Range("T" & Fin + 1).Formula = "=SUMIF(E" & Deb & ":E" & Fin & ",""<>"",T" & Deb & ":T" & Fin & ")"
                .Range("U" & Fin + 1).Formula = "=SUM(U" & Deb & ":U" & Fin & ")"
                Deb = Fin + 2
                T = T + .Range("T" & Fin + 1)
                U = U + .Range("U" & Fin + 1)
                Set c = .Range("B2:B" & LastLig).FindNext(c)
            Loop While Not c Is Nothing And c.Address <> Prem
        End If
        .Range("T" & LastLig).Resize(, 2) = Array(T, U)
     
    End With
    Next I
    End Sub
    Désolé encore si je m'exprime mal, demandez et je tenterais de faire mieux !
    Encore merci d'avance pour ceux qui voudrons bien m'aider
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Bonjour,

    Il faudrait peut-être remettre les variables à 0 après la recopie des totaux, avant de passer à la feuille suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
       .Range("T" & LastLig).Resize(, 2) = Array(T, U)
        T = 0
        U = 0
    Cdlt

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 31
    Par défaut
    Un immense merci ! Ca fonctionne parfaitement (je vais voir sur la longueur mais ya pas de raison !)

    Mais je t'avoue ne pas comprendre pourquoi il faut faire ça

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/04/2014, 16h32
  2. un DELETE qui fonctionne mal
    Par HULK dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 06/02/2006, 18h59

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