Copier coller une date en ajoutant des jours avec conditions
Résolu/Fermé
laricci
Messages postés
19
Date d'inscription
lundi 15 avril 2013
Statut
Membre
Dernière intervention
17 juin 2013
-
12 juin 2013 à 14:48
laricci Messages postés 19 Date d'inscription lundi 15 avril 2013 Statut Membre Dernière intervention 17 juin 2013 - 17 juin 2013 à 11:00
laricci Messages postés 19 Date d'inscription lundi 15 avril 2013 Statut Membre Dernière intervention 17 juin 2013 - 17 juin 2013 à 11:00
A voir également:
- Copier coller une date en ajoutant des jours avec conditions
- Copier coller pdf - Guide
- Copier une vidéo youtube - Guide
- Historique copier-coller android - Guide
- Symbole clavier copier coller - Guide
4 réponses
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 239
12 juin 2013 à 23:05
12 juin 2013 à 23:05
Bonjour,
fais plutôt qcq chose dans ce genre :
if [A2] = "facile" then
Range("class_b")=Range("class_c")+2
elseif [A2] = "moyen" then
Range("class_b")=Range("class_c")+5
....
endif
Comme tu parles de date dans une cellule de type texte il y aurau peut-être des conversions à faire mais sans fichier exemple...
eric
fais plutôt qcq chose dans ce genre :
if [A2] = "facile" then
Range("class_b")=Range("class_c")+2
elseif [A2] = "moyen" then
Range("class_b")=Range("class_c")+5
....
endif
Comme tu parles de date dans une cellule de type texte il y aurau peut-être des conversions à faire mais sans fichier exemple...
eric
laricci
Messages postés
19
Date d'inscription
lundi 15 avril 2013
Statut
Membre
Dernière intervention
17 juin 2013
13 juin 2013 à 11:33
13 juin 2013 à 11:33
Bonjour Eric,
J'ai essayé de faire comme tu as dis, cela fonctionne parfaitement si je le fais pour chaque cellule à part mais quand je le fais pour toute la plage de cellule ça ne fonctionne pas.
Merci beaucoup pour ton aide, j'ai mis un exemple sur https://www.cjoint.com/?3Fnlqgkr08q
Si tu peux y jeter un coup d'oeil et me dire qu'est ce qui ne va pas, ça serait super ;)
Chaque colonne contient une plage de cellule nommée comme suit : Colonne A (class_a) Colonne B (class_b) Colonne C (class_c)
class_c contient les dates initiales et class_b les dates de class_c + X jours en fonction de class_a.
Merci d'avance et bonne journée
Cordialement
J'ai essayé de faire comme tu as dis, cela fonctionne parfaitement si je le fais pour chaque cellule à part mais quand je le fais pour toute la plage de cellule ça ne fonctionne pas.
Merci beaucoup pour ton aide, j'ai mis un exemple sur https://www.cjoint.com/?3Fnlqgkr08q
Si tu peux y jeter un coup d'oeil et me dire qu'est ce qui ne va pas, ça serait super ;)
Chaque colonne contient une plage de cellule nommée comme suit : Colonne A (class_a) Colonne B (class_b) Colonne C (class_c)
class_c contient les dates initiales et class_b les dates de class_c + X jours en fonction de class_a.
Merci d'avance et bonne journée
Cordialement
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 239
Modifié par eriiic le 13/06/2013 à 12:02
Modifié par eriiic le 13/06/2013 à 12:02
Bonjour,
je vois que tu as voulu utiliser l'évènement Change.
Tu veux recalculer C si A ou B change ? Dans ce cas c'est cellule par cellule ou il peut y avoir des collés de plusieurs cellules ?
Ou bien traiter toute la table en une fois ?
Les deux ?
eric
Jamais tu ne répondras à un mp non sollicité...
Bon, ça c'est fait.
je vois que tu as voulu utiliser l'évènement Change.
Tu veux recalculer C si A ou B change ? Dans ce cas c'est cellule par cellule ou il peut y avoir des collés de plusieurs cellules ?
Ou bien traiter toute la table en une fois ?
Les deux ?
eric
Jamais tu ne répondras à un mp non sollicité...
Bon, ça c'est fait.
laricci
Messages postés
19
Date d'inscription
lundi 15 avril 2013
Statut
Membre
Dernière intervention
17 juin 2013
13 juin 2013 à 12:16
13 juin 2013 à 12:16
Bonjour,
C'est plutôt traiter toute la table en une fois, la valeur de A ne change pas mais si on rajoute des lignes ça doit être pris en considération.
Aussi j'aimerai bien que cela soit fait sans cliquer sur le bouton.
Je te remercie pour ta réactivité.
C'est plutôt traiter toute la table en une fois, la valeur de A ne change pas mais si on rajoute des lignes ça doit être pris en considération.
Aussi j'aimerai bien que cela soit fait sans cliquer sur le bouton.
Je te remercie pour ta réactivité.
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 239
13 juin 2013 à 12:48
13 juin 2013 à 12:48
dans Feuil1 :
Recalculé si tu actives une autre feuille ou par un double-clic en colonne A pour éviter de ralentir à chaque saisie.
Pense à recalculer avant de sauvegarder sinon tu auras oublié à la prochaine ouverture que ce n'est pas fait.
eric
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target.Column = 1 Then calcHeure End Sub Private Sub Worksheet_Deactivate() calcHeure End Sub Sub calcHeure() Dim derlig As Long, lig As Long, data As Variant derlig = Cells(Rows.Count, "A").End(xlUp).Row data = [A2].Resize(derlig, 3) For lig = 1 To UBound(data) Select Case data(lig, 1) Case "P2" data(lig, 3) = data(lig, 2) + 2 Case "P3" data(lig, 3) = data(lig, 2) + 8 Case "P4" data(lig, 3) = data(lig, 2) + 20 End Select Next lig [A2].Resize(UBound(data), UBound(data, 2)) = data End Sub
Recalculé si tu actives une autre feuille ou par un double-clic en colonne A pour éviter de ralentir à chaque saisie.
Pense à recalculer avant de sauvegarder sinon tu auras oublié à la prochaine ouverture que ce n'est pas fait.
eric
laricci
Messages postés
19
Date d'inscription
lundi 15 avril 2013
Statut
Membre
Dernière intervention
17 juin 2013
13 juin 2013 à 14:35
13 juin 2013 à 14:35
Bonjour,
Je tiens à te remercier cela fonctionne à merveille,
j'ai une autre petite question, j'ai une autre valeur qui peut venir sur la colonne A, c'est "P1" mais je veux que ça rajoute 4h,et je ne connais pas la syntaxe pour ajouter les heures.
Genre je dois rajouter:
Case "P1"
data(lig, 3) = data(lig, 2) + ?
Et s'il te plait est ce que le fait de double cliquer sur la cellule est un choix ou bien c'est difficile de le rendre simultané?
Merci bcp pour ton aide
Cordialement
Je tiens à te remercier cela fonctionne à merveille,
j'ai une autre petite question, j'ai une autre valeur qui peut venir sur la colonne A, c'est "P1" mais je veux que ça rajoute 4h,et je ne connais pas la syntaxe pour ajouter les heures.
Genre je dois rajouter:
Case "P1"
data(lig, 3) = data(lig, 2) + ?
Et s'il te plait est ce que le fait de double cliquer sur la cellule est un choix ou bien c'est difficile de le rendre simultané?
Merci bcp pour ton aide
Cordialement
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 239
Modifié par eriiic le 13/06/2013 à 15:42
Modifié par eriiic le 13/06/2013 à 15:42
est ce que le fait de double cliquer sur la cellule est un choix ou bien c'est difficile de le rendre simultané?
Oui c'était un choix pour ne pas tout recalculer à chaque saisie.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column < 3 Then
Application.EnableEvents = False
calcHeure
Application.EnableEvents = True
End If
End Sub
Si tu vois qu'il y a trop de lenteurs tu enlèveras.
Ajoute aussi en dernier Case :
eric
edit: dans le Worksheet_Change on peut ne recalculer que la ligne concernée, mais comme j'étais parti sur calculer l'ensemble suite à ta réponse au post 4 j'ai un peu zappé.
Mais là je m'absente, ça sera plus tard ou qcq'un d'autre.
erix
Oui c'était un choix pour ne pas tout recalculer à chaque saisie.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column < 3 Then
Application.EnableEvents = False
calcHeure
Application.EnableEvents = True
End If
End Sub
Si tu vois qu'il y a trop de lenteurs tu enlèveras.
Ajoute aussi en dernier Case :
Case Else data(lig, 3) = data(lig, 3)pour restaurer la date si la saisie dans A n'est pas connue.
eric
edit: dans le Worksheet_Change on peut ne recalculer que la ligne concernée, mais comme j'étais parti sur calculer l'ensemble suite à ta réponse au post 4 j'ai un peu zappé.
Mais là je m'absente, ça sera plus tard ou qcq'un d'autre.
erix
laricci
Messages postés
19
Date d'inscription
lundi 15 avril 2013
Statut
Membre
Dernière intervention
17 juin 2013
13 juin 2013 à 17:06
13 juin 2013 à 17:06
Bonjour,
J'espère ne pas trop te déranger avec mes questions, c'est très gentil de ta part le fait de m'avoir montré tout cela.
Je voudrai savoir si c'est possible de faire ces ajouts de jours mais en sautant les week end et jours fériés exemple. Genre, si j'ai le 21/06/2013 dans une P2 cela passe au 25/06/2013 et non pas au 23/06/2013 par exemple. Je sais que c'est trop demander mais même un avis ou un conseil serait le bienvenu, je bloque sur ce truc depuis un bon bout de temps.
Merci d'avance
J'espère ne pas trop te déranger avec mes questions, c'est très gentil de ta part le fait de m'avoir montré tout cela.
Je voudrai savoir si c'est possible de faire ces ajouts de jours mais en sautant les week end et jours fériés exemple. Genre, si j'ai le 21/06/2013 dans une P2 cela passe au 25/06/2013 et non pas au 23/06/2013 par exemple. Je sais que c'est trop demander mais même un avis ou un conseil serait le bienvenu, je bloque sur ce truc depuis un bon bout de temps.
Merci d'avance
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 239
15 juin 2013 à 01:02
15 juin 2013 à 01:02
Bonjour,
ce n'est plus du tout le même problème.
J'ai fait la modif mais c'est beaucoup trop lent à mon goût.
Je vois pour faire autrement, patiente jusqu'à la semaine prochaine.
eric
ce n'est plus du tout le même problème.
J'ai fait la modif mais c'est beaucoup trop lent à mon goût.
Je vois pour faire autrement, patiente jusqu'à la semaine prochaine.
eric