Bonjour

J’ai des colonnes dans lesquelles il manque des valeurs. Il y a parfois plusieurs cellules vides de suite.
Je souhaite remplir ces trous par une sorte d’extrapolation linéaire entre la valeur du row avant le vide et la valeur du row juste après le vide.

Ex :
Je sélectionne les cases C3 à C25 :
3
3
3.5
vide
vide

6
5
Vide
7.2
6.8
vide
vide
vide

5.6

Les deux cellules vides du haut devraient être remplies par : 4,33 et 5,16
4,33 = (6-3.5)/(nombre de cellules vides de suite + 1)

Voici le code que j’ai écrit :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Sub remplissage()
 
debutselection = Selection.Row
finselection = debutselection + Selection.Rows.Count - 1
col = Selection.Column
 
For deb = debutselection To finselection
    If Range(deb, col).Value = "" Then
    valdeb = Range(deb - 1, col).Value
    While Range(deb + 1, col) <> valfin = ActiveCell.Value
    increment = (valfin - valdeb) / (Range(deb, col).Value - Active.Row)
    Wend
    For peupl = Range(deb, col) To Active.Row - 1
    Range(peupl, col) = valdeb + increment
    Next peupl
 
    End If
    Next deb
 
End Sub
Mais çà ne marche pas !

Des idées ?
Merci.