XL 2010 Appliquer une macro au nouvelles lignes d'un tableau qui seraient ajoutées....

  • Initiateur de la discussion Initiateur de la discussion fabdric
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

fabdric

XLDnaute Nouveau
Bonjour,

J'ai crée une macro dans un tableau excel afin de remplacer dans 4 colonnes du tableau les cases vides par un chiffre. J'ai associé cette macro à un bouton.
Mais quand j'ajoute des lignes en bas de mon tableau et que je réactive le bouton, la macro ne s'applique pas aux lignes ajoutées... Est-ce possible que la macro s’étende automatiquement aux nouvelles lignes ajoutées?

J’espère avoir été claire.

Merci de votre aide.

Fab
 
Solution
C'est parce qu'il nh'existe pas de colonne "VŒU COLLECTIF n°1 COMBIEN DE COLLÈGUES SONT CONCERNÉS ?"
Il existe par contre une colonne avec presque la même chose mais beaucoup plus d'espaces entre "n°1" et "COMBIEN"
Mais d'ailleurs ce n'est pas une colonne qu'il faut spécifier, c'est tout le tableau :
VB:
Sub Remplacer_2()
   Dim Rng As Range
   Set Rng = Range("Tableau1")
   Set Rng = Intersect(Rng.Worksheet.[AC:AC,AS:AS,BK:BK,CC:CC], Rng)
   Rng.Replace What:="", Replacement:="1", LookAt:=xlPart, _
      SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
      ReplaceFormat:=False
   End Sub
Merci pour cette réponse rapide.

Oui j'utilise bien la fonctionnalité tableau.
Mais je ne veux pas compter le nombre de lignes mais que ma macro s'applique aux nouvelles lignes insérées.

Ou alors j'ai pas compris ce qui est fort probable...
 
Remplace le code qui affiche pas un message par ton propre traitement.
Exemple


VB:
Sub Macro1()
  Dim r As Range
  For Each r In Feuil1.ListObjects("MonTableau").DataBodyRange.Rows
    If IsEmpty(r.Range("A1")) Then
      MsgBox r.Address & " est une nouvelle ligne"
    End If
  Next r
End Sub
 

Pièces jointes

Bonjour,

Merci pour la réponse.

Je ne suis pas très doué avec VBA je ne sais pour le moment que faire en enregistrant une macro.
Du coup je ne sais pas trop ou rajouter le bout de code sachant que pour ma première colonne de tableau ça me met bien le nom de référence mais pas pour les autres... J'ai essayé de changer les plages des autres par les noms de référence mais ça ne fonctionne pas. Et même pour la première colonne ou il y a bien la référence, si j'ajoute une ligne et que je réactive la macro ça ne rempli pas la nouvelle ligne...


Voici la macro que ça me met.

Sub Remplacer_2()
'
' Remplacer_2 Macro
'

