macro supprime les formules

Mitch

XLDnaute Occasionnel
Bonsoir je refait une demande d'aide car personne ma répondu je pense que c'est ma faute pas assez de détails
voila j'ai une macro qui me supprime les cellules A,B,C,D,E,F,G suivant la date inscrite en colonne E (8 jours après) problème quand la date arrive a échéance les cellules se supprime (nickel) mais elle m'efface les formules qui sont dans le calendrier
j'espère que je me fait comprendre
je vous joint mon fichier complet
Merci

Cijoint.fr - Service gratuit de dépôt de fichiers
 

Gorfael

XLDnaute Barbatruc
Re : macro supprime les formules

Salut Mitch et le forum
Plus de 80 postes, et tu ne sais toujours pas qu'il n'y a ni devin, ni télépathe sur ce site ?
Déjà une erreur sur la macro d'ouverture (onglet absent).
Ensuite, personnellement, je n'ai pas envie de perdre du temps à trouver le/les code(s) devant être modifié(s). Donnes directement le code, ou au moins le nom de la macro concernée.
A+
 

Mitch

XLDnaute Occasionnel
Re : macro supprime les formules

Bonsoir Gorfael excuse mais je n'ai pas d'erreur a l'ouverture du fichier d'ou mon étonnement , c'est dans la feuille planning que ça ce passe
voici la macro qui creer souci

With Sheets("planning")
imax = .Cells(Rows.Count, 1).End(xlUp).Row 'numéro de la dernière ligne saisie
For i = imax To 3 Step -1 'boucle en partant du bas
c = CDate(.Cells(i, 5)) 'date de la ligne en cours
'Pour supprimer les cellules
If c + 8 < Now Then .Range(.Cells(i, 1), .Cells(i, 7)).Delete Shift:=xlUp
Next i
End With
 

Gorfael

XLDnaute Barbatruc
Re : macro supprime les formules

Salut Mitch et le forum
je n'ai pas d'erreur a l'ouverture du fichier d'ou mon étonnement
Vraisemblablement du à ce que j'utilise Excel2003 avec un traducteur microsoft et donc un problème de référence :p

Difficile de t'aider, pas moyens d'exécuter les macros, et comme je ne sais pas ce que la macro doit faire exactement...

Juste des remarques :
- C'est une macro Worksheet_Change (si c'est bien celle-ci) : Elle est issue vraisemblablement d'une macro automatique (BeforeDoubleClick ou BeforeRightClick), ce qui expliquerait le "Cancel = True", qui ne sert strictement à rien, n'ayant nulle part été déclarée ne variable globale.

- La macro ne fait que supprimer les cellules de A à G, en décalant vers le haut.
Nulle part on ne touche aux autres cellules.

Donc, je suppose que ce sont les disparitions des résultats des formules qui te gênent. Mais, si c'est ça, c'est normal : tu supprimes ce qui a créé l'affichage d'une valeur par une formule, celle-ci se remet à jour. Il faut donc que ton calendrier soit géré par une macro, et non par des formules.
A+
 

Mitch

XLDnaute Occasionnel
Re : macro supprime les formules

Bonjour le forum et bonjour Gorfael oui c'est ça ma formule ce met a jour quand les cellules se supprime mais pourquoi elle ne se mette pas a jour quand je cree une ligne . voici ma formule au depart qui vas jusqu'a la ligne 29 et diminue au fur et a mesure que la macro s'execute , peut on la bloquer avec des $

=SI(ESTNUM(EQUIV(J$3+$H6+K$5*100000;$C$3:$C$29+$D$3:$D$29+$G$3:$G$29*100000;0));INDEX($B$3:$B$29;EQUIV(J$3+$H6+K$5*100000;$C$3:$C$29+$D$3:$D$29+$G$3:$G$29*100000;0));"")

Oups elles sont déjà avec des $ autant pour moi
 
Dernière édition:

