2010-07-08 13 views
0

Tout ce que j'essaie de faire est de comprendre comment changer la cellule d'une feuille de calcul en celle d'une autre lorsque l'on clique deux fois sur celle-ci.Excel 2003: Double-cliquer sur une cellule pour modifier le contenu d'une autre cellule

Dans ma deuxième feuille, j'ai le code suivant mis en place:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 



End Sub 

Ma question serait ce que le code pour changer une cellule?

J'imagine que ce serait ressembler à quelque chose comme ceci:

Sheet1!CellA1!Value = Target.Value 

Mais il est clair que ce ne va pas. Alors qu'est-ce qui est juste?

Répondre

2

Si vous regardez dans l'Explorateur de projet dans l'éditeur VBA, il y a effectivement deux noms de feuilles. Le nom sur la gauche est la façon dont la feuille est vue dans VBA, le nom à droite est le nom donné sur la bande de tabulation en bas lorsque l'utilisateur utilise Excel. (Par défaut, ils sont tous les deux "Sheet1", ce qui peut prêter à confusion.)

Je trouve qu'il est plus facile d'utiliser le prénom; il supprime le besoin de dire Worksheet ("Whatever"). Si le nom n'a pas été changé, utilisez-le.

Sheet1.Range("A1").Value = Target.Value 

modifier: Comme une note, la seule façon de changer le nom de la gauche est de faire que la fenêtre « Propriétés » est visible, cliquez sur la feuille, puis renommer. Je trouve que c'est une bonne pratique de renommer toutes mes feuilles tout de suite, pour éviter Sheet1, Sheet2, Sheet3. wsTotals, wsCoverForm et wsConfigForm peuvent rendre le code beaucoup plus lisible.

une autre édition: La raison pour laquelle l'autre méthode ne fonctionne pas est parce qu'il devrait suivre cette structure:

ActiveWorkbook.Worksheets("Sheet1").Range("A1").Value = Target.Value 

C'est la seule façon que je pouvais le faire fonctionner, je l'ai eu à la fois le travail pour moi le tester juste maintenant. C'est un peu moins encombrant à utiliser en premier.

+0

Parfait! Merci – Jeff

1

Essayez

Worksheet("Sheet1").Range("A1").Value = Target.Value 

Ou, faire la cellule que vous voulez changer une plage nommée, et il suffit d'utiliser

Range("MyName").Value = Target.Value 
+0

Hmm ... Quand j'essaie la feuille de travail ("Sheet1") ... j'obtiens "Sub ou Function non défini". Lorsque j'essaie d'utiliser une plage nommée avec le second code, elle me renvoie une erreur 1004: La méthode 'Range' de l'objet '_Worksheet' a échoué – Jeff

+0

Je tiens à préciser que Range ("MyName") fonctionne si elle se trouve sur la même feuille de calcul , mais échoue quand j'essaye de le faire d'un différent – Jeff