XL 2016 Rendre cellule dynamique statique

robertduval

XLDnaute Junior
Bonjour Je souhaite récupérer une cellule dynamique et la rendre statique

Merci ;)
 

Pièces jointes

  • test.xlsx
    9.4 KB · Affichages: 19
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...

job75

XLDnaute Barbatruc
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

  • Calcul itératif(1).xlsx
    10.4 KB · Affichages: 6

robertduval

XLDnaute Junior
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

  • test.xlsm
    19.1 KB · Affichages: 7

job75

XLDnaute Barbatruc
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

  • Calcul itératif(2).xlsx
    12.1 KB · Affichages: 13

job75

XLDnaute Barbatruc
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

  • Incrémentation(1).xlsm
    19.7 KB · Affichages: 6

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 898
Membres
101 834
dernier inscrit
Jeremy06510