Coda VBA pour ajouter une valeur sous conditions
Résolu
Suki_BT
Messages postés
9
Statut
Membre
-
Suki_BT -
Suki_BT -
Bonjour,
J'ai fais une petite formation de Excel VBA Initiation mais je ne peux pas pratiquer souvent, j'ai besoin d'aide. Je cherche un code à insérer dans une macro qui traite les absences et je voudrais que pour chaque cellule dont la valeur est de "0.5" dans la colonne M la valeur +0.5 soit ajoutée à la cellule d'en-dessous sous 3 condition : Si les colonnes G et H soit identiques et que la date début (colonne J) soit = Date fin +1 jour.
Exemple (avec fichier ci-joint):
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
ALORS M12+0,5
Pouvez-vous m'aider svp ?
Merci par avance
J'ai fais une petite formation de Excel VBA Initiation mais je ne peux pas pratiquer souvent, j'ai besoin d'aide. Je cherche un code à insérer dans une macro qui traite les absences et je voudrais que pour chaque cellule dont la valeur est de "0.5" dans la colonne M la valeur +0.5 soit ajoutée à la cellule d'en-dessous sous 3 condition : Si les colonnes G et H soit identiques et que la date début (colonne J) soit = Date fin +1 jour.
Exemple (avec fichier ci-joint):
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
ALORS M12+0,5
Pouvez-vous m'aider svp ?
Merci par avance
A voir également:
- Coda VBA pour ajouter une valeur sous conditions
- Ajouter une signature sur word - Guide
- Ajouter une liste déroulante excel - Guide
- Ajouter une vidéo sur powerpoint - Guide
- Ajouter une application au démarrage - Guide
- Impossible d'ajouter un ami sur facebook - Guide
2 réponses
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
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
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 :)
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.
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 :)
Et merci Michel :) Je pensais l'avoir mis en pj.
Je te fais ca demain matin