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

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
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+
 

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

robertduval

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

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
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…