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 :

Concaténation d'une formule dans une boucle for [XL-2013]


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
    Consultant fonctionnel
    Inscrit en
    Mars 2018
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant fonctionnel

    Informations forums :
    Inscription : Mars 2018
    Messages : 21
    Par défaut Concaténation d'une formule dans une boucle for
    Bonjour,

    Je travaille actuellement sur un tableau contenant pour chaque semaine (en colonne), le temps moyen passé au téléphone et le taux d'appels décrochés, et en ligne la liste des techniciens). Et les deux dernières colonnes sont la moyenne pour le temps et le taux

    Nom : Forum1.PNG
Affichages : 148
Taille : 2,3 Ko

    Cependant ce tableau n'est pas fixe, j'ai créé une procédure qui met à jour le tableau par rapport aux données d'une nouvelle semaine en décalant les 2 colonnes cette procédure marche très bien jusqu'à ce que je procède à l'écriture de la formule moyenne dans une boucle en concaténation (pour parcourir une colonne sur 2)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    FinBas = Range("A1048576").End(xlUp).Row
    DebutMoy = FinACD - 1 'Fin ACD correspond à la fin du tableau avec toutes les semaines 
    Moyenne = ""
    For i = 4 To FinBas
        Moyenne = "=MOYENNE("
        For j = 2 To FinACD - 1 Step 2
        Moyenne = Moyenne & LettreColonne(j) & i & ";"
        Next
        Moyenne = Left(Moyenne, Len(Moyenne) - 1) & ")"
        Cells(i, FinACD + 1) = Moyenne 'Ligne qui bug
    Next
    Lorsque je fais pas à pas, avant la ligne qui bug, Moyenne vaut la formule que je cherche, mais l'erreur renvoyée est la 1004.

    Je sais pas si j'ai assez bien expliqué mon problème, je répondrai à vos questions s'il manque des informations !

    Merci d'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,

    J'essaierais en utilisant l'adresse des cellules et en me servant de FormulaLocal (dans ton cas)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ........
    Moyenne = Moyenne & Cells(i, j).address & ";"
    ........
        Cells(i, FinACD + 1).FormulaLocal = Moyenne 'Ligne qui bug
    Regarde tout de même ce que retourne Moyenne avant de l'écrire -> avec Msgbox ou Debug.Print

  3. #3
    Membre averti
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Mars 2018
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant fonctionnel

    Informations forums :
    Inscription : Mars 2018
    Messages : 21
    Par défaut
    J'ai oublié de préciser que la fonction LettreColonne permet de retourner une lettre lorsque l'on lui donne un chiffre, juste pour préciser.

    Je vais tester ta façon parmi je te tiens au courant !

    Merci en tout cas !

  4. #4
    Membre averti
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Mars 2018
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant fonctionnel

    Informations forums :
    Inscription : Mars 2018
    Messages : 21
    Par défaut
    Re,

    Du coup la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells(i, FinACD + 1).FormulaLocal = Moyenne
    renvoie la même erreur :

    Erreur d'éxécution '438' (ça change de 1004) : Propriété ou méthode non gérée par cet objet...

  5. #5
    Membre averti
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Mars 2018
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant fonctionnel

    Informations forums :
    Inscription : Mars 2018
    Messages : 21
    Par défaut
    Trouvé !

    J'ai remplacé le Cells par un range

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    FinBas = Range("A1048576").End(xlUp).Row
    Moyenne = ""
    For i = 4 To FinBas
        Moyenne = "=MOYENNE("
        For j = 2 To FinACD - 1 Step 2
        Moyenne = Moyenne & Cells(i, j).Address & ";"
        Next
        Moyenne = Left(Moyenne, Len(Moyenne) - 1) & ")"
        MsgBox Moyenne
        Range(LettreColonne(FinACD + 1) & i).FormulaLocal = Moyenne
    Next
    Merci Parmi !

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

Discussions similaires

  1. [Toutes versions] Imbriquer une formule dans une formule à l'aide de l'outil Insertion de fonction
    Par Philippe Tulliez dans le forum Contribuez
    Réponses: 0
    Dernier message: 27/08/2014, 12h21
  2. [XL-2010] Formule : attribuer une formule dans une cellule
    Par popi33370 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/03/2014, 19h06
  3. Réponses: 3
    Dernier message: 06/03/2013, 14h00
  4. Réponses: 3
    Dernier message: 29/01/2008, 13h08
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 14h48

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