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 :

.Formula produit une erreur [XL-MAC 2011]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Secteur : Services à domicile

    Informations forums :
    Inscription : Décembre 2013
    Messages : 3
    Par défaut .Formula produit une erreur
    Bonjour,

    Je tente d'écrire une formule dans chaque cellule de la colonne E avec ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    '   Recréer la formule de la colonne E
     
        Dim CellForm As String
     
        For i = 4 To noFinS
    '       CellForm = "=SI(B" & i & "-C" & i & "-D" & i & ">0;B" & i & "-C" & i & "-D" & i & ";0)"
    '      ou bien
            CellForm = "=SI(LC(-3)-LC(-2)-LC(-1)>0;LC(-3)-LC(-2)-LC(-1);0)"
     
            Debug.Print CellForm
            Range("E" & i).Formula = CellForm
     
        Next i
    Le print est conforme à mes attentes mai la macro plante sur Range avec le message : la méthode "Formula" de l'objet "Range" a échoué !!!

    Je ne comprends pas où est l'erreur

    Merci

    Antineos

  2. #2
    Invité
    Invité(e)
    Par défaut Bonjour,
    tu est en VBA pas en Tableur, pas de [si] mais des [if] pas de [;] mais des[,]
    réalise ton équation dans la cellule B5 (côté tableur) puis dans la fenêtre d'exécution vb écris:
    Code debug : Sélectionner tout - Visualiser dans une fenêtre à part
    ?range("b5").formular1c1

  3. #3
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

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

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Bonjour,

    Formula demande une formule en anglais.
    Soit tu changes le SI par IF, soit tu passes par FormuleLocal et laisse en français
    Par contre, Formula sera portable sur des systèmes en anglais autant qu'en français.

    De plus, comme tu utilises le mode R1C1, il faudra probablement que tu passes par FormulaR1C1 ou FormulaR1C1Local selon les mêmes recommandations. En anglais, LC deviendrait RC.

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Secteur : Services à domicile

    Informations forums :
    Inscription : Décembre 2013
    Messages : 3
    Par défaut
    Citation Envoyé par parmi Voir le message
    Bonjour,

    Formula demande une formule en anglais.
    Soit tu changes le SI par IF, soit tu passes par FormuleLocal et laisse en français
    Par contre, Formula sera portable sur des systèmes en anglais autant qu'en français.

    De plus, comme tu utilises le mode R1C1, il faudra probablement que tu passes par FormulaR1C1 ou FormulaR1C1Local selon les mêmes recommandations. En anglais, LC deviendrait RC.
    Merci,
    J'ai modifié le code selon vos recommendations et j'ai testé avec les 2 versions de CellForm. Aucune ne fonctionne :
    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
    Sub Macro1()
    '
    ' Macro1 Macro
    '
    '   Recréer la formule de la colonne E
        Dim CellForm As String
        For i = 4 To 10 
           CellForm = "=IF(B" & i & "-C" & i & "-D" & i & ">0;B" & i & "-C" & i & "-D" & i & ";0)"
    'ou bien
    '        CellForm = "=IF(RC(-3)-RC(-2)-RC(-1)>0;RC(-3)-RC(-2)-RC(-1);0)"
            Debug.Print CellForm
            Range("E" & i).Formula = CellForm
     
        Next i
        End Sub
    A force de lire et relire je ne trouve plus les erreurs...

  5. #5
    Invité
    Invité(e)
    Par défaut
    écris ton équation dan une cellule et fais ce que je t'es dit:
    fenêtre d’exécution dans VB touche [CTRL] + [G]
    Code fenêtre d’exécution : Sélectionner tout - Visualiser dans une fenêtre à part
    ?range("B5").formular1c1 'et [ENTER]

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Secteur : Services à domicile

    Informations forums :
    Inscription : Décembre 2013
    Messages : 3
    Par défaut
    Un grand merci.
    Je n'avais pas encore remarqué la ponctuation...

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

Discussions similaires

  1. Ce code produit une erreur que je ne comprend pas
    Par Andrew_Hobson dans le forum Débuter
    Réponses: 4
    Dernier message: 19/08/2009, 09h20
  2. ACOS() provoque "Une erreur de domaine s'est produite"
    Par franculo_caoulene dans le forum Développement
    Réponses: 2
    Dernier message: 19/09/2008, 16h33
  3. Réponses: 3
    Dernier message: 12/05/2008, 18h05
  4. Une erreur s'est produite
    Par andy38 dans le forum MS SQL Server
    Réponses: 0
    Dernier message: 28/11/2007, 01h00
  5. une erreur qui se produit sur un code VBA
    Par bambi98 dans le forum VBA Access
    Réponses: 3
    Dernier message: 10/02/2007, 14h13

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