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 :

Calculer avec une condition


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 300
    Par défaut
    Bonjour,

    Pierre sur ce forum m'a donné une solution pour eclaté un mois en semaine en y ajoutant sur chaque fin de semaine le nom "total" avec cette formule :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(D5="Total";D4+1;SI(JOURSEM(D5;2)<7;D5+1;"Total"))
    Mardi 1
    Mercredi 2
    Jeudi 3
    Vendredi 4
    Samedi 5
    Dimanche 6
    Total
    Lundi 7
    Mardi 8
    Mercredi 9
    Jeudi 10
    Vendredi 11
    samedi 12
    Dimanche 13
    Total
    etc.

    A droite j'ai trois colonnes ou je vais rentrer des heures au format hh:mm, comment faire pour que Excel calcul automatiquement ces heures de la semaine à chaque fois qu'il va trouver sur la ligne gauche "Total" je pense que c'est possible même sans VBA, mais je ne suis pas asser espérimenté.

    Merci pour votre aide trés précieuse.

    Bonsoir,

    Ou alors si on peux mettre les numéros de semaine devant chaque jour et ensuite avec la fonction SOMME.SI remplir un tableau en dessous des jours du mois, dans ce cas plus besoin de "Total" dans les jours.


  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut AgriPhilou
    Comme d'habitude, pas assez d'infos : on sait qu'en D, tu as tes jours, trois colonnes qui contiennent des horaires (mais lesquels ?)
    Donc, en D la date, avec total, en E le nombre d'heures journalière en F, le total cumulatif journalier ( au format [hh]:mm pour autoriser 35:00) en F5
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI($D4="Total";0;F4)+E5
    tu le recopies vers le haut en t'arrêtant à la ligne 2, pour ne pas avoir d'ennuis de #Réf
    A+

  3. #3
    Membre éclairé Avatar de Nounours1
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    442
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 442
    Par défaut
    Merci
    Pour les heures :
    Colonne E = les 23 premières heures
    Colonne F = les heures suivantes
    Colonne G = Dimanche et jours fériés.

    Mais lorsque je vais changer de mois la ligne total va bouger de place, le calcul ne pourra plus se faire automatiquement.

    Merci beaucoup.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 300
    Par défaut
    Merci Nounours1

    C'est bien ça, c'est les heures supplémentaires, je ne trouve pas de solutions pour un travail automatique, je voudrai en saisissant le premier jour d'un mois éclaté en semaine comme Pierre me l'a indiqué ça fonctionne bien mais maintenant je voudrai que les heures soit calculée par semaine en face de Total ou dans un tableau plus bas en reprenant ces semaines.

    Quand je vais taper un nouveau mois la ligne total va bouger, voila le problème.

    Je suis clair ?

  5. #5
    Membre émérite
    Avatar de Montor
    Homme Profil pro
    Autre
    Inscrit en
    Avril 2008
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Avril 2008
    Messages : 879
    Par défaut
    Bonsoir
    Si j'ai bien compris voila la partie VRAI de la condition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     Sub Macro6()
    ActiveCell.FormulaR1C1 = _
    "=IF(RC[1]=""Total"",R[-1]C+R[-2]C+R[-3]C+R[-4]C+R[-5]C+R[-6]C+R[-7]C)"
    End Sub

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 300
    Par défaut
    Merci Delphydelphy,

    J'ai peut-être trouvé une solution à mon problème mais j'aurais encore besoin d'un petit coup de pouce :

    Formule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(C11="Total";SOMME.SI($D$5:$D$40;$F$8;$E$5:$E$40);NO.SEMAINE(C11;2))
    Le résultat de total devrait apparaitre en heures suivant le format [hh]mm
    Comment intégrer ce format dans cette ligne de formule.

    Merci d'avance.

  7. #7
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut AgriPhilou
    Tu ne peux pas intégrer un format dans une formule, mais rien ne t'empêche de mettre le format avant, manuellement
    A+

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 300
    Par défaut
    Merci Gorfael, je ne suis pas sûr car suivant les mois les noms "Total" vont changer de place et comme Excel calcul avec SOMME.SI() à chaque fois qu'il rencontre "Total" sur sa gauche le format prédéfinie avant sera écrasé, non ?

    Encore merci.

  9. #9
    Membre émérite
    Avatar de Montor
    Homme Profil pro
    Autre
    Inscrit en
    Avril 2008
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Avril 2008
    Messages : 879
    Par défaut
    Tu peut utiliser ça
    [CODE]=TEXTE(D2;"[hh]:mm")

  10. #10
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    En l'insérant dans ta formule, un simple exemple (je prends la discussion en marche... )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(C11="Total";TEXTE(SOMME.SI($D$5:$D$40;$F$8;$E$5:$E$40);"jj/mm/aa");TEXTE(NO.SEMAINE(C11;2);"00"))
    Tu adaptes

  11. #11
    Membre émérite
    Avatar de Montor
    Homme Profil pro
    Autre
    Inscrit en
    Avril 2008
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Avril 2008
    Messages : 879
    Par défaut
    Voir cette example et contente toi

  12. #12
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut à tous
    Citation Envoyé par AgriPhilou Voir le message
    Merci Gorfael, je ne suis pas sûr car suivant les mois les noms "Total" vont changer de place et comme Excel calcul avec SOMME.SI() à chaque fois qu'il rencontre "Total" sur sa gauche le format prédéfinie avant sera écrasé, non ?

    Encore merci.
    Le format ne s'appliquera que s'il recontre un nombre => total affichera total, les heures seront au format [hh]:mm
    Ou sinon, tu peux tout transformer en texte, comme avec la formule de ouskel'n'or, mais dans ce cas, tu ne peux plus faire d'opération dessus, ou il faut retransformer en heures
    A+

Discussions similaires

  1. Réponses: 2
    Dernier message: 08/12/2014, 12h23
  2. Exécution d'un calcul avec une condition
    Par nomade333 dans le forum VBA Access
    Réponses: 1
    Dernier message: 19/12/2011, 06h37
  3. [XL-2007] calculer un rang avec une condition
    Par pepsister dans le forum Excel
    Réponses: 1
    Dernier message: 16/06/2010, 09h24
  4. [VxiR2] Calcul de l'âge avec une condition sur indicateur
    Par KrusK dans le forum Deski
    Réponses: 2
    Dernier message: 18/12/2009, 15h37
  5. envoyer submit avec une condition !
    Par delphinote dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 01/07/2005, 15h52

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