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 :

Code VBA: somme de cellules avec boucle unique


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Janvier 2014
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Janvier 2014
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Code VBA: somme de cellules avec boucle unique
    Bonsoir,

    Je débute sur VBA et je souhaiterais un petit coup de main pour terminer un premier "devoir".

    Je souhaiterais développer un code permettant de réaliser des sommes de cellules (contenant des lettres sans signification), le tout étant inclus dans une boucle. J'ai développé un code (il vaut ce qu'il vaut...) mais cela ne fonctionne pas. Par exemple:
    - en C4 indiquer la somme des cellules C45, C86, C127, C168... jusque C902.
    - en C5 indiquer la somme des cellules C46, C87, C128, C169... jusque C903.
    - en C6 indiquer la somme des cellules C47, C88, C129, C170... jusque C904.
    ...
    - en C40 indiquer la somme des cellules C81, C122, C163, C204... jusque C938.

    A chaque fois, le bond est de 41 (pour cela qu'une boucle me parait possible...

    Vous comprenez l'intérêt de ma boucle, elle m'épargne 36 lignes (sachant que je dois réaliser le tout sur plusieurs colonnes...)

    Voici le code auquel j'avais pensé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub synthese()
    Dim j As Long
    For j = 4 To 40
    Cells(j, 3) = Cells(j + 41, 3) + Cells(j + 82, 3) + Cells(j + 123, 3) + Cells(j + 164, 3) + Cells(j + 205, 3) + Cells(j + 246, 3) + Cells(j + 287, 3) + Cells(j + 328, 3) + Cells(j + 369, 3) + Cells(j + 410, 3) + Cells(j + 451, 3) + Cells(j + 492, 3) + Cells(j + 533, 3) + Cells(j + 574, 3) + Cells(j + 615, 3) + Cells(j + 656, 3) + Cells(j + 697, 3) + Cells(j + 738, 3) + Cells(j + 779, 3) + Cells(j + 820, 3) + Cells(j + 861, 3)
    Next
    End Sub
    Merci de votre aide,

    Thomas

  2. #2
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour

    Citation Envoyé par Thomas4530 Voir le message
    Bonsoir,
    Je souhaiterais développer un code permettant de réaliser des sommes de cellules (contenant des lettres sans signification),
    On ne peut pas faire la somme d'une cellule qui contient du texte.



    le tout étant inclus dans une boucle. J'ai développé un code (il vaut ce qu'il vaut...) mais cela ne fonctionne pas. Par exemple:
    - en C4 indiquer la somme des cellules C45, C86, C127, C168... jusque C902.
    Je n'ai pas vraiment le temps d'élaborer, mais pour cette première ligne, tu peux faire plus efficace avec la fonction native d'Excel (compilée) Somme(). Tu pourras t'inspirer de cela, pour compléter ta boucle.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cells(4,3).formulalocal = "=Somme("c45:c902)"
    ou, ce qui revient au même:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cells(4,3).formula = "=Sum("c45:c902)"

    P.S. J'ai l'impression (vraiment pas essayé, je peux me tromper) que tu as
    codé ton cells à l'envers. Pour autant que me souvienne c'est :

    cells(ligne, colonne)

    Et c'est la même chose dans un tableau à double entrée (VB et VBA)
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  3. #3
    Membre expérimenté
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Points : 1 499
    Points
    1 499
    Par défaut somme de cellules
    bonjour,

    tout d abord avec un pas de 41 , en partant de 45 la dernière cellule est 906 et non 902. 45 +(41*21) = 906

    voici un code qui devrait donner satisfaction si j'ai bien compris le problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Sub somme()
    For j = 4 To 40 step 1                                     ' de C4 à C40 avec pas = 1
        Cells(j, 3) = 0                                    ' réinitialisation avant calcul suivant
        For i = 41 + j To 902 + j Step 41        pas = 41.
        '  Au premier passage avec j = 4 : 41+4 = 45  puis 86, 127 .....
        '  Au second passage avec j = 5 : 41+5 = 45  puis 87, 128 .....
        '  et ainsi de suite ............
            Cells(j, 3) = Cells(j, 3) + Cells(i, 3)    
        Next i
    Next j
    End Sub
    Cordialement,

Discussions similaires

  1. Code VBA - Référence à une cellule et autre
    Par Yvouille dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/07/2010, 20h57
  2. code VBA copie colle cellule d'1 fichier excel à 1autre
    Par tony020422 dans le forum Macros et VBA Excel
    Réponses: 30
    Dernier message: 03/06/2009, 18h47
  3. somme de cellule avec une condition
    Par fullcircle dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 23/06/2006, 07h17
  4. [VBA][Débutante] Fonction Excel avec Boucle
    Par Inelukia dans le forum Macros et VBA Excel
    Réponses: 32
    Dernier message: 11/01/2006, 19h31
  5. Réponses: 4
    Dernier message: 13/10/2005, 14h44

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