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

Excel Discussion :

comment figer une cellule dans VBA


Sujet :

Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 63
    Par défaut comment figer une cellule dans VBA
    Bonjour, voila j'ai un tableau et je voudrais figer la ligne de prix donc j'ai fait comme code la quantité * prix unitaire mais en faite ce qu'il me fait quand j'exécute la macro pour la première ligne ça fonctionne il prend bien la quantité * prix unitaire mais pour la deuxième ligne il fait la quantité de la deuxième ligne * quantité de la première ligne or je voudrais qu'il fasse la quantité de la deuxième ligne * prix unitaire

    comment faire?

  2. #2
    Membre chevronné Avatar de J.Michel
    Inscrit en
    Septembre 2007
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 63

    Informations forums :
    Inscription : Septembre 2007
    Messages : 279
    Par défaut
    Juste une question: Pöurquoi utiliser une macro ? des formules toutes simple feraient l'affaire dans ce cas

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 63
    Par défaut
    oui mais je suis en stage et ils veulent tout automatisé

  4. #4
    Membre chevronné Avatar de J.Michel
    Inscrit en
    Septembre 2007
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 63

    Informations forums :
    Inscription : Septembre 2007
    Messages : 279
    Par défaut
    Ok.
    Tu peux nous montrer ton code pour analyser un peu d'où vient l'erreur.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 63
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Feuil2.Cells(nb_ligne + 3, 19) = Feuil2.Cells(nb_ligne + 3, 8) * Feuil2.Cells(nb_ligne + 2, 8) + Feuil2.Cells(nb_ligne + 3, 9) * Feuil2.Cells(nb_ligne + 2, 9) + Feuil2.Cells(nb_ligne + 3, 10) * Feuil2.Cells(nb_ligne + 2, 10) + Feuil2.Cells(nb_ligne + 3, 11) * Feuil2.Cells(nb_ligne + 2, 11) + Feuil2.Cells(nb_ligne + 3, 12) * Feuil2.Cells(nb_ligne + 2, 12) + Feuil2.Cells(nb_ligne + 3, 13) * Feuil2.Cells(nb_ligne + 2, 13) + Feuil2.Cells(nb_ligne + 3, 14) * Feuil2.Cells(nb_ligne + 2, 14) + Feuil2.Cells(nb_ligne + 3, 15) * Feuil2.Cells(nb_ligne + 2, 15) + Feuil2.Cells(nb_ligne + 3, 16) * Feuil2.Cells(nb_ligne + 2, 16) + Feuil2.Cells(nb_ligne + 3, 17) * Feuil2.Cells(nb_ligne + 2, 17) + Feuil2.Cells(nb_ligne + 3, 18) * Feuil2.Cells(nb_ligne + 2, 18)

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 63
    Par défaut
    c'est les ligne 2 que je voudrais figer

  7. #7
    Membre chevronné Avatar de J.Michel
    Inscrit en
    Septembre 2007
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 63

    Informations forums :
    Inscription : Septembre 2007
    Messages : 279
    Par défaut
    A quoi correspond Nb_Ligne ?
    Si je comprend bien tu as une ligne qui contient les prix unitaires et une ligne qui contient les quantités
    Tu travailles sur les colonnes H à R et tu met ton résultat global en colonne S

    est-ce bien ça ?

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 63
    Par défaut
    oui c ça et je voudrais figer la ligne 2 des colonnes H à R pour qu'il prenne toujours le prix qui se trouve sur la ligne 2

  9. #9
    Membre chevronné Avatar de J.Michel
    Inscrit en
    Septembre 2007
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 63

    Informations forums :
    Inscription : Septembre 2007
    Messages : 279
    Par défaut
    Voilà une procédure qui semble fonctionner.
    Il faut donner la valeur de Nb_Ligne
    et réinitialiser la valeur de Feuil2.Cells(L_Qte, 19)
    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
     
    Sub CalcPrix()
        Dim Nb_Ligne            '???
        Dim L_Prix As Integer   'Ligne des prix
        Dim L_Qte As Integer    'Ligne des quantités
        Dim I As Integer        'Index de boucle For
     
     
        'On fixe les valeur de lignes
        L_Prix = Nb_Ligne + 2
        L_Qte = Nb_Ligne + 3
     
        'On calcule sur les colonnes 8 à 18
        For I = 8 To 18
            Feuil2.Cells(L_Qte, 19) = Feuil2.Cells(L_Qte, 19) + _
                                     (Feuil2.Cells(L_Prix, I) * Feuil2.Cells(L_Qte, I))
        Next I
    End Sub

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 63
    Par défaut
    ça fonctionne pas ça me fait toujours la même chose

    ça me met cela :

    0,65 prix total
    DECATHLON 10 6,5

    DECATHLON 13 130

    0,65 c mon prix unitaire

    et donc le 130 il me fait 13*10 or je voudrais qu'il me faite 13*0,65

  11. #11
    Membre chevronné Avatar de J.Michel
    Inscrit en
    Septembre 2007
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 63

    Informations forums :
    Inscription : Septembre 2007
    Messages : 279
    Par défaut
    Le prix unitaire est-il toujours fixé dans la même et unique cellule ?
    Si c'est le cas il faut une variable unique pour le prix unitaire et faire tous les calculs avec cette unique variable.

    Tu peux mettre ton fichier en pièce jointe pour mieux comprendre le problème.

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 63
    Par défaut
    non il est jamais le même mais bon pas grave avec juste la formule excel ça leur convient

    merci

  13. #13
    Membre chevronné Avatar de J.Michel
    Inscrit en
    Septembre 2007
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 63

    Informations forums :
    Inscription : Septembre 2007
    Messages : 279
    Par défaut
    Si tout est ok alors pense à cliquer sur

  14. #14
    Membre Expert Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Par défaut
    Bonjour à tous

    Voici une macro avec ce que j'ai compris (merci à j.michel d'avoir bien debrousaillé)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    sub calcul()
          dim i as integer, j as integer ' i=ligne, j = colonne
          for i = 3 to feuil2.range("A65536").end(xlup).row
               feuil2.cells(i,19) = 0
               for j = 8 to 18
                   feuil2.cells(i,19) = feuil2.cells(i,19) + (feuil2.cells(i,j) * feuil2.cells(2,j))
               next j
          next i
    end sub

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 63
    Par défaut
    ça fonctionne mais il m'efface automatiquement la valeur du dessus

  16. #16
    Membre Expert Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Par défaut
    re:

    Bizarre ca, tu n'as pas d'autre macro ? peux tu envoyer ton classeur ?

    @ te lire

  17. #17
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 63
    Par défaut
    ben j'arrive pas à l'envoyer

    mais bon c'est pas grave, avec la formule excel, ça leur convient

  18. #18
    Membre Expert Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Par défaut
    re:

    et quelle formule as tu mis ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMMEPROD($E3:$S3;$E$2:$S$2)
    tirer la formule vres le bas

  19. #19
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 63
    Par défaut
    ben avec la formule excel çà fonctionne mais je voulais voir si on pouvez le faire en exécutant la macro mais avec la formule çà marche donc c'est le principal

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

Discussions similaires

  1. comment colorer une cellule dans un JTable sous NerBeans?
    Par khadi8 dans le forum Composants
    Réponses: 1
    Dernier message: 22/04/2012, 18h39
  2. Comment insérer une ligne dans vba
    Par chou-estelle dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 20/12/2008, 16h04
  3. Comment arreter une Sub dans VBA apres une erreur
    Par deubelte dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 03/08/2007, 17h13
  4. Figer une cellule dans une MsgBox
    Par patrick55 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/06/2007, 11h34
  5. Comment modifier une cellule dans un JTable
    Par @yoyo dans le forum Composants
    Réponses: 10
    Dernier message: 22/03/2006, 17h48

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