'
ActiveWindow.ScrollColumn = 39
ActiveWindow.ScrollColumn = 38
ActiveWindow.ScrollColumn = 37
ActiveWindow.ScrollColumn = 36
ActiveWindow.ScrollColumn = 35
ActiveWindow.ScrollColumn = 34
ActiveWindow.ScrollColumn = 33
ActiveWindow.ScrollColumn = 32
ActiveWindow.ScrollColumn = 31
ActiveWindow.ScrollColumn = 30
ActiveWindow.ScrollColumn = 29
ActiveWindow.ScrollColumn = 28
ActiveWindow.ScrollColumn = 27
ActiveWindow.ScrollColumn = 26
ActiveWindow.ScrollColumn = 25
Range("Tableau1[VŒU COLLECTIF n°1 COMBIEN DE COLLÈGUES SONT CONCERNÉS ?]"). _
Select
ActiveWindow.ScrollColumn = 26
ActiveWindow.ScrollColumn = 27
ActiveWindow.ScrollColumn = 28
ActiveWindow.ScrollColumn = 29
ActiveWindow.ScrollColumn = 30
ActiveWindow.ScrollColumn = 31
ActiveWindow.ScrollColumn = 32
ActiveWindow.ScrollColumn = 33
ActiveWindow.ScrollColumn = 34
ActiveWindow.ScrollColumn = 35
ActiveWindow.ScrollColumn = 36
Range("AC3:AC6,AS3:AS6").Select
Range("AS3").Activate
ActiveWindow.ScrollColumn = 35
ActiveWindow.ScrollColumn = 36
ActiveWindow.ScrollColumn = 37
ActiveWindow.ScrollColumn = 38
ActiveWindow.ScrollColumn = 39
ActiveWindow.ScrollColumn = 40
ActiveWindow.ScrollColumn = 41
ActiveWindow.ScrollColumn = 42
ActiveWindow.ScrollColumn = 43
ActiveWindow.ScrollColumn = 44
ActiveWindow.ScrollColumn = 45
ActiveWindow.ScrollColumn = 46
ActiveWindow.ScrollColumn = 47
ActiveWindow.ScrollColumn = 48
ActiveWindow.ScrollColumn = 49
ActiveWindow.ScrollColumn = 50
ActiveWindow.ScrollColumn = 51
ActiveWindow.ScrollColumn = 52
ActiveWindow.ScrollColumn = 53
Range("AC3:AC6,AS3:AS6,BK3:BK6").Select
Range("BK3").Activate
ActiveWindow.ScrollColumn = 52
ActiveWindow.ScrollColumn = 53
ActiveWindow.ScrollColumn = 54
ActiveWindow.ScrollColumn = 55
ActiveWindow.ScrollColumn = 56
ActiveWindow.ScrollColumn = 57
ActiveWindow.ScrollColumn = 58
ActiveWindow.ScrollColumn = 59
ActiveWindow.ScrollColumn = 60
ActiveWindow.ScrollColumn = 61
ActiveWindow.ScrollColumn = 62
ActiveWindow.ScrollColumn = 63
ActiveWindow.ScrollColumn = 64
ActiveWindow.ScrollColumn = 65
ActiveWindow.ScrollColumn = 66
ActiveWindow.ScrollColumn = 67
ActiveWindow.ScrollColumn = 68
ActiveWindow.ScrollColumn = 69
Range("AC3:AC6,AS3:AS6,BK3:BK6,CC3:CC6").Select
Range("CC3").Activate
Selection.Replace What:="", Replacement:="1", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub
 
Bonjour.
Essayez comme ça :
VB:
Sub Remplacer_2()
   Dim Rng As Range
   Set Rng = Range("Tableau1[VŒU COLLECTIF n°1 COMBIEN DE COLLÈGUES SONT CONCERNÉS ?]")
   Set Rng = Intersect(Rng.Worksheet.[AC:AC,AS:AS,BK:BK,CC:CC], Rng)
   Rng.Replace What:="", Replacement:="1", LookAt:=xlPart, _
      SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
      ReplaceFormat:=False
   End Sub
À tester (je l'aurais fait si vous aviez joint le classeur)
 
C'est parce qu'il nh'existe pas de colonne "VŒU COLLECTIF n°1 COMBIEN DE COLLÈGUES SONT CONCERNÉS ?"
Il existe par contre une colonne avec presque la même chose mais beaucoup plus d'espaces entre "n°1" et "COMBIEN"
Mais d'ailleurs ce n'est pas une colonne qu'il faut spécifier, c'est tout le tableau :
VB:
Sub Remplacer_2()
   Dim Rng As Range
   Set Rng = Range("Tableau1")
   Set Rng = Intersect(Rng.Worksheet.[AC:AC,AS:AS,BK:BK,CC:CC], Rng)
   Rng.Replace What:="", Replacement:="1", LookAt:=xlPart, _
      SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
      ReplaceFormat:=False
   End Sub
 
Dernière édition:
Super,

Merci beaucoup ça fonctionne bien. Je n'ai pas tout compris pour le fait qu'il faille spécifier le tableau et non la colonne mais c'est pas grave ça fonctionne.

Merci beaucoup en tout cas pour la solution et la réactivité.
Je met le sujet en résolu.

Bonne soirée.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour