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

Conception Discussion :

formule incrémentation conditionnelle


Sujet :

Conception

  1. #1
    Membre à l'essai
    Homme Profil pro
    commerce
    Inscrit en
    Juillet 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : commerce
    Secteur : Alimentation

    Informations forums :
    Inscription : Juillet 2015
    Messages : 5
    Par défaut formule incrémentation conditionnelle
    Bonsoir.

    J'ai un petit soucis pour remplir mon fichier excel. En gros je dois remplir des cellules d'une même colonne par incrémentation (en partant de 1 et par incrément de 1) en fonction d'une valeur X donnée par l'utilisateur.
    Lorsque la valeur de la cellule Y incrémentée est égale à la valeur X, l'incrémentation stoppe.

    Ca c'est pas compliqué à faire avec des "SI"

    Mais il y a une autre condition qui s'insère et pose problème. Une autre valeur Z peut-être entrée par l'utilisateur et ce que je voudrai faire, en cas d'ajout d'une valeur Z, c'est que lorsque la cellule Y incrémentée est égale à la première valeur, X, la cellule qui suit commence une nouvelle incrémentation à partir de 1 (et de +1) jusqu'à être égale à la deuxième valeur, Z.

    En plus, pour la deuxième incrémentation, il faudra que les cellules incrémentées comportent comme nom un texte ("cplt") suivi du chiffre (de 1 à Z).

    Ca semble pas très clair mais voici une toute petite partie de la feuille: essai.xls

    Votre aide sera la bienvenue

  2. #2
    Membre Expert Avatar de Gado2600
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Mai 2013
    Messages
    903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Office VBA

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

    Il te faudra, je pense, ce type de formule à partir de ta cellule C14 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(NB.SI.ENS($C$13:$C13;1)=1;SI(C13>=$C$6;1;C13+1);SI(ET(C13<$C$7;GAUCHE(H14;4)="cplt");C13+1;C13))
    Dans celle-ci, tu comptes tout d'abord, le nombre de "1" que tu as dans ta liste. Cela te permettra de déterminer si tu est dans le cas de la valeur X (retourne 1) ou dans la valeur Z (retourne 2 ou plus) avec cette partie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SI(NB.SI.ENS($C$13:$C13;1)=1
    Dans le premier cas, on utilise ta formule :
    Dans le second cas (valeur Z), on vérifie que tu rentres bien dans le critère "est-ce que j'étais une valeur strictement inférieure à celle demandée" ET "faut-il que je prenne en compte cette ligne de calcul (fonction gauche)".
    Si tu remplis les critères, tu incrémentes d'un point sinon, tu conserves la valeur.

    J'ai vu sur ton fichier que tu cherches à mettre X comparatifs. Je ne sais pas du coup si c'est la meilleure solution...
    Je pense qu'un bouton avec un code VBA serait plus efficace dans ces cas-là car en plus, je ne sais pas si tes données seront dans dans le même ordre de tes valeurs (cad : X, X, Z, Z,Z, A, B, B et non X, Z, X, A, B, Z, Z, B).

    Cordialement,

  3. #3
    Membre à l'essai
    Homme Profil pro
    commerce
    Inscrit en
    Juillet 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : commerce
    Secteur : Alimentation

    Informations forums :
    Inscription : Juillet 2015
    Messages : 5
    Par défaut
    OK, je vais voir si la formule fonctionne.

    Tu penses que ce serait mieux de passer par du vba? Dans ce cas on pourrait faire comment? Parce que je sais lancer une macro mais le code c'est pas mon fort.

    [EDIT] la formule que tu as écris ne fonctionne pas comme il faut. Il y a plusieurs problèmes:
    - le texte "cplt" ne s'affiche pas devant les valeurs incrémentées de Z
    - il faudrait que lorsque les valeurs de Z sont atteintes, les cellules d'après soient vides (dans ta formule, toutes les cellules d'après sont remplies par la valeur de Z)
    - ça ne fonctionne pas lorsque la valeur de X est supérieure à 7 (Z n'est plus pris en compte) or pour X je dois pouvoir aller jusque 40 inclus (et pour Z, A et B, maximum 20 chacun)

    Je te renvoies le fichier excel avec ta formule en action:

    [EDIT 2] j'ai oublié le lien avec ton fichier: essai2.xls

  4. #4
    Membre Expert Avatar de Gado2600
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Mai 2013
    Messages
    903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Office VBA

    Informations forums :
    Inscription : Mai 2013
    Messages : 903
    Par défaut
    Ben, c'est surtout qu'une formule pour prendre en compte tous les cas serait hyper longue à mon avis. Les pros des formules me contrediront peut être, je ne sais pas.

    En VBA, il te faudrait utiliser ce qu'on appelle un Tableau Numérique dans lequel stocker les lignes que tu devras inscrire (à expliquer à l'écrit, c'est un peu compliqué).

    Regardes sur ce lien, tu as des explications : http://silkyroad.developpez.com/vba/tableaux/

    Cordialement,

  5. #5
    Membre à l'essai
    Homme Profil pro
    commerce
    Inscrit en
    Juillet 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : commerce
    Secteur : Alimentation

    Informations forums :
    Inscription : Juillet 2015
    Messages : 5
    Par défaut
    je vais jeter un œil dessus alors. Merci.

  6. #6
    Membre à l'essai
    Homme Profil pro
    commerce
    Inscrit en
    Juillet 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : commerce
    Secteur : Alimentation

    Informations forums :
    Inscription : Juillet 2015
    Messages : 5
    Par défaut
    Rebonsoir Gado2600.

    Je reviens à toi après avoir lu ton explication en lien.
    Et bien... je n'ai rien compris. Ça dépasse pas mal mes compétences en fait.

    Mais tu as probablement raison, il faudrait que je passe pas des macro.

    Quelqu'un pourrait-il m'orienter sur la macro à créer?

    PS: j'essaye de passer par des "IF THEN ELSE" mais je pars sur des boucles.

  7. #7
    Membre à l'essai
    Homme Profil pro
    commerce
    Inscrit en
    Juillet 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : commerce
    Secteur : Alimentation

    Informations forums :
    Inscription : Juillet 2015
    Messages : 5
    Par défaut
    Désolé pour le triple post qui ne se fait normalement pas.

    C'est simplement pour savoir si un modérateur aurait la gentillesse de déplacer ce sujet dans la section "macro-vba" pour tenter d'obtenir de l'aide pour la création d'une macro répondant à mon problème. Merci

  8. #8
    Membre Expert Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Par défaut
    Bonjour,

    En [A1] tu mets ton X, en [A3] tu mets ton Z et sur toute la colonne B tu mets la formule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(LIGNE()<=$A$1+$C$1;SI(LIGNE()<=$A$1;LIGNE();"cplt"&LIGNE()-$A$1);"")
    Voila un exemple de resultat :
    A B C
    1 5 1 3
    2 2
    3 3
    4 4
    5 5
    6 cplt1
    7 cplt2
    8 cplt3
    9
    10
    11

Discussions similaires

  1. [XL-2007] Erreur Dans ma Formule Calcul Conditionnel
    Par le Corse dans le forum Excel
    Réponses: 3
    Dernier message: 19/11/2014, 14h10
  2. [XL-2010] Formule format conditionnel
    Par kalalex dans le forum Excel
    Réponses: 2
    Dernier message: 20/12/2011, 14h35
  3. [Toutes versions] comptage incrémental conditionnel
    Par ji_louis dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 24/08/2011, 17h47
  4. Formule matricielle conditionnelle
    Par athos7776 dans le forum Excel
    Réponses: 7
    Dernier message: 03/03/2011, 19h06
  5. [XL-2000] Formule matricielle conditionnelle
    Par snay73 dans le forum Excel
    Réponses: 4
    Dernier message: 28/11/2010, 16h25

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