Gorfael

XLDnaute Barbatruc
Re : macro supprime les formules

Salut Mitch et le forum
Si tu ne veux pas qu'une référence de plage change, il faut qu'Excel ne considère plus que c'est une référence de plage, pour ne pas la faire évoluer, tout en l'utilisant comme une référence de plage :mad:.
Sans l'avoir réellement testée, en remplacement de ta formule :
Code:
=SI(ESTNUM(EQUIV(J$3+$H6+K$5*100000;INDIRECT("C3:C29")+INDIRECT("D3:D29")+INDIRECT("G3:G29")*100000;0));INDEX(INDIRECT("B3:B29");EQUIV(J$3+$H6+K$5*100000;INDIRECT("C3:C29")+INDIRECT("D3:D29")+INDIRECT("G3:G29")*100000;0));"")
$G$3:$G$29 : si tu supprimes une ligne (idem pour les colonnes) entre 3 et 29, Excel corrige ta formule, vu que c'est une référence de plage, et que tu as supprimé une ligne dans ta plage, et qu'il sait que la ligne 29 est devenue la ligne 28. Tu auras donc $G$3:$G$28

"G3:G29" : Excel considère que ce n'est que du texte, comme "papa" et ne touche à rien en suppression de ligne(s).
Indirect() transforme un texte en référence de plage.
INDIRECT("G3:G29") : devrait toujours pointer la même plage (de G3 à G29), quelque soit les modifications apportée à cette plage.

Il reste un point crucial : si tu supprimes une ligne, la ligne 29 deviendra totalement vierge.
A+
 

Banzai64

XLDnaute Accro
Re : macro supprime les formules

Bonsoir

Une autre piste
Si c'est le fait de supprimer des cellule qui te met en l'air des formules, pourquoi tu n'effaces pas seulement ces cellules

A tester

Je ne t'ai mis que la fin de ton code
Changes la couleur car je n'ai pas la même palette que toi

VB:
  With Sheets("planning")
    imax = .Cells(Rows.Count, 1).End(xlUp).Row 'numéro de la dernière ligne saisie
    For i = imax To 3 Step -1 'boucle en partant du bas
      c = CDate(.Cells(i, 5)) 'date de la ligne en cours
      'Pour supprimer les cellules
      If c + 8 < Now Then
        With .Range(.Cells(i, 1), .Cells(i, 7))
          .ClearContents
          .Interior.ColorIndex = 36
        End With
      End If
    Next i
    .Range("A3:G" & .Cells(Rows.Count, 2).End(xlUp).Row).Sort Key1:=.Range("C3"), Order1:=xlAscending, Header:=xlNo, _
            OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
            DataOption1:=xlSortNormal
  End With
 

Mitch

XLDnaute Occasionnel
Re : macro supprime les formules

Bonjour Banzai64 et le forum , peut tu m'expliquer en gros le deroulement de ton code car tu me dit de changer la couleur mais dans mon planning j'ai 2 couleurs , 1 (orange) pour l'equipe 1 (colonne G) et 1 (jaune) pour l'equipe2
ça marche , j'ai fait un test vite fait sans approfondir ça ne ma pas changer ma formule , je vais faire plusieurs essais en croisant les doigts
Merci

Oups j'ai etait trop vite la couleur ne correspond pas au planning mais au fond de ma feuille par contre comment fait on pour trouver le code couleur
 
Dernière édition:

Banzai64

XLDnaute Accro
Re : macro supprime les formules

Bonjour

Tu passes pas l'enregistreur de macro
Tu sélectionnes une cellule et tu appliques la couleur de fond que tu souhaites
Arrêtes l'enregistrement et dans le code tu auras la couleur : .Interior.ColorIndex = ???

Bonne journée
 

Discussions similaires

Statistiques des forums

Discussions
312 837
Messages
2 092 664
Membres
105 482
dernier inscrit
Eric.FKF