Coda VBA pour ajouter une valeur sous conditions
Résolu/Fermé
Suki_BT
Messages postés
9
Date d'inscription
jeudi 28 avril 2016
Statut
Membre
Dernière intervention
15 février 2018
-
Modifié par Suki_BT le 28/04/2016 à 14:49
Suki_BT - 9 mai 2016 à 13:42
Suki_BT - 9 mai 2016 à 13:42
A voir également:
- Coda VBA pour ajouter une valeur sous conditions
- Ajouter un compte gmail - Guide
- Ajouter une signature sur word - Guide
- Ajouter une liste déroulante excel - Guide
- Ajouter un compte whatsapp - Guide
- Ajouter une application au démarrage - Guide
2 réponses
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
28 avril 2016 à 14:50
28 avril 2016 à 14:50
Bonjour,
Exemple (avec fichier ci-joint):
etilestoù?
Dans l’attente
Exemple (avec fichier ci-joint):
etilestoù?
Mettre le classeur sans données confidentielles en pièce jointe sur https://www.cjoint.com/
et coller le raccourci par un clic droit sur le lien proposé dans le message de réponse
Dans l’attente
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
29 avril 2016 à 08:02
29 avril 2016 à 08:02
Bonjour
essaies ce code. si ma remarque ne te convient pas remplace K par J
essaies ce code. si ma remarque ne te convient pas remplace K par J
Option Explicit
Const Jcal As Single = 0.5
'-----------------------------
Sub incrementer_jcal()
'SI M11 =0.5 - oui va vérifier les cellules G12 et H12
'SI G12 et H12 correspondent à G11 et H11 - oui ET
'SI J12 = J11+1 jour - oui 'REMARQUE (michel_m) J12=K11+1( car supérieur au dernier jour ???)
'ALORS M12 + 0, 5
Dim Nbre As Integer, Lig As Integer, CPtr As Integer
Application.ScreenUpdating = False 'fige le défileùent de l'écran: confort & rapidité
'nombre de jcal=0,5
Nbre = Application.CountIf(Columns("M"), Jcal)
If Nbre > 0 Then
'recherche lignes avec 0,5
Lig = 1
For CPtr = 1 To Nbre
Lig = Columns("M").Find(Jcal, Cells(Lig, "M"), xlValues).Row
'comparaison nom prénom sur 2 lignes
If Cells(Lig, "G") & Cells(Lig, "H") = Cells(Lig + 1, "G") & Cells(Lig + 1, "H") Then
'décalage de date >
If Cells(Lig + 1, "J") > Cells(Lig, "K") Then Cells(Lig + 1, "M") = Cells(Lig + 1, "M") + 0.5
End If
Next
End If
End Sub
Suki_BT
Messages postés
9
Date d'inscription
jeudi 28 avril 2016
Statut
Membre
Dernière intervention
15 février 2018
29 avril 2016 à 09:06
29 avril 2016 à 09:06
Merci Michel, je viens d'arriver au travail, je l'essaye dans la matinee matinée et je te dis :) Et encore une fois merci bcp.
Suki_BT
Messages postés
9
Date d'inscription
jeudi 28 avril 2016
Statut
Membre
Dernière intervention
15 février 2018
29 avril 2016 à 12:21
29 avril 2016 à 12:21
Michel,
Cela marche super bien, merci beaucoup.
J'ai essayé de rajouter une ligne dans le code pour supprimer la ligne de au-dessus, cela ne bugg pas mais supprime la ligne qui a été incrémentée. Qu'est ce que je fais de mal ? A la suite de la dernière ligne IF .... Then
'And Rows(Lig - 1).Delete
Bonne journée :)
Cela marche super bien, merci beaucoup.
J'ai essayé de rajouter une ligne dans le code pour supprimer la ligne de au-dessus, cela ne bugg pas mais supprime la ligne qui a été incrémentée. Qu'est ce que je fais de mal ? A la suite de la dernière ligne IF .... Then
'And Rows(Lig - 1).Delete
Bonne journée :)
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
>
Suki_BT
Messages postés
9
Date d'inscription
jeudi 28 avril 2016
Statut
Membre
Dernière intervention
15 février 2018
29 avril 2016 à 13:44
29 avril 2016 à 13:44
'décalage de date >
If Cells(Lig + 1, "J") > Cells(Lig, "K") Then Cells(Lig + 1, "M") = Cells(Lig + 1, "M") + 0.5
Rows(Lig).Delete
mais un p'tit que je ne comprend pas
ton tableau semble cumulé les absences: pourquoi alors limiter l'incrémentation à 0,5 ?
par ex Benedetti cumule 4 lignes d'absences
Suki_BT
Messages postés
9
Date d'inscription
jeudi 28 avril 2016
Statut
Membre
Dernière intervention
15 février 2018
29 avril 2016 à 13:57
29 avril 2016 à 13:57
Bonjour Michel,
Parce que cela correspond aux périodes d'absence distingués. les demi lignes qui sont incrémentés à 0.5 sont des départs en milieu de journée que je dois rajouter car cela se suit.
Exemple VARIN :
Il est parti en milieu de journée 15/02 mais il a continué en maladie du 16/02 au 26/02.
Donc la 0.5 + 11 jours
BENEDETTI ce sont 4 périodes distingués.
Parce que cela correspond aux périodes d'absence distingués. les demi lignes qui sont incrémentés à 0.5 sont des départs en milieu de journée que je dois rajouter car cela se suit.
Exemple VARIN :
Il est parti en milieu de journée 15/02 mais il a continué en maladie du 16/02 au 26/02.
Donc la 0.5 + 11 jours
BENEDETTI ce sont 4 périodes distingués.
Suki_BT
Messages postés
9
Date d'inscription
jeudi 28 avril 2016
Statut
Membre
Dernière intervention
15 février 2018
29 avril 2016 à 14:19
29 avril 2016 à 14:19
J'essayé le bout de code que tu m'as donnée et cela marché nickel.
Je pense que j'ai un peu de mal à comprendre la logique de déplacement dans la feuille. Je mettais le Rows(Lig - 1).Delete car je pensais qu'il fallait se déplacer en dessus pour supprimer la ligne.
Sa doit parce que je suis une femme et j'ai du mal avec les directions lol.
Merci bcp en tout cas, tu est super rapide et efficace :)
Je pense que j'ai un peu de mal à comprendre la logique de déplacement dans la feuille. Je mettais le Rows(Lig - 1).Delete car je pensais qu'il fallait se déplacer en dessus pour supprimer la ligne.
Sa doit parce que je suis une femme et j'ai du mal avec les directions lol.
Merci bcp en tout cas, tu est super rapide et efficace :)
Modifié par Suki_BT le 28/04/2016 à 15:03
Et merci Michel :) Je pensais l'avoir mis en pj.
28 avril 2016 à 17:14
Je te fais ca demain matin