DATE du jour fixe selon case coché (macro?)

bobn85@hotmail.fr

XLDnaute Nouveau
Bonjour,
Le fichier en PJ est un fichier de suivi.
Je souhaite que :
- lors d'une inscription dans colonnes B; la date du jour apparaisse dans colonnes A et quelle reste fixe a l'enregistrement. (pas de ctrl+ ;)
exemple: si écriture dans B4; A4 = date du jour qui reste fixe a l'enregistrement...
(macro?)

- lors du clic sur la case a cocher des colonnes: J-O-P-R-S-U
la date s'inscrit a coté de la colonnes concernée reste fixe.
exemple: si L4 ou M4 cliqué = date du jour en N4 fixe.
(=SI(OU(L4=VRAI;M4=VRAI);AUJOURDHUI(); "" )marche pas car la date est remis a jour lors de l'ouverture du fichier)
(macro?)

Ceci valable de ligne 4 a xxx si possible.

Comment faire?
Merci de votre réponse...
 

Pièces jointes

  • Classeur1.xlsx
    58 KB · Affichages: 137
  • Classeur1.xlsx
    58 KB · Affichages: 148
  • Classeur1.xlsx
    58 KB · Affichages: 151

Grand Chaman Excel

XLDnaute Impliqué
Re : DATE du jour fixe selon case coché (macro?)

Bonjour,

voici une proposition par macro. Il faut que le code de la macro sans dans ta feuille.
Note : au lieu des cases à cocher (que je n'aime pas gérer), j'utilise des X qui apparaissent quand on double-clique sur les cellules des colonnes J, L, M etc...

À essayer...

VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'Case à cocher et Dates
    If Target.Count > 1 Then Exit Sub
    If Target.Row > 3 Then
        
        'CASE A COCHER
        Select Case Target.Column
            Case 10, 12, 13, 15, 16, 18, 19, 21
                If Target.Value = "X" Then
                    Target.Value = ""
                Else
                    Target.Value = "X"
                End If
        End Select
        
        'DATE
        Select Case Target.Column
            Case 10, 13, 16, 19, 21
                Target.Offset(0, 1) = Date
            Case 12, 15, 18
                Target.Offset(0, 2) = Date
        End Select
        
    End If
End Sub

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
'Met la date dans la colonne A dès que changement dans B
    If Target.Count > 1 Then Exit Sub
    If Target.Row > 3 And Target.Column = 2 Then Target.Offset(0, -1) = Date
End Sub
A+
 

bobn85@hotmail.fr

XLDnaute Nouveau
Re : DATE du jour fixe selon case coché (macro?)

comment enlever la date K4 si 2 doubles cliques en J4?
1 double clique en J4 = date du jour en K4 : fonctionne bien
2 doubles cliques en J4 le X disparait mais pas la date en K4.
pareil pour L4,M4 =date N4
pareil pour O4 =date P4
pareil pour Q4,R4 =date S4
pareil pour T4 =date U4
etc.........de la ligne 4 a 2000

Comment faire?
Merci de votre réponse...
 

Grand Chaman Excel

XLDnaute Impliqué
Re : DATE du jour fixe selon case coché (macro?)

Bonjour,

Voici le code modifié :

VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'Case à cocher et Dates
    With Target
   If .Count > 1 Then Exit Sub
    If .Row > 3 Then
        
        'CASE A COCHER
       Select Case .Column
            Case 10, 12, 13, 15, 16, 18, 19, 21
                If .Value = "X" Then
                    .Value = ""
                Else
                    .Value = "X"
                End If
        End Select
        
        'DATE
       Select Case .Column
            Case 10, 13, 16, 19, 21
                If .Offset(0, 1) <> "" Then
                    .Offset(0, 1) = ""
                Else
                    .Offset(0, 1) = Date
                End If

            Case 12, 15, 18
                If .Offset(0, 2) <> "" Then
                    .Offset(0, 2) = ""
                Else
                    .Offset(0, 2) = Date
                End If
        End Select
    End If
    End With
End Sub

Il reste encore la possibilité de mettre 2 "X" en L et M par exemple. S'il faut aussi gérer ce cas, il faudra modifier le code. À tester.
A+
 

bobn85@hotmail.fr

XLDnaute Nouveau
Re : DATE du jour fixe selon case coché (macro?)

le code marche bien. merci
fichier mis a jour en pj
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'Case à cocher et Dates
With Target
If .Count > 1 Then Exit Sub
If .Row > 3 Then

'CASE A COCHER
Select Case .Column
Case 10, 12, 13, 15, 17, 18, 20
If .Value = "X" Then
.Value = ""
Else
.Value = "X"
End If
End Select

'DATE
Select Case .Column
Case 10, 13, 15, 18, 20
If .Offset(0, 1) <> "" Then
.Offset(0, 1) = ""
Else
.Offset(0, 1) = Date
End If

Case 12, 17
If .Offset(0, 2) <> "" Then
.Offset(0, 2) = ""
Else
.Offset(0, 2) = Date
End If
End Select
End If
End With
End Sub

es-ce possible de ne pas pouvoir cocher L et M en même temps?
es-ce possible de ne pas pouvoir cocher Q et R en meme temps ?
et tout sera parfait!
merci d'avance...
 

Pièces jointes

  • planning.xlsm
    156.7 KB · Affichages: 105
  • planning.xlsm
    156.7 KB · Affichages: 102
  • planning.xlsm
    156.7 KB · Affichages: 112

Grand Chaman Excel

XLDnaute Impliqué
Re : DATE du jour fixe selon case coché (macro?)

Bonjour,

Je crois que comme ça ce sera ok :

VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'Case à cocher et Dates
   With Target
   If .Count > 1 Then Exit Sub
    If .Row > 3 Then
       
        'CASE A COCHER
      Select Case .Column
            Case 10, 12, 13, 15, 17, 18, 20
                If .Value = "X" Then
                    .Value = ""
                Else
                    .Value = "X"
                    If .Column = 12 Or .Column = 17 Then
                        If .Offset(0, 1) = "X" Then .Offset(0, 1) = ""
                    End If
                    If .Column = 13 Or .Column = 18 Then
                        If .Offset(0, -1) = "X" Then .Offset(0, -1) = ""
                    End If
                End If
        End Select
       
        'DATE
      Select Case .Column
            Case 10, 15, 20
                If .Offset(0, 1) <> "" Then
                    .Offset(0, 1) = ""
                Else
                    .Offset(0, 1) = Date
                End If
                                
            Case 13, 18
                If .Offset(0, 1) <> "" And .Value = "" Then
                    .Offset(0, 1) = ""
                Else
                    .Offset(0, 1) = Date
                End If

            Case 12, 17
                If .Offset(0, 2) <> "" And .Value = "" Then
                    .Offset(0, 2) = ""
                Else
                    .Offset(0, 2) = Date
                End If
        End Select
    End If
    End With
End Sub

A+
 

bobn85@hotmail.fr

XLDnaute Nouveau
Re : DATE du jour fixe selon case coché (macro?)

Bonjour, grace a vous mon fichier bien avancé
j'aimerai pouvoir le faire évoluer encore un peu + avec 2 choses en supp.
je m'explique :
1er point
feuil1 : si le mot "atelier" est présent dans la colonnes C la ligne si référent est copié dans la feuille atelier
exemple : en C25 : "atelier" présent donc la ligne 25 sera copié dans la feuil atelier
2nd point
selon la couleur en A : copie de la ligne A dans les diverses feuilles:
devis a faire = rouge
devis fait = orange
attente piece = bleu
piece recu = violet
cloture = vert
exemple : A3 =vert donc ligne 3 copié dans la feuille cloturé
Si la couleur change dans la colonne A de la feuil1 les lignes copiés de la feuil1 dans les autres feuilles doivent se supprimer pour se copier dans la bonne feuille.

merci d'avance
 

Pièces jointes

  • SUIVI.xlsm
    252.9 KB · Affichages: 177
  • SUIVI.xlsm
    252.9 KB · Affichages: 195
  • SUIVI.xlsm
    252.9 KB · Affichages: 215

Discussions similaires

Réponses
21
Affichages
893
Réponses
2
Affichages
306

Statistiques des forums

Discussions
311 721
Messages
2 081 928
Membres
101 842
dernier inscrit
seb0390