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 :

Comment adapter une formule matriciel en macro


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Homme Profil pro
    EMPLOYER
    Inscrit en
    Août 2016
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : EMPLOYER
    Secteur : Alimentation

    Informations forums :
    Inscription : Août 2016
    Messages : 107
    Par défaut Comment adapter une formule matriciel en macro
    Bonjour
    comment adapter cette formule matriciel en macro pour la gestion des absence des 10 collaborateurs
    Je souhaite que l'équivalent de cette formule s'applique pour le collaborateur 1 dans la plage(FU14 : TU14)
    En fonction des dates de debut et de fin que je saisi dans les différente periode plus bas dans la feuille a la ligne 39 dans le fichier joint
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {=SI(OU(ET(FU$3>=$FP39;FU$3<=$FR39);ET(FU$3>=$FS39;FU$3<=$FU39);ET(FU$3>=$FX39;FU$3<=$GB39);ET(FU$3>=$GE39;FU$3<=$GI39);ET(FU$3>=$GL39;FU$3<=$GP39));"CP";SI(OU(ET(FU$3>=$FP40;FU$3<=$FR40);ET(FU$3>=$FS40;FU$3<=$FU40);ET(FU$3>=$FX40;FU$3<=$GB40);ET(FU$3>=$GE40;FU$3<=$GI40);ET(FU$3>=$GL40;FU$3=$GP40));"CN";SI(OU(ET(FU$3>=$FP41;FU$3<=$FR41);ET(FU$3>=$FS41;FU$3<=$FU41);ET(FU$3>=$FX41;FU$3<=$GB41);ET(FU$3>=$GE41;FU$3<=$GI41);ET(FU$3>=$GL41;FU$3=$GP41));"CD";SI(OU(ET(FU$3>=$FP42;FU$3<=$FR42);ET(FU$3>=$FS42;FU$3<=$FU42);ET(FU$3>=$FX42;FU$3<=$GB42);ET(FU$3>=$GE42;FU$3<=$GI42);ET(FU$3>=$GL42;FU$3=$GP42));"MA";SI(OU(ET(FU$3>=$FP43;FU$3<=$FR43);ET(FU$3>=$FS43;FU$3<=$FU43);ET(FU$3>=$FX43;FU$3<=$GB43);ET(FU$3>=$GE43;FU$3<=$GI43);ET(FU$3>=$GL43;FU$3=$GP43));"MOD";SI(OU(ET(FU$3>=$FP44;FU$3<=$FR44);ET(FU$3>=$FS44;FU$3<=$FU44);ET(FU$3>=$FX44;FU$3<=$GB44);ET(FU$3>=$GE44;FU$3<=$GI44);ET(FU$3>=$GL44;FU$3=$GP44));"FOR";SI(OU(ET(FU$3>=$FP45;FU$3<=$FR45);ET(FU$3>=$FS45;FU$3<=$FU45);ET(FU$3>=$FX45;FU$3<=$GB45);ET(FU$3>=$GE45;FU$3<=$GI45);ET(FU$3>=$GL45;FU$3<=$GP45));"CCS";"")))))))}
    J’espère être suffisamment explicite dans ma demande merci d'avance
    DEMO.xlsm

  2. #2
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    Bonjour,

    via la propriété   FormulaArray   …

    Rien qu'en activant l'Enregistreur de macro puis en saisissant la formule dans une cellule !

    P'tit rappel :   Important : Fichiers joints dans les discussions

    ___________________________________________________________________________________________________________
    Je suis Paris, Egypte, Nigeria, New-York, Mogadicio, Barcelone, London, Manchester, Stockholm, Istanbul, Berlin, Nice, Bruxelles, Charlie, …

  3. #3
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    la méthode est à revoir ... la limite d'un FormulaArray étant de 255 caractères

  4. #4
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Merdum
    !

    Salut Joe, effectivement je n'avais pas vu la longueur de cette formule !
    Mais déjà via l'Enregistreur de macro il aurait bien eu un début de piste …

  5. #5
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    En regardant rapidement cette formule, je pense que c'est surtout la conception et la mécanique du classeur qui nécessiterait une nouvelle modélisation.

    un gestion d'absence (quand bien même Excel n'est pas là pour ça) est plutôt à gérer :

    - avec un onglet sous forme de Base de Données
    - avec un onglet de restitution, là on peut le travailler sous format "Collaborateur unique" ou "Equipe de collaborateur"

    Avec cette structure, on pourra raisonnablement travailler à coup de formules INDEX/EQUIV (ou assimilés) voir par traitement pur VBA

    C'est donc un sujet à traiter dans la sous-section "Conception" du forum

    Après, s'il faut vraiment injecter du FormulaArray, et qu'on dépasse les 255 caractères, il faut donc, en l'absence de simplification possible des noms (puisqu'ici on travaille sur trop de plages volantes), injecter une formule décomposée, et utiliser des Replace

    un exemple que j'ai proposé dans une autre discussion : https://www.developpez.net/forums/d1...e/#post8976416

  6. #6
    Membre confirmé
    Homme Profil pro
    EMPLOYER
    Inscrit en
    Août 2016
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : EMPLOYER
    Secteur : Alimentation

    Informations forums :
    Inscription : Août 2016
    Messages : 107
    Par défaut
    Citation Envoyé par joe.levrai Voir le message
    En regardant rapidement cette formule, je pense que c'est surtout la conception et la mécanique du classeur qui nécessiterait une nouvelle modélisation.

    un gestion d'absence (quand bien même Excel n'est pas là pour ça) est plutôt à gérer :

    - avec un onglet sous forme de Base de Données
    - avec un onglet de restitution, là on peut le travailler sous format "Collaborateur unique" ou "Equipe de collaborateur"

    Avec cette structure, on pourra raisonnablement travailler à coup de formules INDEX/EQUIV (ou assimilés) voir par traitement pur VBA

    C'est donc un sujet à traiter dans la sous-section "Conception" du forum

    Après, s'il faut vraiment injecter du FormulaArray, et qu'on dépasse les 255 caractères, il faut donc, en l'absence de simplification possible des noms (puisqu'ici on travaille sur trop de plages volantes), injecter une formule décomposée, et utiliser des Replace

    un exemple que j'ai proposé dans une autre discussion : https://www.developpez.net/forums/d1...e/#post8976416
    bonsoir merci pour votre interet

    si vous aviez une solution vba je serais comblé
    merci d'avance

Discussions similaires

  1. [XL-2010] Comment transposé une formule INDEX + EQUIV en macro VBA
    Par mandrake57 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 17/07/2016, 09h12
  2. [XL-2007] Macro comment copier une formule jusqu'à la derniere ligne d'une col
    Par zaza45 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 04/01/2012, 14h44
  3. Comment affecter une formule matricielle longue dans une cellule
    Par dav_e77 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/01/2007, 18h56
  4. Comment adapter une IA
    Par Gouyon dans le forum Développement 2D, 3D et Jeux
    Réponses: 5
    Dernier message: 04/08/2006, 11h51
  5. Réponses: 5
    Dernier message: 20/06/2006, 08h24

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