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 :

formule en code vba


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Divers
    Inscrit en
    Février 2017
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Divers

    Informations forums :
    Inscription : Février 2017
    Messages : 295
    Par défaut formule en code vba
    bonjour,
    Pour mon boulot, je dois transformer une formule en ligne de code vba
    Pouvez vous m'aider?

    voici la formule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(Janvier!F15<>"";(INDEX(Divers!$A$3:$C$23;EQUIV(Janvier!$F15;Divers!$B$3:$B$23;0);3))+(SI(Janvier!$E15<>"";SI(Janvier!$E15<=Divers!$B$28;Divers!$B$31;)));)
    Merci

  2. #2
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    bonjour
    démarre ton enregistreur automatique , mettre le curseur ou se trouve la formule, clic sur entrée et tu aura ton code

  3. #3
    Membre éclairé
    Homme Profil pro
    Divers
    Inscrit en
    Février 2017
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Divers

    Informations forums :
    Inscription : Février 2017
    Messages : 295
    Par défaut
    merci
    mais je voudrais pouvoir intégrer ma boucle

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim i As Integer
     
    For i = 6 To 37
        Range("a" & i) = Feuil2.Range("D" & i + 9) - Feuil2.Range("c" & i + 9)
        If Range("a" & i) <= Feuil14.Range("B32") Then
            Range("b" & i).Value = Feuil14.Range("B31")
            Else: Range("b" & i).Value = Range("a" & i) - Feuil14.Range("B31")
        End If
        ActiveCell.FormulaR1C1 = _
            "=IF(Janvier!R[9]C[3]<>"""",(INDEX(Divers!R3C1:R23C3,MATCH(Janvier!R[9]C6,Divers!R3C2:R23C2,0),3))+(IF(Janvier!R[9]C5<>"""",IF(Janvier!R[9]C5<=Divers!R28C2,Divers!R31C2,))),)"
     
    Next i

  4. #4
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    Si je comprends bien la demande mais pour moi je fais de la façon suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Range("D3").Select
        ActiveCell.FormulaR1C1 = "=IF(COUNTIF(R3C3:RC3,RC[-1])>COUNTIF(R3C12:R" & DL & "C12,RC[-1]),RC[-1],"""")"
     
        Range("D3").Select
        Selection.AutoFill Destination:=Range("D3:D" & DL), Type:=xlFillDefault

  5. #5
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    mais je voudrais pouvoir intégrer ma boucle
    Pourquoi ?
    Il te suffit d'affecter la formule, en une fois, à toutes les cellules. Non?

  6. #6
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Comme cela
    Personnellement, je préfère, depuis peu il est vrai, travailler avec FormulalLocal

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Option Explicit
     
    Public Sub formulation()
     
    Const laformule As String = "=B3*3"
     
    With Worksheets(1).Range("A3:A58")
            .FormulaLocal = laformule
            'Si lon souhaite une copie de valeurs afin de ne pas conserver la formulation
            .Value = .Value
    End With
     
    End Sub

  7. #7
    Membre éclairé
    Homme Profil pro
    Divers
    Inscrit en
    Février 2017
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Divers

    Informations forums :
    Inscription : Février 2017
    Messages : 295
    Par défaut
    je cale

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Dim i As Integer
     
    For i = 6 To 37
        Range("a" & i) = Feuil2.Range("D" & i + 9) - Feuil2.Range("c" & i + 9)
        If Range("a" & i) <= Feuil14.Range("B32") Then
            Range("b" & i).Value = Feuil14.Range("B31")
            Else: Range("b" & i).Value = Range("a" & i) - Feuil14.Range("B31")
        End If
        If Feuil2.Range("f" & i + 9) <> "" Then
     
        (INDEX(Divers!R3C1:R23C3,MATCH(Janvier!R[9]C6,Divers!R3C2:R23C2,0),3))+(IF(Janvier!R[9]C5<>"""",IF(Janvier!R[9]C5<=Divers!R28C2,Divers!R31C2,))),)
     
    Next i
    End Sub

  8. #8
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Bonjour rosemma,

    2 solutions
    1 - L'enregistreur de macro, et tu obtiendras sans doute une formule de type R1C1
    2 - Utiliser la formule dans ton langage utilisateur par la propriété FormulaLocal

    Pour être complet, tu peux consulter le tutoriel de l'ami Philippe à ce sujet

Discussions similaires

  1. [XL-2010] Transformation formule en code vba
    Par r.morel dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 04/09/2014, 17h06
  2. [XL-2010] formule vers code vba
    Par grisan29 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 02/12/2013, 21h13
  3. [XL-2010] Traduire une formule en code VBA
    Par thomasdu40 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 13/07/2012, 09h39
  4. Ajout d'une formule par code vba
    Par Runsh63 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/05/2011, 09h50
  5. Parseur formule Excel <-> Code VBA
    Par gretch dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/08/2007, 18h08

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