VBA Trouver Propriétés Top [Résolu]

sando9341 9 Messages postés mardi 12 mai 2009Date d'inscription 26 mai 2010 Dernière intervention - 25 mai 2010 à 16:42 - Dernière réponse : cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention
- 27 mai 2010 à 00:24
Bonjour

Je bloque sur un problème qui semble très simple pour-temps.

J'ais un bouton qui crée d autre bouton et ses bouton doive recueillir leur position pour savoir il son parallèle a quelle cellule.

Mon Bouton va intégrer un code au bouton quand il sera créer et j'aimerais que le code qui leur sera intégrer leur permettre de trouver la propriété top automatiquement sans nommer le bouton.
Dim oOLE As OLEObject
x = 3
y = 34.5
Do

If Range("a" & x) = "" Then
If x < 12 Then
Range("a" & x) = ("PCRPK-0" & x - 2)
 Set oOLE = ActiveWorkbook.ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1", _
        Link:=False, DisplayAsIcon:=False, Left:=178.5, Top:=y, Width:=15.75, Height:=9.75)
        
    ActiveSheet.OLEObjects(x).Object.Caption = "BU " & x - 2
    Code = "Sub CheckBox" & x - 2 & "_Click()" & vbCrLf
    'Code = (code)
    Code = Code & "End Sub"
        With ActiveWorkbook.VBProject.VBComponents(ActiveSheet.Name).CodeModule
        NextLine = .CountOfLines + 1
        .insertlines NextLine, Code
    End With
    
Exit Do
Else
Range("a" & x) = ("PCRPK-" & x - 2)
End If


 Set oOLE = ActiveWorkbook.ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1", _
        Link:=False, DisplayAsIcon:=False, Left:=178.5, Top:=y, Width:=15.75, Height:=9.75)
        
    ActiveSheet.OLEObjects(x).Object.Caption = "BU " & x - 2
    Code = "Sub CheckBox" & x - 2 & "_Click()" & vbCrLf
    'Code = (code)
    Code = Code & "End Sub"
        With ActiveWorkbook.VBProject.VBComponents(ActiveSheet.Name).CodeModule
        NextLine = .CountOfLines + 1
        .insertlines NextLine, Code
    End With
        
Exit Do
Else
x = x + 1
y = y + 15
End If
Loop



Merci
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 26 mai 2010 à 20:09
3
Merci
Bah c'est facile :
Comme tu l'as fait pour définir le nom de la procédure, tu fais pareil pour le Top :
    Code = "Sub CheckBox" & x - 2 & "_Click()" & vbCrLf
    Code = Code & "MsgBox CheckBox" & x - 2 & ".Top & vbCrLf
    Code = Code & "End Sub"
A condition que la syntaxe
CheckBox" & x - 2
soit correcte et désigne bien ton objet.
Perso, j'aurais mis des garde-fous :
CheckBox" & CStr(x - 2)

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)

Merci cs_Jack 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de cs_Jack
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 25 mai 2010 à 18:49
0
Merci
Salut
C'est du VB.Net, ça ?
Déjà fait remarqué lors de tes précédentes questions.
Merci de prêter attention à la catégorie de la question, les réponses peuvent ne pas correspondre ET faire perdre du temps à tout le monde.

"j'aimerais que le code qui leur sera intégrer leur permettre de trouver la propriété top automatiquement sans nommer le bouton"
Ok, mais le code que tu nous présentes n'a pas grand chose à voir avec un calcul lié à la propriété .Top

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Commenter la réponse de cs_Jack
sando9341 9 Messages postés mardi 12 mai 2009Date d'inscription 26 mai 2010 Dernière intervention - 25 mai 2010 à 19:17
0
Merci
J'ais regarder 3 fois pour trouver VBA ...

"Ok, mais le code que tu nous présentes n'a pas grand chose à voir avec un calcul lié à la propriété .Top"

Effectivement ses mon code qui créer des bouton

et
 
   Code = "Sub CheckBox" & x - 2 & "_Click()" & vbCrLf
    'Code = (code)
    Code = Code & "End Sub"

et sa le code qui contiendra les bouton créer.

Et dans le code que je v intégrer au bouton il va avoir besoin de trouver la cellule qui est accoter de lui. Se qui va être range("b" & x)
et la seul façon que jais trouver pour savoir ma cellule est ou ses en trouvant la propriété top.

Et pour la trouver je ferais top / 15 - 4.5

Pour trouver la valeur top se serais
CheckBox1.top


Mais je dans mon code qui créer le bouton sa dois être une code qui va faire que le bouton va trouver la valeur propre a lui.
Commenter la réponse de sando9341
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 26 mai 2010 à 10:33
0
Merci
Imcompréhensible
Il manque des verbes, des mots ...

Au moment où tu crées l'objet, tu as tout ce qu'il te faut, notamment le nom de l'objet.
Je ne vois vraiment pas où tu veux en venir.

Eventuellement (*), colle le code final que tu voudrais que ton programme crée, et on verra comment y arriver, parce que là, je ne comprends pas trop ton problème.

(*) à condition que tu fasses l'effort de te relire et de faire des phrases complètes et si possible sans sms.
Commenter la réponse de cs_Jack
sando9341 9 Messages postés mardi 12 mai 2009Date d'inscription 26 mai 2010 Dernière intervention - 26 mai 2010 à 15:07
0
Merci
Oui désoler je ne suit pas le meilleur en français et effectivement il manque des mots ... encore désoler.

Je reprend du début.

En résumer mon code mon code va créer des CheckBox .

   
Code = "Sub CheckBox" & x - 2 & "_Click()" & vbCrLf
'Code = (code)
Code = Code & "End Sub"


CheckBox1 ,CheckBox2 ,CheckBox3....

et il auront un code propre a eu.

Code = (code)


Et j'ais besoins que leur code qui leur sera intégrer leur permettre de trouver leur valeur .top

EX:
Code = "Sub CheckBox" & x - 2 & "_Click()" & vbCrLf
Code = Me.Top
Code = Code & "End Sub"
/code

(Me) représenterait le nom du bouton.

Mais me ne fonctionne pas.

Si ses pas encore clair merci de me le faire remarquer
et encore merci pour chercher a m'aider.
Commenter la réponse de sando9341
sando9341 9 Messages postés mardi 12 mai 2009Date d'inscription 26 mai 2010 Dernière intervention - 26 mai 2010 à 21:08
0
Merci
Gros merci je comprend pas pourquoi il ne gardes pas la valeur x quand je les essayer mais seulement le x.

Et merci
Commenter la réponse de sando9341
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 27 mai 2010 à 00:24
0
Merci
Explique, je n'ai pas compris
Commenter la réponse de cs_Jack

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.