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 :

Calcul sous VBA [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Février 2012
    Messages : 91
    Par défaut Calcul sous VBA
    Bonjour le forum,
    je veux creer une macro qui me permet d'automatiser les calcul dans deux colonnes
    dans plusieurs feuilles les formules que j'ai obtenue grace à l'enregistreur sont :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Range ("N4")
        ActiveCell.FormulaR1C1 = "=RC[-9]-(MAX(TODAY(),RC[-10]))"
    Range("N4").Select
        Selection.NumberFormat = "General"
     
    Range("O4").Select
        ActiveCell.FormulaR1C1 = "=(RC[-8]*RC[-1])/360"
    pour la premiére colonne j'ai essayer ce code mais ca ne marche pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub test1(occurs As String)
     
    With Sheets(occurs)
    For Each c In Range(.[D4], .Cells(Rows.Count, 4).End(xlUp))
        c.Offset(, 11) = "=c.offset(, 1)-(MAX(today(), c))"
    Next c
    End With
     
    End Sub
    quelqu'un peut m'aider svp

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Tu ne peux pas mettre des variables entre guillemets. Mets :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    c.Offset(, 11).Formula = "=" & c.Offset(, 1).Address & "-(MAX(today()," & c.Address & "))"

  3. #3
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Février 2012
    Messages : 91
    Par défaut
    bonjour Daniel merci pour ta reponse (comme dab) j'ai essayé en effet d'adapter mais je n'y arrive pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub test1(occurs As String)
     
    With Sheets(occurs)
    For Each c In Range(.[D4], .Cells(Rows.Count, 4).End(xlUp))
       c.Offset(, 11).Formula = "=" & c.Offset(, 1).Address & "-(MAX(today()," & c.Address & "))"
    Next c
     
    For Each b In Range(.[G4], .Cells(Rows.Count, 7).End(xlUp))
    b.Offset(, 9).Formula = "=" & b.adress & "* (b.offset(, 8) / 360)"
    b.Offset(, 10).Formula = "=" & b.adress & "* (-1) * & b.offset(, 1)"
    Next b
    End With
     
    End Sub
    ca marche pour ton code mais pour les deux autre formule ca ne fonctionne pas !

  4. #4
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2012
    Messages : 65
    Par défaut
    Bonjour,

    Mets les formules que tu veux tester.

  5. #5
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Par défaut
    L'adresse s'écrit Address et no Adress

  6. #6
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Tu dois :
    1. sortir les variables des guillemets
    2. mettre les adresses des variables range, comme dans une formule Excel
    3. ces c.. d'anglais mettent deux "d" au mot "Address"
    4. tu ne dois pas laisser d'espaces entre les guillemets, comme dans une formule Excel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For Each b In Range(.[G4], .Cells(Rows.Count, 7).End(xlUp))
        b.Offset(, 9).Formula = "=" & b.Address & "*(" & b.Offset(, 8).Address & "/360)"
        b.Offset(, 10).Formula = "=" & b.Address & "*(-1)*" & b.Offset(, 1).Address
    Next b
    End With

  7. #7
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Février 2012
    Messages : 91
    Par défaut
    Merci a tous
    Daniel ca fonctionne très bien une dérnière question si tu me permets j'aimerai au dessous mettre le total comment je pourrais faire ça stp (pour les 2 dérnières formules)

  8. #8
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Ajoute :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    .Cells(Rows.Count, "P").End(xlUp).Offset(1) = Application.Sum(Range(.[G4], .Cells(Rows.Count, 7).End(xlUp)).Offset(, 9))
    .Cells(Rows.Count, "Q").End(xlUp).Offset(1) = Application.Sum(Range(.[G4], .Cells(Rows.Count, 7).End(xlUp)).Offset(, 10))
    avant :

  9. #9
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Par défaut
    un commentaire comme ça, en passant.

    Pourquoi s'échiner à placer des formules dans les cellules plutôt que faire tous le traitement dans la macro ?

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

Discussions similaires

  1. [XL-2007] Calcul sous VBA?
    Par laskarlaskar dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 03/04/2013, 15h55
  2. Calcul sous VBA
    Par NewYork dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 23/12/2010, 23h12
  3. Pb de formule de calcul sous VBA
    Par bagheria85 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 06/09/2010, 11h58
  4. Réponses: 7
    Dernier message: 09/02/2010, 12h03
  5. Insertion dans une table d'une valeur calculée sous VBA
    Par fbourdon dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 13/11/2009, 20h52

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