Procédure evenementiel qui fait n' importe quoi

  • Initiateur de la discussion Initiateur de la discussion Aladin
  • 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 !

Aladin

XLDnaute Occasionnel
Bonsoir le forum
J' ai fait une procédure évenementielle qui doit me copier des données de la feuille calendrier vers la derniere ligne vide de la feuille taches, mais ma procédure fait n' importe quoi en entrant des données sur la premier cellule elle se déclenche et fait la copie, en passant à la deuxieme céllule, la elle fait la copie vers une aure ligne vide. ci joint le code

Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False

Dim derLig1 As Long
Dim derLig2 As Long
Dim derLigWS As Long

Dim Plage As Range, Cell As Range
Dim trouveWS As Boolean


With Worksheets("Calendrier")
' Dernière ligne en colonne F
derLig1 = Sheets("Calendrier").Range("F" & Rows.Count).End(xlUp).Row
'derLigS = .Range("C" & Cells.Rows.Count).End(xlUp).Row
' Si pas de lignes saisies, on sort
If derLig1 < 2 Then Exit Sub

' Rérérence saisie
' ref = .Range("C" & derLigS).Value
End With


With Worksheets("Tâches")


derLig2 = Sheets("Tâches").Range("B" & Rows.Count).End(xlUp).Row + 1
Sheets("Tâches").Range("B" & derLig2) = Sheets("Calendrier").Range("D" & derLig1)
Sheets("Tâches").Range("C" & derLig2) = Sheets("Calendrier").Range("F" & derLig1)
Sheets("Tâches").Range("D" & derLig2) = Sheets("Calendrier").Range("C" & derLig1)
End With

MsgBox "La copie est effectuée"

Application.ScreenUpdating = True

End Sub
Merci pour toute réponse pour modif de cette procédure evenementiel
Aladin
 
Re : Procédure evenementiel qui fait n' importe quoi

Bonsoir Aladin,

Peut être à un point prés:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False

Dim derLig1 As Long
Dim derLig2 As Long
Dim derLigWS As Long

Dim Plage As Range, Cell As Range
Dim trouveWS As Boolean


With Worksheets("Calendrier")
' Dernière ligne en colonne F
derLig1 = Sheets("Calendrier").Range("F" & Rows.Count).End(xlUp).Row
'derLigS = .Range("C" & Cells.Rows.Count).End(xlUp).Row
' Si pas de lignes saisies, on sort
If derLig1 < 2 Then Exit Sub

' Rérérence saisie
' ref = .Range("C" & derLigS).Value
End With


With Worksheets("Tâches")


[COLOR="Red"]derLig2 = Sheets("Tâches").Range("B" & .Rows.Count).End(xlUp).Row + 1[/COLOR]
Sheets("Tâches").Range("B" & derLig2) = Sheets("Calendrier").Range("D" & derLig1)
Sheets("Tâches").Range("C" & derLig2) = Sheets("Calendrier").Range("F" & derLig1)
Sheets("Tâches").Range("D" & derLig2) = Sheets("Calendrier").Range("C" & derLig1)
End With

MsgBox "La copie est effectuée"

Application.ScreenUpdating = True

End Sub
 
Re : Procédure evenementiel qui fait n' importe quoi

Bonsoir ninbihan et le forum
je te remercie pour ta réponse mais j' ai toujours les mêmes pb
je pense que pour contourner le pb qu' il faudrait que la procédure événementielle se déclenche apres avoir inscrit des données dans la derniere céllule de la ligne
Cdt
 
Re : Procédure evenementiel qui fait n' importe quoi

Oups, je me rend compte que j'ai écrit une grosse ânerie (car rows.count est égal dans toutes les feuilles). Si ta derniére saisie est sur la colonne D, tu peux essayer cela en début de Macro
Code:
If intersect(target, range(D:D)) is nothing then exit sub

Désolé,

Ninbihan
 
Re : Procédure evenementiel qui fait n' importe quoi

Bonsoir Aladin, ninbihan,

Peut être à deux points près 🙄
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False

Dim derLig1 As Long
Dim derLig2 As Long
Dim derLigWS As Long

Dim Plage As Range, Cell As Range
Dim trouveWS As Boolean


With Worksheets("Calendrier")
' Dernière ligne en colonne F
derLig1 = Sheets("Calendrier").Range("F" & .Rows.Count).End(xlUp).Row
'derLigS = .Range("C" & Cells.Rows.Count).End(xlUp).Row
' Si pas de lignes saisies, on sort
If derLig1 < 2 Then Exit Sub

' Rérérence saisie
' ref = .Range("C" & derLigS).Value
End With

With Worksheets("Tâches")


derLig2 = Sheets("Tâches").Range("B" & .Rows.Count).End(xlUp).Row + 1
Sheets("Tâches").Range("B" & derLig2) = Sheets("Calendrier").Range("D" & derLig1)
Sheets("Tâches").Range("C" & derLig2) = Sheets("Calendrier").Range("F" & derLig1)
Sheets("Tâches").Range("D" & derLig2) = Sheets("Calendrier").Range("C" & derLig1)
End With

MsgBox "La copie est effectuée"

Application.ScreenUpdating = True

End Sub

Cordialement

Bernard
 
Re : Procédure evenementiel qui fait n' importe quoi

Rebonsoir CBernardT, ninbihan et le forum
j' abandonne pour l' instant la procédure évenementielle et demain dans la matinée.
Merci à vous pour vos réponses
Aladin
 
Re : Procédure evenementiel qui fait n' importe quoi

Bonsoir ninbihan, CBernardT et le forum
J' ai adopté une autre solution en faisant une procedure evenemtiel qui s'" appuie sur la modif de célule de la derniere colonne qui doit etre copié et cela déclenche la macro Test = ok
Merci pour votre Aide
Cdt
Aladin
 
- 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

Réponses
4
Affichages
461
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
479
Réponses
4
Affichages
177
Réponses
10
Affichages
547
Réponses
5
Affichages
182
Retour