Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Rendre cellule dynamique statique

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Solution
Oui, en VBA c'est sans doute mieux, voyer le fichier joint et cette macro dans Feuil1 :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim F As Worksheet, r As Range
Set F = Feuil2 'CodeName, à adapter
Application.ScreenUpdating = False
Application.EnableEvents = False 'désactive les évènements
'---colonne C---
Set r = Intersect(Target, Range("C2:C" & Rows.Count), UsedRange)
If Not r Is Nothing Then
    For Each r In r 'si entrées/effacements multiples
        r = CStr(F.Range("A" & r.Row - 1))
    Next
End If
'---colonne D---
Set r = Intersect(Target, Range("D2:D" & Rows.Count), UsedRange)
If Not r Is Nothing Then
    For Each r In r 'si entrées/effacements multiples
        If CStr(r) <> "" And IsNumeric(CStr(r(1, 0))) Then...
Bonjour robertduval, M12,

On peut éviter le VBA en activant le calcul itératif.

Voyez le fichier joint et cette formule en H1 :
Code:
=SI(CELLULE("address")=CELLULE("address";H1);SOMME(B1;D1);SI(CELLULE("address")=CELLULE("address";D1);H1+(N(D1)>0);H1))
A+
 

Pièces jointes

Bonjour tout fonctionne dans le fichier du post 1, j'ai essayé de le transférer sur le mien erreur il doit y avoir un conflit, je vous donne le fichier presque réel avec la macro qu'il y a déjà et les formules, si vous pouviez regarder Merci 😉
 

Pièces jointes

Bonjour robertduval, le forum,

Ce qui ne va pas : les données en colonne I sont le résultat de formules.

Pour que l'évènement Change soit créé il faut qu'elles soient entrées manuellement.

A+
 
En fait la colonne I ne sert à rien, il suffit de faire les calculs en testant les cellules de la colonne D.

Avec le calcul itératif voyez ce fichier (2) et la formule en C2 :
Code:
=SI(CELLULE("address")=CELLULE("address";C2);Feuil2!A1;SI(CELLULE("address")=CELLULE("address";D2);C2+(D2<>"");C2))
 

Pièces jointes

Merci job75, j'ai testé ton fichier, j'ai modifié la colonne D et ça me met ça (photo en pj) je comprends pas 🤔ça fonctionnais à toi...Merci encore de ton aide.
 

Pièces jointes

  • photo.JPG
    130.2 KB · Affichages: 15
Oui, en VBA c'est sans doute mieux, voyer le fichier joint et cette macro dans Feuil1 :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim F As Worksheet, r As Range
Set F = Feuil2 'CodeName, à adapter
Application.ScreenUpdating = False
Application.EnableEvents = False 'désactive les évènements
'---colonne C---
Set r = Intersect(Target, Range("C2:C" & Rows.Count), UsedRange)
If Not r Is Nothing Then
    For Each r In r 'si entrées/effacements multiples
        r = CStr(F.Range("A" & r.Row - 1))
    Next
End If
'---colonne D---
Set r = Intersect(Target, Range("D2:D" & Rows.Count), UsedRange)
If Not r Is Nothing Then
    For Each r In r 'si entrées/effacements multiples
        If CStr(r) <> "" And IsNumeric(CStr(r(1, 0))) Then r(1, 0) = r(1, 0) + 1
    Next
End If
Application.EnableEvents = True 'réactive les évènements
End Sub
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
95
Réponses
3
Affichages
143
Réponses
4
Affichages
183
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…