VBA Trouver Propriétés Top

Résolu
sando9341 Messages postés 9 Date d'inscription mardi 12 mai 2009 Statut Membre Dernière intervention 26 mai 2010 - 25 mai 2010 à 16:42
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 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

7 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
26 mai 2010 à 20:09
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)
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
25 mai 2010 à 18:49
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)
0
sando9341 Messages postés 9 Date d'inscription mardi 12 mai 2009 Statut Membre Dernière intervention 26 mai 2010
25 mai 2010 à 19:17
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.
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
26 mai 2010 à 10:33
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sando9341 Messages postés 9 Date d'inscription mardi 12 mai 2009 Statut Membre Dernière intervention 26 mai 2010
26 mai 2010 à 15:07
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.
0
sando9341 Messages postés 9 Date d'inscription mardi 12 mai 2009 Statut Membre Dernière intervention 26 mai 2010
26 mai 2010 à 21:08
Gros merci je comprend pas pourquoi il ne gardes pas la valeur x quand je les essayer mais seulement le x.

Et merci
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
27 mai 2010 à 00:24
Explique, je n'ai pas compris
0
Rejoignez-nous