Mise à jour automatique de ma macro sans bouton

Bonjour à tous, je débute en VBA, j'aimerai automatisé ma macro sans bouton, c'est a dire lorsque je rajoute une ligne j'aimerai que ma macro copie la formule précédente qui est une somme.

voici les deux codes :

Sub formule()

 Dim Lg As Long Lg = [B500].End(xlUp).Row

 Range("A4").AutoFill Destination:=Range("A4:A" & Lg)

 End Sub

et le code pour l'automatisation :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

 If Not Application.Intersect(Target, Range("b2:j")) Is Nothing Then

 formule 

end if 

end sub

Ce que je ne comprends pas c'est que le code d'automatisation ne marche pas pourtant mon code fonctionne. je vous laisse le fichier ci-joint.

Pouvez-vous m'aider s'il vous plaît.

Merci

Bonjour

Plutot que de passer par un code, pourquoi ne pas mettre en forme votre tableau au format structuré ?
une fois fait, vous ajoutez une ligne et la formule sera automatiquement recopiée

Cordialement

@dan je suis obligé de passer par un code, car j'en ai besoin pour mon travail lorsque je fais des extractions BI (vu que c'est des données confidentiel je ne peux pas mettre le fichier excel, c'est pour ça que j'ai essayé de reproduire à ma façon). La macro me servira pour mes rapport BI lorsque je rafraîchirai mon report BI le tableau aura plusieurs lignes ou moins. C'est pour ca que je cherche à automatiser la formule.

Ok mais vous savez qu'une fois la tableau mis en forme, vous pouvez faire ceci :

- Supprimer les lignes de A4 à Jx
- Clique droite puis choisir Supprimer les lignes --> Il ne va vous rester que la ligne 4 (sans donnée)
- ensuite vous récollez les nouvelles données en A4. La formule sera à nouveau présente à condition que votre tableau soit présenté comme celui placé dans votre fichier

Sinon vous pouvez essayer ceci

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Lg As Integer
Lg = Range("D" & Rows.Count).End(xlUp).Row
If Not Application.Intersect(Target, Range("b2:j" & Lg)) Is Nothing Then
       Range("A4").AutoFill Destination:=Range("A4:A" & Lg)
    End If
End Sub

Vous pouvez supprimer votre code Formule

@Dan merci beaucoup la formule marche ! je suis trop content j'ai juste changer le D part B.

merci beaucoup la formule marche ! je suis trop content j'ai juste changer le D part B.

Justement le D était voulu car dans le tableau on n'est sûr qu'il y aura toujours un Nom (colonne D) si vous ajoutez une ligne sans quoi il ne devrait pas y avoir de ligne. Par contre, je ne suis pas sûr qu'il y aura à chaque fois la colonne Initiales complétée.

A vous de voir si ce cas peut arriver

Cordialement

Rechercher des sujets similaires à "mise jour automatique macro bouton"