Probleme sur code copier vers une autre feuille

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

  • Beta 2.xls
    39 KB · Affichages: 75
Dernière modification par un modérateur:

Vincelbp

XLDnaute Nouveau
Re : Probleme sur code copier vers une autre feuille

J'ai trouvé la solution sur un autre post :eek:

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
 

Discussions similaires

Statistiques des forums

Discussions
312 182
Messages
2 086 001
Membres
103 084
dernier inscrit
Hervé30120