Microsoft 365 supprimer une cellule si je saisie une donnée dans une autre

lusano

XLDnaute Junior
Bonjour,

J'aimerais que si je saisie une date dans la colonne réelle la date de la colonne prévisionnelle soit supprimé pour la facturation
Et me l'expliquer pour que je puisse faire pareil côté règlement...

Merci d'avance ;)
 

Pièces jointes

  • test.xlsx
    22.7 KB · Affichages: 6
Solution
Voici ce que j'ai fait, en conservant la formule déjà présente.
Le but est de savoir si la case de la date réelle est remplie ou non. Si elle est vide
Sass:
SI(H17="")
alors, la formule est conservée, sinon la date prévisionnelle égale "".

R1-

XLDnaute Junior
Voici ce que j'ai fait, en conservant la formule déjà présente.
Le but est de savoir si la case de la date réelle est remplie ou non. Si elle est vide
Sass:
SI(H17="")
alors, la formule est conservée, sinon la date prévisionnelle égale "".
 

Pièces jointes

  • test.xlsx
    23 KB · Affichages: 5

lusano

XLDnaute Junior
Voici ce que j'ai fait, en conservant la formule déjà présente.
Le but est de savoir si la case de la date réelle est remplie ou non. Si elle est vide
Sass:
SI(H17="")
alors, la formule est conservée, sinon la date prévisionnelle égale "".
super je te remercie ca fonctionne !!
je ne pensais pas que c'était possible avec de la formule de ce que '=j'avais pu trouver sur internet donc javais commencé à partir sur de la macro...
 

AtTheOne

XLDnaute Accro
Supporter XLD
Bonjour à toutes & à tous
Bon j'arrive un peu tard :rolleyes:...
Voici un exemple avec macro, en remettant la formule si la date réelle est effacée avec l'événement Worksheet_Change de la feuil1 :

(Entre nous la version par formule et plus simple mais c'est pour l'exemple ...;))

Enrichi (BBcode):
Private Sub Worksheet_Change(ByVal Target As Range)
     Dim RgFacture As Range, RgRéglemt As Range, Action$
   
     Set RgFacture = Me.[_t_suivi[F.Date réelle]]
     Set RgRéglemt = Me.[_t_suivi[R.Date réelle]]
   
     If Target.Count > 1 Then Exit Sub
     Action = ""
     If Not Intersect(Target, RgFacture) Is Nothing Then Action = "Facture"
     If Not Intersect(Target, RgRéglemt) Is Nothing Then Action = "Règlement"

     Select Case Action
          Case ""
               Exit Sub
          Case "Facture"
               If IsDate(Target.Value) Then
                    'Effacer la date prévisionnelle de facturation (-1 : = 1 colonne à gauche)
                    Target.Offset(0, -1).ClearContents
               Else
                    'Remettre la formule dans la date prévisionnelle de facturation
                    Target.Offset(0, -1).FormulaR1C1 = "=IF(_t_suivi[[#This Row],[F.Date contrat]]="""","""",_t_suivi[[#This Row],[F.Date contrat]]+R13C9)"
               End If
          Case "Règlement"
               If IsDate(Target.Value) Then
                    'Effacer la date prévisionnelle de règlement (-2 : = 2 colonnes à gauche)
                    Target.Offset(0, -2).ClearContents
               Else
                   'Remettre la formule dans la date prévisionnelle de facturation
                    'Target.Offset(0, -2).formulaR1C1= "...Mettre ici la formule"
               End If
             
     End Select

End Sub

Amicalement
Alain
 

Pièces jointes

  • supprimer une cellule si je saisie une donnée dans une autre.xlsm
    32.8 KB · Affichages: 0

lusano

XLDnaute Junior
Bonjour à toutes & à tous
Bon j'arrive un peu tard :rolleyes:...
Voici un exemple avec macro, en remettant la formule si la date réelle est effacée avec l'événement Worksheet_Change de la feuil1 :

(Entre nous la version par formule et plus simple mais c'est pour l'exemple ...;))

Enrichi (BBcode):
Private Sub Worksheet_Change(ByVal Target As Range)
     Dim RgFacture As Range, RgRéglemt As Range, Action$
  
     Set RgFacture = Me.[_t_suivi[F.Date réelle]]
     Set RgRéglemt = Me.[_t_suivi[R.Date réelle]]
  
     If Target.Count > 1 Then Exit Sub
     Action = ""
     If Not Intersect(Target, RgFacture) Is Nothing Then Action = "Facture"
     If Not Intersect(Target, RgRéglemt) Is Nothing Then Action = "Règlement"

     Select Case Action
          Case ""
               Exit Sub
          Case "Facture"
               If IsDate(Target.Value) Then
                    'Effacer la date prévisionnelle de facturation (-1 : = 1 colonne à gauche)
                    Target.Offset(0, -1).ClearContents
               Else
                    'Remettre la formule dans la date prévisionnelle de facturation
                    Target.Offset(0, -1).FormulaR1C1 = "=IF(_t_suivi[[#This Row],[F.Date contrat]]="""","""",_t_suivi[[#This Row],[F.Date contrat]]+R13C9)"
               End If
          Case "Règlement"
               If IsDate(Target.Value) Then
                    'Effacer la date prévisionnelle de règlement (-2 : = 2 colonnes à gauche)
                    Target.Offset(0, -2).ClearContents
               Else
                   'Remettre la formule dans la date prévisionnelle de facturation
                    'Target.Offset(0, -2).formulaR1C1= "...Mettre ici la formule"
               End If
            
     End Select

End Sub

Amicalement
Alain
merci ;) je le garde quand même de côté sait-on jamais
 

Discussions similaires

Réponses
1
Affichages
180
Réponses
4
Affichages
332

Statistiques des forums

Discussions
314 761
Messages
2 112 589
Membres
111 612
dernier inscrit
Maxence30