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 :

VBA insertion d'une formule somme avec des données dynamique


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Juin 2014
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Juin 2014
    Messages : 21
    Points : 19
    Points
    19
    Par défaut VBA insertion d'une formule somme avec des données dynamique
    bonjour a tous

    je suis en train de travailler sur fichier excel incluant des maccro, étant débutant et ne connaissant pas toute les futilités de ce langage, je me confronte à quelques problèmes

    Je souhaite insérer dans une collone de "n" ligne la formule excel somme pour toute la ligne

    voila comment je m'y prend :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    For i = 0 To nblignetri 'variable indiquant le nombre de ligne dans mon tableau
     
    Range("i10").Offset(i).FormulaLocal = "=sum(Range(j10).offset(i): range(j10).offset(i,200))" 
    'le nombre de collone etant variable au cours du temps, avec 200 je suis sure de prendre toutes les donnée
     
    Next i
    J'ai essayé avec "zz10" afin de m’affranchir du 200, mais cela ne fonctionne pas non plus
    il m'affiche "l'erreur 1004"
    je pense que cela viens de la manière d'indiquer la plage des cellules dans la formule somme, une erreur de guillemet ou autre mais après avoir essayé différentes façon, je bloque.

    Pouvais m'aider à résoudre ce prolème svp?
    y'a t-il un moyen plus simple d’écrire cette fonction

    je vous remercie pour votre aide

    yann

  2. #2
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut

    Bonjour,

    vu le code, la version d'Excel n'est pas française, si ?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Juin 2014
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Juin 2014
    Messages : 21
    Points : 19
    Points
    19
    Par défaut
    merci de t’intéresser à ma question

    si, c'est une version française

    J'ai mit le mot "sum" après avoir lu sur certain forum qu'il fallait l'inscrire comme ça
    suite à ta question question, j'ai essayé avec "somme", j'ai le même problème

    afin de compléter les données mon problème, je précise qu'au moment où la maccro se lance, les cellules dont je veux faire la somme ne contienne aucune valeur
    je ne pense pas que ce soit un problème mais peut être que je me trompe.

  4. #4
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut

    Pour une version locale, effectivement la propriété FormulaLocal fait l'affaire
    mais la formule doit être identique au contenu de la cellule depuis la feuille de calculs …

    Dans un environnement international, mieux vaut utiliser la propriété Formula nativement en anglais.

    Astuce pour la traduction native d'une formule locale : sélectionner la cellule puis ouvrir
    la fenêtre Exécution de l'environnement VBA puis y entrer ? activecell.formula et valider !

    Le but du jeu étant la « formule VBA » devant reproduire exactement le même texte de la formule de feuille de calculs …

    Donc Range seul ne suffit pas à renvoyer une adresse d'une plage de cellules dans une formule car il renvoie un objet
    et non pas une adresse : il faut donc ne pas oublier de lui coller sa propriété Address !
    Consulter son aide intégrée au VBA pour y découvrir ses paramètres.

    Cells(10 + i, 9).Formula = "=SUM(" & Cells(10 + i, 10).Resize(, 200).Address & ")"

    Astuce pour accélérer la procédure : désactiver avant la boucle le mode de calcul automatique et l'affichage,
    voir l'aide concernant les propriétés Calculation et ScreenUpdating
    Et ne pas oublier de réactiver le mode de calcul automatique avant de sortir de la procédure !

    __________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …

  5. #5
    Membre à l'essai
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Juin 2014
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Juin 2014
    Messages : 21
    Points : 19
    Points
    19
    Par défaut
    SUPERBE!!!!!

    Merci beaucoup pour ton aide et ton explication.
    En effet, cela me parait logique maintenant mais il fallait le savoir.

    encore merci pour tout

    cdt

    yann

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

Discussions similaires

  1. Faire une formule simplifiée avec des conditions
    Par Akino974 dans le forum Conception
    Réponses: 0
    Dernier message: 29/07/2014, 14h03
  2. Réponses: 1
    Dernier message: 29/12/2008, 15h21
  3. Ouverture d une pop up avec des données
    Par *alexandre* dans le forum JSF
    Réponses: 2
    Dernier message: 10/12/2008, 15h37
  4. Réponses: 1
    Dernier message: 01/03/2008, 11h25
  5. Réponses: 11
    Dernier message: 18/10/2007, 12h49

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