Probleme sur code copier vers une autre feuille

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 !

Vincelbp

XLDnaute Nouveau
Bonjour,
Je suis nouveau sur ce forum et étant novice en vba il m'a été d'une grande aide.
Pour le projet que j'ai en tête il faudrait que je puisse sur la feuille 1 copier la dernière ligne du tableau en suppriment le contenu des cellules tout en conservant les données de validations.
Pour ça j'ai trouvé ce code

Code:
Sub Insére_Ligne_Copy_Formule_MFC()
[B65536].End(xlUp).Offset(1).Select
ActiveCell.EntireRow.Insert
Rows(ActiveCell.Row - 1).Copy Rows(ActiveCell.Row)
On Error Resume Next
Rows(ActiveCell.Row).SpecialCells(xlCellTypeConstants, 23).ClearContents
End Sub

Cette partie fonctionne.

Pour la suite dans les cellules de la colonne G j'ai inseré une liste déroulante. Je voudrai qu'en fonction de la valeur selectionnée une partie de la ligne soit copiée vers une autre feuille. Pour ça j'utilise ce code:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("G7:G65536")) Is Nothing Then
If Target.Value = "Jocelyne" Then
With Sheets("Jocelyne")
LigVide = .Range("A65536").End(xlUp).Row + 1
.Cells(LigVide, 1) = Target.Offset(0, -6).Value
.Cells(LigVide, 2) = Target.Offset(0, -5).Value
.Cells(LigVide, 3) = Target.Offset(0, -4).Value
.Cells(LigVide, 4) = Target.Offset(0, -3).Value
.Cells(LigVide, 5) = Target.Offset(0, -2).Value
.Cells(LigVide, 6) = Target.Offset(0, -1).Value
End With
End If
End If



Indépendement ces deux codes fonctionnent. Mais lorsque je crée une nouvelle ligne j'ai une erreur 13 incompatibilité de type sur la ligne de code "If Target.Value = "Jocelyne" Then".

Je n'arrive pas à débuguer ça.
Pour que cela soit plus compréhensible je vous joins mon fichier
Merci pour votre attention.
 

Pièces jointes

Dernière modification par un modérateur:
Re : Probleme sur code copier vers une autre feuille

J'ai trouvé la solution sur un autre post 😱

Il faut ajouter : If Target.Count > 1 Then Exit Sub
Je ne sais pas à quoi ça sert mais ça marche

Le code donne ça

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("G7:G65536")) Is Nothing Then
 
- 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

  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
479
Réponses
5
Affichages
237
Réponses
4
Affichages
177
Réponses
2
Affichages
202
Retour