LinkedCell d'une checkbox créée en VBA ?

sergio_bzh

XLDnaute Nouveau
Bonjour,
je suis en train de créer dynamiquement des CheckBox en VBA mais je bute sur la propriété LinkedCell. Je n'arrive pas à indiquer une cellule d'une autre feuille.

J'ai repris le code de ce post :
https://www.excel-downloads.com/threads/cases-a-cocher-creation-automatique.56149/
En particulier, par rapport au code fourni directement dans le post par MichelXLD, je n'ai qu'une différence, c'est l'utilisation d'une seconde feuille :

Code:
Dim i As Integer, j As Integer
Dim Obj As OLEObject

i = Feuil1.Range('D65536').End(xlUp).Row

For j = 2 To i

Set Obj = Feuil1.OLEObjects.Add('Forms.CheckBox.1')
With Obj
.Left = Feuil1.Cells(j + 1, 10).Left
.Top = Feuil1.Cells(j + 1, 10).Top
.Width = Feuil1.Cells(j + 1, 10).Width
.Height = Feuil1.Cells(j + 1, 10).Height
.Object.Caption = 'L' & j - 1
.LinkedCell = [B][U]Feuil2[/U][/B].Cells(j, 5).Address
End With

Next j

Le problème est que la LinkedCell de ma CheckBox est de la forme "$F$5" et non pas "Feuill2!$F$5".

Comment peut-on faire ? Ai-je raté quelque chose ?
Merci.
Sergio
 

Spitnolan08

XLDnaute Barbatruc
Re : LinkedCell d'une checkbox créée en VBA ?

Bonsoir,

Pour indiquer une feuille il faut utiliser la propriété Sheets(MaFeuille) ou Worksheets(mafeuille) donc :
Code:
.LinkedCell = Sheets("Feuil2").Cells(j, 5).Address
Mais ceci est également vrai pour le reste du code.

Cordialement
 

sergio_bzh

XLDnaute Nouveau
Re : LinkedCell d'une checkbox créée en VBA ?

Merci pour les réponses rapides.

résultat des courses :

Code:
.LinkedCell = Sheets("Feuil2").Cells(j, 5).Address
ne fonctionne pas

mais
Code:
.LinkedCell = "Feuil2!" & .Cells(j, 5).Address
fonctionne bien.

C'est curieux car on concatène une chaine et une addresse. Mais par contre si je mets une adresse complète directement dans une chaîne telle "Feuill2!F5", ça ne fonctionne pas.

Décidément Excel VBA ne sera jamais simple !

Encore merci.
Sergio
 

deepsoul94

XLDnaute Nouveau
Re : LinkedCell d'une checkbox créée en VBA ?

C'est curieux car on concatène une chaine et une addresse. Mais par contre si je mets une adresse complète directement dans une chaîne telle "Feuill2!F5", ça ne fonctionne pas.

Décidément Excel VBA ne sera jamais simple !

Sergio

Je sais que le sujet a été clos depuis longtemps mais cela peut toujours intéresser quelqu'un qui tomberait sur cette discussion comme je l'ai fait.

Cela marche à condition que tu indiques bien les $ . Mettre Feuille2$F$5 marchera.
Et si tu as un espace dans ton nom d'onglet,il faudra rajouter des ' .Par exemple 'feuille 2'!$F$5 .
Et si tu as des espaces plus des ' dans ton nom de fichier, chaque ' doit etre remplacé par 2 '. Exemple 'l''onglet d''hadrien'!$F$5

Bonne journée.
 

Discussions similaires

Réponses
0
Affichages
148
Réponses
1
Affichages
164

Statistiques des forums

Discussions
312 177
Messages
2 085 977
Membres
103 078
dernier inscrit
diomy