P
Pika
Guest
Bonjour à tous,
je cherche à changer la valeur de certaines cellules tout en gardant le lien.
En fait, j'ai un fichier qui contient des donnnées (créé automatiquement) et un deuxieme fichier qui pointe vers ces données.
Les liens fonctionnent bien. J'ai fait une macro dans le second fichier pour vérifier la présence de valeurs égales à 0. Si je trouve un 0, je copie la valeur du dessus et donc remplace le 0. Cependant, en faisant cela, j annule le lien. Or je souhaite garder le lien tout en modifiant la valeur de la cellule sur le second fichier.
Sub supprime_zero()
Application.ScreenUpdating = False
For j = 2 To 19
For i = 7 To 10086
Cells(i, j).Select
'condition : si la cellule égale zéro
If ActiveCell.Value = 0 Then
'on doit vérifier que ce ne soit pas la premiere ligne qui soit égale a 0
If i = 7 Then
'prend la valeur de la premiere cellule non nulle du dessous
a = i
k = 0
Do Until Cells(a, j).Value <> 0
k = k + 1
a = a + 1
Loop
ActiveCell.Value = ActiveCell.Offset(k, 0).Value
Else
'prend la valeur de la cellule du dessus
ActiveCell.Value = ActiveCell.Offset(-1, 0).Value
End If
End If 'fin de la condition
Next i 'prochaine cellule de la plage
Next j 'prochaine colonne
Application.ScreenUpdating = True
End Sub
Cette macro remplace bien les 0 mais supprime les liens.
Si vous pouviez m'aider,
Merci
Pika
je cherche à changer la valeur de certaines cellules tout en gardant le lien.
En fait, j'ai un fichier qui contient des donnnées (créé automatiquement) et un deuxieme fichier qui pointe vers ces données.
Les liens fonctionnent bien. J'ai fait une macro dans le second fichier pour vérifier la présence de valeurs égales à 0. Si je trouve un 0, je copie la valeur du dessus et donc remplace le 0. Cependant, en faisant cela, j annule le lien. Or je souhaite garder le lien tout en modifiant la valeur de la cellule sur le second fichier.
Sub supprime_zero()
Application.ScreenUpdating = False
For j = 2 To 19
For i = 7 To 10086
Cells(i, j).Select
'condition : si la cellule égale zéro
If ActiveCell.Value = 0 Then
'on doit vérifier que ce ne soit pas la premiere ligne qui soit égale a 0
If i = 7 Then
'prend la valeur de la premiere cellule non nulle du dessous
a = i
k = 0
Do Until Cells(a, j).Value <> 0
k = k + 1
a = a + 1
Loop
ActiveCell.Value = ActiveCell.Offset(k, 0).Value
Else
'prend la valeur de la cellule du dessus
ActiveCell.Value = ActiveCell.Offset(-1, 0).Value
End If
End If 'fin de la condition
Next i 'prochaine cellule de la plage
Next j 'prochaine colonne
Application.ScreenUpdating = True
End Sub
Cette macro remplace bien les 0 mais supprime les liens.
Si vous pouviez m'aider,
Merci
Pika