Copier et deplacer des cellules en fonction d'une date choisie

yves03

XLDnaute Occasionnel
Bonjour à tous,

Sur le fichier joint j'ai des blocs qui sont formés par 9 cellules, lorsque je clique sur les cellules jaune, j'ai un userform qui s'ouvre dans lequel il y a un Dtpicker. Je voudrais pouvoir deplacer les 9 cellules vers une date choisi dans le Dtpicker de l'userform.
Je vous joint le fichier, car je ne sais pas si c'est tres clair.

Merci d'avance de votre aide, car je ne sais pas comment m'en sortir. :(
 

Pièces jointes

  • test1.xls
    42.5 KB · Affichages: 74
  • test1.xls
    42.5 KB · Affichages: 77
  • test1.xls
    42.5 KB · Affichages: 79

jms31

XLDnaute Junior
Re : Copier et deplacer des cellules en fonction d'une date choisie

bonjour

voici le fichier modifié qui permet le déplacement.


Il faudra ajouter les contrôle pour vérifier si la date saisie est présente dans le planning. Sinon ça plantera dans le passé et ça décalera loin dans les colonnes pour une date future ...
 

Pièces jointes

  • test1 jms.zip
    15.3 KB · Affichages: 55
  • test1 jms.zip
    15.3 KB · Affichages: 57
  • test1 jms.zip
    15.3 KB · Affichages: 58

kjin

XLDnaute Barbatruc
Re : Copier et deplacer des cellules en fonction d'une date choisie

Bonsoir,
A associer au DTPicker et à adapter
Code:
Private Sub DTPicker1_Change()
J = Cells(1, ActiveCell.Column)
Nb = DTPicker1 - CDate(J)
L = ActiveCell.Row
C = ActiveCell.Column
Range(Cells(L - 1, C), Cells(L + 1, C + 2)).Cut
Application.EnableEvents = False
Cells(L - 1, C + Nb * 3).Select
ActiveSheet.Paste
Application.EnableEvents = True
Unload Me
End Sub
Pour éviter la boucle sur les cellules concernées
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count > 1 Or Target.Row < 2 Or Target.Row > 25 Then Exit Sub
If Target.Row Mod 3 = 0 And Target.Column Mod 3 = 1 Then dep.Show
End Sub
A+
kjin
 

Pièces jointes

  • yves.zip
    13 KB · Affichages: 40
  • yves.zip
    13 KB · Affichages: 45
  • yves.zip
    13 KB · Affichages: 41

yves03

XLDnaute Occasionnel
Re : Copier et deplacer des cellules en fonction d'une date choisie

Merci pour votre aide, ça fonctionne tres bien.
Le seul probleme c'est que dans mon planning je n'ai pas les Week End et lorsque je selectionne un deplacement superieur à la semaine , je suis decalé de 2 jours en plus.
Est ce qu'il est possible de modifier la macro pour ne pas tenir compte des WE ?
Merci d'avance de votre aide.
 

kjin

XLDnaute Barbatruc
Re : Copier et deplacer des cellules en fonction d'une date choisie

Bonsoir,
Remplace le code du DTPicker par celui-ci
Code:
Private Sub DTPicker1_Change()
J1 = Cells(1, ActiveCell.Column)
L1 = ActiveCell.Row
C1 = ActiveCell.Column
Set J2 = Range("A1:IV1").Find(DTPicker1)
If Not J2 Is Nothing Then
C2 = J2.Column
Application.EnableEvents = False
Range(Cells(L1 - 1, C2), Cells(L1 + 1, C2 + 2)).Value = Range(Cells(L1 - 1, C1), Cells(L1 + 1, C1 + 2)).Value
Range(Cells(L1 - 1, C1), Cells(L1 + 1, C1 + 2)).ClearContents
Application.EnableEvents = True
End If
Unload Me

End Sub
A+
kjin
 

jms31

XLDnaute Junior
Re : Copier et deplacer des cellules en fonction d'une date choisie

J'aime bien la solution de Kjin car elle ne s'occupe que des dates présentes sur la feuille.

J'ai fait une solution plus procédurale en ajoutant une fonction de calcul du delta de jour alors je te la passe ça peut toujours servir
 

Pièces jointes

  • test1 jms.zip
    14.6 KB · Affichages: 41
  • test1 jms.zip
    14.6 KB · Affichages: 40
  • test1 jms.zip
    14.6 KB · Affichages: 41

yves03

XLDnaute Occasionnel
Re : Copier et deplacer des cellules en fonction d'une date choisie

Merci encore une fois a vous 2.
C'est super d'avoir quelqu'un qui peut vous aider :)
J'essaie la solution de Kjin, ( en apparté je n'ai pas tout compris , mais je vais chercher ! :rolleyes: )
J'ai des cellules qui contiennent des commentaires, et des couleurs dans les cellules et il possible de deplacer l'ensemble ?
Merci beaucoup
 

kjin

XLDnaute Barbatruc
Re : Copier et deplacer des cellules en fonction d'une date choisie

Bonsoir,
jms, toutes mes excuses, j'étais pas rendu à Roubaix que tu avais déjà répondu et je n'avais pas rafraichi.:eek:
yves, je m'en doutais un peu, donc copier/coller dans cette version, et associé au bouton "OK" c'est plus prudent
Code:
Private Sub CommandButton1_Click()
J1 = Cells(1, ActiveCell.Column)
L1 = ActiveCell.Row
C1 = ActiveCell.Column
Set J2 = Range("A1:IV1").Find(DTPicker1)
    If Not J2 Is Nothing Then
        C2 = J2.Column
        Application.EnableEvents = False
        Range(Cells(L1 - 1, C1), Cells(L1 + 1, C1 + 2)).Copy
        Cells(L1 - 1, C2).PasteSpecial Paste:=xlAll
        Range(Cells(L1 - 1, C1), Cells(L1 + 1, C1 + 2)).Clear
        Application.EnableEvents = True
    End If
Unload Me

End Sub
A+
kjin
 

Pièces jointes

  • yves_v2.zip
    10.7 KB · Affichages: 46

yves03

XLDnaute Occasionnel
Re : Copier et deplacer des cellules en fonction d'une date choisie

Merci Kjin pour ta reponse rapide.
Lors du deplacement des cellules , j'ai la bordure de droite qui part , y a t'il une solution pour eviter qu'elle parte ?
Merci
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 196
Messages
2 086 101
Membres
103 116
dernier inscrit
kutobi87