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 :

Mettre une formule en 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 averti
    Homme Profil pro
    Employé
    Inscrit en
    Juin 2017
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Employé

    Informations forums :
    Inscription : Juin 2017
    Messages : 40
    Par défaut Mettre une formule en vba
    Bonjour à toutes et à tous,

    Voilà, je viens vers vous car je me retrouve coincé. J'ai une formule dans un tableau comprenant 380 colonnes et 265 lignes. La formule est donc étirée sur le nombre de cellules correspondantes, soit environ 100000 fois... Ca fait beaucoup et ça rend le fichier lourd. J'aimerai donc adapter le tout en vba. Pour ce faire, j'ai utilisé la fenêtre d'exécution du vba, en tapant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ?Range ("G9").Formula
    =IF(INDIRECT("'Competence Effectif'!"&ADDRESS(MATCH('Effectif Niveaux'!$E:$E,'Competence Effectif'!$E:$E,0),MATCH('Effectif Niveaux'!$8:$8,'Competence Effectif'!$8:$8,0)))="OUI","Niv 0 / Intégration","")
    J'ai essayé d'adapter plusieurs fois le code dans un Sub test, mais rien n'y fait ça plante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub test()
     
    Application.Volatile
     
    Range("G9").Formula = "=IF(INDIRECT(Competence Effectif!&ADDRESS(MATCH(Effectif Niveaux!$E:$E,Competence Effectif!$E:$E,0),MATCH(Effectif Niveaux!$8:$8,Competence Effectif!$8:$8,0)))=""OUI"",""Niv 0 / Intégration"","""")"
     
    End Sub
    Erreur 1004, Erreur définie par l'application ou par l'objet

    Auriez vous une solution à me proposer, sachant que j'aimerai adaptez le vba pour toutes les cellules ?

    Merci d'avance.

    Mat

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour

    Une formule est une chaîne de caractères.
    Regarde celle que tu as construite -->>
    =IF(INDIRECT(Competence Effectif!&ADDRESS(MATCH(Effectif Niveaux!$E:$E,Competence Effectif!$E:$E,0),MATCH(Effectif Niveaux!$8:$8,Competence Effectif!$8:$8,0)))="OUI","Niv 0 / Intégration","")
    Que pourrait selon toi y représenter par exemple "&ADDRESS" ?

    (ce n'est pas sans raison que je te fais une telle réponse, dont le but est de t'éveiller )

  3. #3
    Membre averti
    Homme Profil pro
    Employé
    Inscrit en
    Juin 2017
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Employé

    Informations forums :
    Inscription : Juin 2017
    Messages : 40
    Par défaut
    Bonjour unparia,

    Merci déjà de ton aide. Aucun soucis pour le type de réponse, au contraire j'aime bien comprendre plutôt que des réponses toutes cuites aussi

    Pour en revenir à ta question :

    =Que pourrait selon toi y représenter par exemple "&ADDRESS" ?
    En fait ma formule sous excel est construite comme cela pour obtenir les références de colonnes spécifiques. Donc une adresse spécifique, si c'est la réponse que tu attends de ma part, mais je suis pas sur du tout...

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    En fait ma formule sous excel est construite comme cela pour obtenir les références de colonnes spécifiques
    Ah ?
    Hé bien : montre-la donc, cette formule ainsi écrite sous Excel et qui fonctionnerait ainsi écrite.

  5. #5
    Membre averti
    Homme Profil pro
    Employé
    Inscrit en
    Juin 2017
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Employé

    Informations forums :
    Inscription : Juin 2017
    Messages : 40
    Par défaut
    la voilà la fameuse formule, et elle fonctionne hein

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(INDIRECT("'Competence Effectif'!"&ADRESSE(EQUIV('Effectif Niveaux'!$E:$E;'Competence Effectif'!$E:$E;0);EQUIV('Effectif Niveaux'!$8:$8;'Competence Effectif'!$8:$8;0)))="OUI";"Niv 0 / Intégration";"")

  6. #6
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    et tu ne vois pas la différence ? Vraiment pas ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(INDIRECT("'Competence Effectif'!"&ADRESSE(EQUIV('Effectif Niveaux'!$E:$E;'Competence Effectif'!$E:$E;0);EQUIV('Effectif Niveaux'!$8:$8;'Competence Effectif'!$8:$8;0)))="OUI";"Niv 0 / Intégration";"")
    Ta difficulté semble être tout simplement savoir construire une chaîne de caractères par concaténation

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par matimatfr Voir le message

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(INDIRECT("'Competence Effectif'!"&ADRESSE(EQUIV('Effectif Niveaux'!$E:$E;'Competence Effectif'!$E:$E;0);EQUIV('Effectif Niveaux'!$8:$8;'Competence Effectif'!$8:$8;0)))="OUI";"Niv 0 / Intégration";"")
    Serait-il possible d'avoir ton fichier (en enlevant tout ce qu'il y a de confidentiel) ? J'ai du mal à m'imaginer ce que fait ta formule en fait.

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

Discussions similaires

  1. VBA : mettre une formule dans toute une colonne de la ligne Z2 à Z30
    Par Alain777 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 04/05/2015, 21h54
  2. Comment mettre une formule dans une cellule ?
    Par Swiper dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 25/07/2007, 16h32
  3. [VBA-E] ecrire une formule en vba
    Par Huubb dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 25/01/2007, 14h15
  4. Paramétrer une formule en vba
    Par arnogef dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/08/2006, 11h48
  5. Copier une formule avec vba
    Par NAMORJOSE dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 19/05/2006, 00h12

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