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 :

Transformation formule en code vba [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de r.morel
    Homme Profil pro
    Dessinateur CAO
    Inscrit en
    Août 2014
    Messages
    339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Dessinateur CAO
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2014
    Messages : 339
    Par défaut Transformation formule en code vba
    Bonjour à tous

    Actuellement j'insère cette formule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =STXT(D12;1;SI(SIERREUR(CHERCHE(" ";D12;1)-1;"Erreur")="Erreur";NBCAR(D12);CHERCHE(" ";D12;1)-1))
    Par le biais d'une macro :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ActiveCell.FormulaR1C1 = _
            "=MID(RC[-2],1,IF(IFERROR(SEARCH("" "",RC[-2],1)-1,""Erreur"")=""Erreur"",LEN(RC[-2]),SEARCH("" "",RC[-2],1)-1))"
    J'essaye de comprendre comment ne plus insérer la formule mais vers "la fonction" dans la macro.
    J'ai donc créer une p'tite macro de test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub test()
    Dim Valeure_reference As String
    Dim Vz As Integer
    Vz = 12
     
    Valeure_reference = mid(cells(vz, 4),1, if(IfError(Search(" ", Cells(Vz, 4), 1) - 1, "Error") = "Error", len(cells(vz, 4)), Search(" ", Cells(Vz, 4), 1) - 1))
     
    MsgBox Valeure_reference
     
    End Sub
    Cependant elle ne compile pas :
    "Erreur de compilation : Erreur de syntaxe"
    Merci par avance

  2. #2
    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,

    Essaie comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Valeure_reference = "mid(" & Cells(Vz, 4) & ",1, if(IfError(Search("" "", " & Cells(Vz, 4) & ", 1) - 1, ""Error"") = ""Error"", len(" & Cells(Vz, 4) & "), Search("" "", " & Cells(Vz, 4) & ", 1) - 1))"

  3. #3
    Membre chevronné Avatar de r.morel
    Homme Profil pro
    Dessinateur CAO
    Inscrit en
    Août 2014
    Messages
    339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Dessinateur CAO
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2014
    Messages : 339
    Par défaut
    Bonjour,
    Merci pour votre réponse.

    Lorsque j'essaye le code il me renvoie :
    Nom : Capture.JPG
Affichages : 211
Taille : 29,1 Ko

    Cordialement.

  4. #4
    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
    Si tu veux le résultat de la formule, affecte celle-ci à une cellule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveCell.Formula = "mid(" & Cells(Vz, 4) & ",1, if(IfError(Search("" "", " & Cells(Vz, 4) & ", 1) - 1, ""Error"") = ""Error"", len(" & Cells(Vz, 4) & "), Search("" "", " & Cells(Vz, 4) & ", 1) - 1))"
    Et change ActiveCell selon le besoin
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A1").Formula = "mid(" & Cells(Vz, 4) & ",1, if(IfError(Search("" "", " & Cells(Vz, 4) & ", 1) - 1, ""Error"") = ""Error"", len(" & Cells(Vz, 4) & "), Search("" "", " & Cells(Vz, 4) & ", 1) - 1))"

  5. #5
    Membre chevronné Avatar de r.morel
    Homme Profil pro
    Dessinateur CAO
    Inscrit en
    Août 2014
    Messages
    339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Dessinateur CAO
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2014
    Messages : 339
    Par défaut
    Cela rempli la cellule avec le texte présent dans la MsgBox évoquée lors de mon message précédent.

    En fait je cherche si il y a un moyen de "faire le calcul" dans la macro et de renvoyer le résultat dans la cellule.

    Je vous remercie par avance.

  6. #6
    Membre Expert
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Par défaut
    Bonjour,

    Tu peux expliquer précisément ce que fait ta formule ?

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

Discussions similaires

  1. [XL-2010] formule vers code vba
    Par grisan29 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 02/12/2013, 21h13
  2. [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
  3. 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
  4. Transformer une Req SQL en code VBA
    Par nomade333 dans le forum VBA Access
    Réponses: 7
    Dernier message: 12/09/2007, 03h53
  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