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 :

pb de calcul (somme)


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Inscrit en
    Juin 2011
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2011
    Messages : 4
    Par défaut pb de calcul (somme)
    Bonjour,

    je cherche à afficher le résultat d'un calcul mais il m'affiche des résultats incohérents...la syntaxe ne doit pas être la bonne.
    Je voudrais :
    si la cellule Cr de la feuille B a le même contenu que la cellule Fq de la feuille A
    alors on ajoute la valeur de la cellule Jq de la feuille A divisée par 1000 à la valeur actuelle de la cellule Lr de la feuille B


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    For q = 6 To p
        For r = 22 To 107
     
    If 
       Worksheets("A").Range("F" & q) = Worksheets("B").Range("C" & r) 
    Then
       Worksheets("B").Range("L" & r) = Worksheets("B").Range("L" & r) + Worksheets("A").Range("J" & q) / 1000
     
            End If
     
        Next r
    Next q

    J'ai aussi essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("B").Range("L" & r).FormulaR1C1 = "=SUM(RC,product(Worksheets(""A"").Range(""J"" & q), 1/1000))"
    mais ça ne fonctionne pas non plus.

    Merci pour votre aide.

  2. #2
    Membre éprouvé
    Homme Profil pro
    Consultant comptable
    Inscrit en
    Mai 2011
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant comptable

    Informations forums :
    Inscription : Mai 2011
    Messages : 137
    Par défaut
    Qu est ce qui ne marche pas ? que te dis il ?

    pour le premier, essaye ce code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    For q = 6 To p
        For r = 22 To 107
     
    If Worksheets("A").Range("F" & q) = Worksheets("B").Range("C" & r) Then
       Worksheets("B").Range("L" & r) = Worksheets("B").Range("L" & r)+Worksheets("A").Range("J" & q) / 1000
     
    End If
     
        Next r
    Next q
    pour le deuxieme tu utilise des variables dans une formules excel qui va s'inscrire dans une cellule. Ca ne peux pas marcher comme ca, essaye l'enregistreur de macro

  3. #3
    Candidat au Club
    Inscrit en
    Juin 2011
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2011
    Messages : 4
    Par défaut
    En fait, il fait un calcul mais pas le bon...
    Par exemple, il m'affiche 60,2 au lieu de 200.

    Je pensais à une erreur de syntaxe mais c'est peut-être tout simplement dû à d'autres manips que je fais sur la feuille A avant.

    J'ai déjà essayé ce que tu me proposes mais ça donnait la même chose.

    Merci en tout cas de m'aider.

    finalement ça a l'air de fonctionner maintenant...mais je ne comprends pas pourquoi. Bref...

    maintenant c'est le "elseif" qui suit qui ne fonctionne pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ElseIf Worksheets("A").Range("F" & q) = "truc" 
    Then
    Worksheets("B").Range("L54") = Worksheets("B").Range("L54") + (Worksheets("A").Range("J" & q) / 1000)

  4. #4
    Membre très actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2010
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2010
    Messages : 149
    Par défaut
    Pourrais tu mettre toute ta condition ca pourrait aider?

    Quand tu dit que le else if ne fonctionne pas, c'est qu'il te sort un message d'erreur ou que le resultat n'est pas celui attendu?

  5. #5
    Candidat au Club
    Inscrit en
    Juin 2011
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2011
    Messages : 4
    Par défaut
    Voilà la boucle complète.
    (Désolée...je débute sur les forums informatiques...)

    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
    For q = 6 To p
     
        For r = 22 To 107
     
    If Worksheets("B").Range("F" & q) = Worksheets("B").Range("C" & r) Then
                Worksheets("B").Range("L" & r) = Worksheets("B").Range("L" & r) + (Worksheets("A").Range("J" & q) / 1000)
     
    ElseIf Worksheets("A").Range("F" & q) = "truc1" Then
                Worksheets("B").Range("L54") = Worksheets("B").Range("L54") + (Worksheets("A").Range("J" & q) / 1000)
     
    ElseIf Worksheets("A").Range("F" & q) = "truc2" Then
                Worksheets("B").Range("L98") = Worksheets("B").Range("L98") + (Worksheets("A").Range("J" & q) / 1000)
     
    ElseIf Worksheets("A").Range("F" & q) = "truc3" Then
                Worksheets("B").Range("L23") = Worksheets("B").Range("L23") + (Worksheets("A").Range("J" & q) / 1000)
     
    End If
     
     
        Next r     
    Next q

    Comme tout à l'heure, il me fait un calcul mais pas le bon.
    Peut-être faut-il que je sorte les "elseif" de la 2eme boucle "for" ???

  6. #6
    Membre très actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2010
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2010
    Messages : 149
    Par défaut
    Le probleme peut venir d'un peu partout !

    Essaie dans un premier temps de ne pas mettre de boucle For, en fixant les valeurs.
    Par exemple tu mets q = 10 etc ... pour voir ce qu'il te met.

    Sinon as-tu essayé de faire un pas à pas détaillé, tu met un point d'arret dans le code VBA et tu fait F8 pour passer à l'instruction suivante.
    Cela te permettra de controler les valeurs de tes variables

  7. #7
    Membre très actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2010
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2010
    Messages : 149
    Par défaut
    Envoi le message d'erreur ca serait utile

    je cherche à afficher le résultat d'un calcul mais il m'affiche des résultats incohérents...la syntaxe ne doit pas être la bonne.
    Je voudrais :
    si la cellule Cr de la feuille B a le même contenu que la cellule Fq de la feuille A
    alors on ajoute la valeur de la cellule Jq de la feuille A divisée par 1000 à la valeur actuelle de la cellule Lr de la feuille B
    Tente avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ...
    if sheets("A").Cells(F, q) = sheets("B").Cells(c,r) then
               Sheets("B").Cells(l,r) = (Sheets("B").Cells(l,r) + Sheets("A");Cells(j,q))/1000 
    end if

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

Discussions similaires

  1. Calcul somme dans requête
    Par froutloops62 dans le forum Access
    Réponses: 1
    Dernier message: 20/12/2006, 16h11
  2. [Requête] - [calcul] - Somme
    Par louroulou dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 04/07/2006, 16h05
  3. [Requete] Calcul Somme entre deux temps pour chaque jour
    Par nico33307 dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 21/03/2006, 00h58
  4. Plusieurs CALCULS somme dans un ETAT
    Par dynxd dans le forum IHM
    Réponses: 2
    Dernier message: 28/09/2005, 16h45
  5. Calcul/Somme XML / XSL , comment faire ?
    Par Superpoisson dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 23/09/2005, 12h28

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