Adaptation d'une procédure évènementielle

criscris11

XLDnaute Accro
Bonjour à tous,
Ayant trouver un code qui me servirait dans un de mes fichiers de travail sur le site de Jacques BOIGONTIER, je n'arrive pas à l'adapter.

Voici le code :
Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As  Range)
  If Target.Column = 5 And Target.Count = 1 Then
    If Target.Value <> "" Then
      état = Target
      If état <> ActiveSheet.Name Then
        Application.EnableEvents = False
        Target.Offset(0, -4).Resize(1, 5).Copy  Sheets(état).[A65000].End(xlUp).Offset(1, 0)
        Target.Offset(0, -4).Resize(1, 5).Delete shift:=xlUp
        Application.EnableEvents = True
      End If
    End If
  End If
End Sub

Ce que je n'arrive pas à faire c'est de l'adapter à la disposition de mon fichier donc pourriez vous me dire, s'il vous plaît, comment faire pour déclencher ce code dans la colonne A au lieu de E (en fait ma colonne Etat serait en colonne A dans mon fichier) le reste sans changement sauf que mes lignes d'entêtes sont sur la ligne 2 de chaque onglets.
Avant de poster, j'ai essayé de modifier comme suit :

Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As  Range)
  If Target.Column = 1 And Target.Count = 1 Then
    If Target.Value <> "" Then
      état = Target
      If état <> ActiveSheet.Name Then
        Application.EnableEvents = False
        Target.Offset(0, 5).Resize(0, 5).Copy  Sheets(état).[A65000].End(xlUp).Offset(2, 0)
        Target.Offset(0, 5).Resize(0, 5).Delete shift:=xlUp
        Application.EnableEvents = True
      End If
    End If
  End If
End Sub

mais l'évènement ne se déclenche plus. Pourquoi ?
Merci pour vos réponses et bonne journée à toutes et à tous.
 

criscris11

XLDnaute Accro
Re : Adaptation d'une procédure évènementielle

Salut Pierrot,
Je te le confirme : le code est bien placé dans ThisWorkBook.
Au pire, je vais poster le fichier si tu peux regarder.
Merci d'avance et bonne journée à toi également.
 

Pièces jointes

  • WorkSheetChangeTransfertLigne.xls
    35 KB · Affichages: 26
  • WorkSheetChangeTransfertLigne.xls
    35 KB · Affichages: 27
  • WorkSheetChangeTransfertLigne.xls
    35 KB · Affichages: 28
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : Adaptation d'une procédure évènementielle

Re,

fonctionne chez moi en modfiant comme suit, se déclenche bien lorsuqe cellule de colonne A modifiée, maintenant bogue avec le nom des onglets, mais normale puique pas en adéquation.....
Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
  If Target.Column = 1 And Target.Count = 1 Then
    If Target.Value <> "" Then
      état = Target
      If état <> ActiveSheet.Name Then
        Application.EnableEvents = False
        Target.Offset(0, -4).Resize(1, 5).Copy Sheets(état).[A65000].End(xlUp).Offset(1, 0)
        Target.Offset(0, -4).Resize(1, 5).Delete shift:=xlUp
        Application.EnableEvents = True
      End If
    End If
  End If
End Sub
 

criscris11

XLDnaute Accro
Re : Adaptation d'une procédure évènementielle

Re Pierrot,
Ben, je te confirme que rien ne se passe en changeant les valeurs de la colonne A.
Cf. fichier-joint.

Merci encore.
 

Pièces jointes

  • WorkSheetChangeTransfertLigne.xls
    33.5 KB · Affichages: 20
  • WorkSheetChangeTransfertLigne.xls
    33.5 KB · Affichages: 23
  • WorkSheetChangeTransfertLigne.xls
    33.5 KB · Affichages: 22

Pierrot93

XLDnaute Barbatruc
Re : Adaptation d'une procédure évènementielle

Re,

chez moi cela se déclenche bien.... par contre enlève les "offset" pour les instructions suivantes :
Code:
        Target.Resize(1, 5).Copy Sheets(état).[A65000].End(xlUp).Offset(1, 0)
        Target.Resize(1, 5).Delete shift:=xlUp

et assure toi au préalable que les événementielles soient bien actives, pour ce faire exécute l'instruction suivant dans un module standard.
Code:
Application.EnableEvents = True
 

criscris11

XLDnaute Accro
Re : Adaptation d'une procédure évènementielle

Re,
Merci, tout est rentré dans l'ordre à présent cependant j'ai détecté 2 choses : effectivement j'avais une macro (remettre tous les filtres autos à zéro) qui désactivait les évènements donc j'ai supprimé la ligne incriminante.
J'ai également remarqué que dès que je modifiais le code et après avoir refermé VBE, les évènements ne se déclenchaient plus mais tout rentre dans l'ordre après l'enregistrement et la réouverture du fichier : enfin j'espère...
En tout cas, encore merci à toi pour m'avoir éclairer et bonne soirée.
 

Pierrot93

XLDnaute Barbatruc
Re : Adaptation d'une procédure évènementielle

Bonjour criscris,

Problème aussi lié au fait que lorsque tu "boguais" sur "l'offset" après avoir désactivé les événementielles, celles-ci n'étaient plus réactivées.... préférable de prévoir un "gestionaire d'erreur" pour éviter ce souci :
Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
  If Target.Column = 1 And Target.Count = 1 Then
    If Target.Value <> "" Then
      état = Target
      If état <> ActiveSheet.Name Then
        On Error GoTo fin
        Application.EnableEvents = False
        Target.Resize(1, 5).Copy Sheets(état).[A65000].End(xlUp).Offset(1, 0)
        Target.Resize(1, 5).Delete shift:=xlUp
        
fin:    Application.EnableEvents = True
      End If
    End If
  End If
End Sub

bonne journée
@+
 

criscris11

XLDnaute Accro
Re : Adaptation d'une procédure évènementielle

Bonsoir Pierrot,
Merci pour ces précisions.
Une question me vient à l'esprit : dans la macro d'origine, pourquoi désactive t'on les évènements (qui plus est pour une macro évènementielle) par Application.EnableEvents = False alors qu'on les réactive par la suite ? J'ai fait un test en enlevant la ligne de code qui désactive les évènements et on obtient bien le résultat attendu.

@+ de te lire et bonne soirée.
 

Pierrot93

XLDnaute Barbatruc
Re : Adaptation d'une procédure évènementielle

Bonjour criscris

Je les désactives afin d'éviter une boucle, cette procédure générant une modif sur la feuille, la procédure se déclenche de nouveau.... dans certains cas, fonction des cellules impactées, cela pose de vrais soucis....

bonne journée
@+
 

Discussions similaires

Statistiques des forums

Discussions
312 546
Messages
2 089 456
Membres
104 169
dernier inscrit
alain_geremy