Anomalie sur mon code VBA

Résolu
rocket4 Messages postés 47 Date d'inscription lundi 18 décembre 2000 Statut Membre Dernière intervention 31 janvier 2012 - 3 sept. 2011 à 09:39
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 3 sept. 2011 à 15:12
Bnjour
je bosse sur excel et j'ecris une instruction consistant à envoyer des données d'un tableau d'une feuille d'un classeur vers une autre feuille de ce meme classeur
le soucis c'est que les instructions ne sont pas renvoyés à une autre feuille
voici le code :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Application.Intersect(Target, Range("E6:E8")) Is Nothing Then
Application.ScreenUpdating = False
lg = Target.Row
Range("A" & lg & ":D" & lg).Copy
Sheets(4).Range("G5").PasteSpecial Transpose:=True
Target.Select
End If
End Sub

ici Sheets(4) si je ne me trompe pas est la feuille 4 sur laquelle les instructions devraient figurer et renvoyés depuis la feuille 3 du meme classeur, mais ca ne marche pas et je n'arrive pas à savoir ou ca coince , tout ce que j'obtiens c'est un resultat sur la meme feuille cad feuille 3

Pourriez vous m'apporter une correction à ce code ?

merci par avance


a++

4 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
3 sept. 2011 à 10:09
Bonjour,

Qu'entends-tu par "ça ne marche pas" ?
Car ce code marche et fait ce que tu lui demande de faire, à savoir :
Si tu double-cliques sur une cellule de la ligne x de la plage E6:E8, il copie les donnée de la plage Ax:Dx et les colle, à la verticale, dans la colonne G de la feuille 4, à partir de la ligne 5 !
Et fonctionne ainsi (testé) !


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne intallée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
3 sept. 2011 à 11:28
Quant à :
ici Sheets(4) si je ne me trompe pas est la feuille 4


C'est vite dit !
si tu veux en avoir le coeur net, mets ceci en début de ton code :
MsgBox ActiveSheet.Name & " est ma feuille d'indice " & ActiveSheet.Index
MsgBox Sheets(4).Name & " est ma feuille d'indice 4 "

et tu découvriras peut-être les raisons de ton problème
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne intallée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
3
rocket4 Messages postés 47 Date d'inscription lundi 18 décembre 2000 Statut Membre Dernière intervention 31 janvier 2012
3 sept. 2011 à 13:54
Merci pour vos réponse , j'ai refais un essai sur une nouvelle feuille excel , plus de soucis!

Bonne journée et merci pour votre contribution



a++
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
3 sept. 2011 à 15:12
Ta feuille active était donc tout simplement ta Feuille d'index 4 !
Tu n'avais pas besoin de faire un nouveau classeur !
Evite ces pièges en te référant à tes feuilles par leur nom, plutôt que par leur index.
Exemple WorkSheets("toto") pour te référer à la feuille nommée toto, WorkSheets("Feuil1") pour te référer à la feuille Feuil1 etr tu seras toujours dans le vrai, quel que soit l'index de ces feuilles dans la collection WorkSheets (idem en ce qui concerne la collections Sheets.
Ceci est d'ailleurs vrai pour toutes les collections d'objets.


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne intallée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
Rejoignez-nous