Autres [Résolu]Affichage userform sur cellule ou activX version simplifiée a tester

patricktoulon

XLDnaute Barbatruc
bonjour suite a deux discussions ressentes j'ai repris ma méthode et je l'ai simplifiée
normalement avec cette méthode on est dédouané du calcul et prise en charge du freezepane et des scrollbars H et V

aucune Api window ou gdi !!
aucun chiffre en dur dans le code !!!
aucun calcul des scroll ou du freezepane
et l'userform est contraint dans le périmètre de la fenêtre application si il le dépasse
vous voulez bien tester
cellule a jumeler
demo2.gif


activx a jumeler

demo3.gif
 

Pièces jointes

  • placement usf.xlsm
    29.4 KB · Affichages: 27
Dernière édition:

Dranreb

XLDnaute Barbatruc
Mettre la propriété StartUpPosition de l'UserForm1 à 0 - Manual,
Virer les déclarations en tête et la Sub Activate,
Et, pour un positionnement comme je les ai toujours vu dans tes exemples, dans Feuil1 :
VB:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
   Cancel = True
   With UserForm1
      .Posit Target, 1, 0.9
      .Show 0
    End With
End Sub
 

Roland_M

XLDnaute Barbatruc
Bonjour à tous les deux,

sinon j'ai vos routines dans mon classeur d'essai (routines que j'utilise dans mon calendrier avec Application.ScreenUpdaiting =True)
j'ai arrangé à ma sauce sans modifier le fondamentale, adapté le nom des Vars pour m'y retrouver dans les deux routines
j'ai modifier EcX(Patrick), je l'ai supprimé dans le calcul et mis juste au positionnement !
j'ai aussi rajouté cet EcX à la macro Dranreb !

eh bien chez moi, Excel 2007 et Excel 2016 c'est pile poil avec les deux routines ! (c'est EcX à cet endroit qui fait la différence)
je les garde tel quel !
 

Pièces jointes

  • EXCEL_PlaceUserSurCell_Patrick_Dranreb.xlsm
    35.4 KB · Affichages: 8
Dernière édition:

patricktoulon

XLDnaute Barbatruc
re bonjour a tout les deux
tu devrai pas le mettre a la fin
je t'avais fait cette ligne exprès pour de futures modifs pour éventuellement 365 ,insider etc.... mais tu fait comme tu veux

bon moi j'ai un autre soucis
j'ai un double show avec deux userforms alors que dans le model ou je n'est que le placement userform et obj =textbox je ne l'ai pas
et c'est la même façon de l'utiliser :a savoir ;en tant que boite de dialog et non userform executant
il faut cliquez deux fois sur ok pour fermer???????????????

la c'est le brouillard
 

Pièces jointes

  • place usf pointstoscreenpixel V3 code intra userform.xlsm
    34.6 KB · Affichages: 5

Roland_M

XLDnaute Barbatruc
re

pas tout bien compris ! mais ici ce serait pas plutôt Unload !?
Private Sub CommandButton1_Click()
Unload Me
'Me.Hide
End Sub

EDIT:
tu dis:
tu devrai pas le mettre a la fin (EcX)
je t'avais fait cette ligne exprès pour de futures modifs pour éventuellement 365 ,insider etc.... mais tu fait comme tu veux

mais as-tu seulement essayé le classeur que j'ai mis ?
 

patricktoulon

XLDnaute Barbatruc
re
et non roland si je unload la variable Ladate n'est plus dispo avec hide l'usf et toujours chargé don Ladate est dispo dans l’événement du textbox dans l'userform lanceur

c'est le principe de boite de dialog
regarde dans le model simple ça fonctionne correctement
 

Pièces jointes

  • placement usf.xlsm
    37.9 KB · Affichages: 4

patricktoulon

XLDnaute Barbatruc
oui un variable public ou dans le module appelant
bon ben c'est une enigme j'ai tout mis dans le model simple et pas de problème c'est le fichier lui même qui déconné

pour le fait que tu ne travaille pas comme ca
imagine que tu est besoins d'une date dynamique dans une macro de la meme maniere qu'avec les controls calendrier existants

imagine meme avec ta variable public :
public ladate as date
Code:
 sub test()

ladate = calendrierperso ' la deja ca marche pas mais bon continuons

msgbox datediff("d",ladate,date)'ici cette ligne est exécutée avant même que le userform soit entièrement affiché donc walouh!!

end sub

maintenant regarde mon model et teste la sub dans le module
c'est exactement le même principe que le msgbox qui attend une réponse
avec votre principe il vous serait impossible de le faire a moins de mettre un do/loop d'attente ce qui est proscrit chez moi sachant que le simple fait du mode modal fait tout

bon ben pour l'autre fichier c'a restera une énigme
 

Pièces jointes

  • placement usf.xlsm
    39.1 KB · Affichages: 4

Roland_M

XLDnaute Barbatruc
re

bon, mais je saisie pas bien le principe dans ton explication !?

avec mon calendrier je saisie date sur cellule, une date depuis un module comme n'importe quel calendar
une simple date dans un userform, une date début avec date fin(avec test suivant deb/fin)
je vois pas ce que je pourrais rajouter de plus !?
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Moi je reste persuadé que le plus simple à utiliser c'est ma méthode Saisie qui s'occupe même de Show, ou même ma méthode Coupler qui s'occupe de tout, combinant un Posit et un Saisie en somme. Celà dit, au cas où, il a quand même aussi une propriété Value, et il ne se décharge jamais, sauf par injonction Window ou code extrene, pour qu'elle demeure accessible, mais je n'en ai jamais vraiment eu besoin. Je ne l'utilise que dans la démo puisqu'elle est là.
 
Dernière édition:

Roland_M

XLDnaute Barbatruc
Bonjour Dranreb,

tu as très certainement raison !
j'ai bien entendu chargé ton calendrier
mais figures toi que je n'arrive pas l'utiliser pour mes applications,
certaine moi qui a des difficultés à suivre le déroulement !?
surtout que maintenant j'ai un gros problème de mémoire dur dur . . .
 

Statistiques des forums

Discussions
312 217
Messages
2 086 353
Membres
103 195
dernier inscrit
martel.jg