Anomalie sur mon code VBA [Résolu]

Signaler
Messages postés
47
Date d'inscription
lundi 18 décembre 2000
Statut
Membre
Dernière intervention
31 janvier 2012
-
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
-
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

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
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
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
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
Messages postés
47
Date d'inscription
lundi 18 décembre 2000
Statut
Membre
Dernière intervention
31 janvier 2012

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++
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
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