Vba run-time error 13 type mismatch

Fermé
mickysor - Modifié par mickysor le 25/09/2011 à 12:10
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 - 26 sept. 2011 à 13:54
Bonjour,
Je suis débutant. j'ai plus ou moins fait une macro qui marche pas trop mal mais malheureusement pour une seule cellule.dés que je veux effacer plusieurs cellules
via macro ou en manuel j'ai un message comme ceci:
vba run-time error 13 type mismatch
lorsque je clique sur debug ceci est souligné:
If Target.Column = 5 And UCase(Target) = "YES" Then

et enfin voici ma macro complete:

Private Sub Worksheet_Change(ByVal Target As Range)


If Target.Column = 5 And UCase(Target) = "YES" Then
Target.EntireRow.Copy
Sheets("Feuil2").Select
ActiveSheet.Range("A1").Select
ActiveSheet.[A65536].End(xlUp).Select
ActiveCell.Offset(1, 0).Select
Selection.EntireRow.Insert
Sheets("Feuil1").Select
Target.EntireRow.ClearContents

End If
End Sub

merci pour tout aide.

A voir également:

3 réponses

ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
25 sept. 2011 à 18:44
bonjour

pourrais tu expliquer ce que ta macro est censée réaliser ?

bonne suite
0
la macro doit faire:
si dans la colonne E:E le mot "yes" est inscrit alors déplacer le contenu de la colonne horizontale ou se trouve "yes" dans la "feuil2"

Plus tard je rajouterai d'autres mots clé à déplacer dans d'autres feuilles.
dommage pour l'instant personne n'arrive à résoudre mon problème.snif
0
La colonne horizontale .. ?! Oo
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
Modifié par ccm81 le 26/09/2011 à 15:29
re

peut être quelque chose comme ça

Private Sub Worksheet_Change(ByVal Target As Range) 
Dim li1 As Long, li2 As Long 
  If Not Intersect(Target, Range("E:E")) Is Nothing Then 
    If UCase(Target) = "YES" Then  
      li1 = Target.Row 
      li2 = Sheets("Feuil2").Range("A65536").End(xlUp).Row + 1 
      Sheets("Feuil1").Cells(li1, 1).EntireRow.Copy Sheets("Feuil2").Cells(li2, 1) 
    End If 
  End If 
End Sub

bonne suite
0