Mise à jour automatique via VBA

Résolu
nathan01983 Messages postés 345 Date d'inscription lundi 12 octobre 2009 Statut Membre Dernière intervention 1 octobre 2024 - 1 oct. 2024 à 14:40
nathan01983 Messages postés 345 Date d'inscription lundi 12 octobre 2009 Statut Membre Dernière intervention 1 octobre 2024 - 1 oct. 2024 à 16:54

Bonjour à tous

J'ai un petit soucis, j'ai une VBA pour mettre à jour automatiquement la feuille 2, lorsque la feuille 1 subit une modification.
Mon soucis est que les valeurs de la feuille 1 sont des liens venant d'un autre fichier, je pense donc que quand les valeurs sont modifiées dans le fichier source, ce n'est pas considéré comme une vrai modification

Voici le code que j'ai pour cette mise à jour

<  Private Sub Worksheet_Change(ByVal Target As Range)
    ' Vérifie si les modifications concernent la plage B5:G1000
    If Not Intersect(Target, Me.Range("B5:G1000")) Is Nothing Then
        ' Appelle la macro de filtrage si une modification est faite
        Call FiltrerEtCopierLignes
    End If
End Sub >

Auriez vous une idée pour ce problème. 
 

Cordialement :)

A voir également:

1 réponse

NonoM45 Messages postés 345 Date d'inscription dimanche 14 juin 2009 Statut Membre Dernière intervention 1 octobre 2024
1 oct. 2024 à 15:19

Bonjour,

L'évènement "Change" n'est activé que lorsque vous être en mode édition d'une cellule (F2) et que vous validez la valeur (Entrée)

Donc effectivement si cette valeur vient d'un fichier source, il n'y a pas d'évènement

0
nathan01983 Messages postés 345 Date d'inscription lundi 12 octobre 2009 Statut Membre Dernière intervention 1 octobre 2024 11
Modifié le 1 oct. 2024 à 16:54

Bonjour.

Suite à ta remarque j'ai tenté le code suivant et cela fonctionne :)

Donc .. Merci pour ton aide qui m'a bien orienté :)

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) 'SheetCalculate
    ' Vérifie si le recalcul concerne la Feuille1
    If Sh.Name = "Listing" Then
        ' Appelle la macro de filtrage après chaque recalcul
        Call FiltrerEtCopierLignes
    End If
End Sub

0