![]() |
|
Forum
|
|
|
#2 (permalink) |
|
Guest
Messages: n/a
|
bonjour David
si tu utilises Excel97 , tu peux ecrire 'stephen Bullen Excel97 Private Declare Function FindWindowA Lib "User32" _ (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Function EnableWindow Lib "User32" _ (ByVal hWnd As Long, ByVal bEnable As Long) As Long Private Declare Function GetWindowLongA Lib "User32" _ (ByVal hWnd As Long, ByVal nIndex As Long) As Long Private Declare Function SetWindowLongA Lib "User32" _ (ByVal hWnd As Long, ByVal nIndex As Long, _ ByVal dwNewLong As Long) As Long Private Sub UserForm_Activate() EnableWindow FindWindowA("XLMAIN", Application.Caption), 1 End Sub Private Sub UserForm_Initialize() Dim hWnd As Long hWnd = FindWindowA(vbNullString, Me.Caption) SetWindowLongA hWnd, -16, GetWindowLongA(hWnd, -16) Or &H20000 End Sub pour les versions ulterieures d'Excel …. c'est plus simple Sub lanceUSF() UserForm1.Show 0 End Sub bonne soirée michel ![]() |
|
|
#4 (permalink) |
|
Guest
Messages: n/a
|
Bonjour le forum
Bonjour David, bonjour Michel Michel, je me permet de te solliciter. Je suis sous XL97 au bureau et ai essayé ton code. Il me permet de déplacer mon USF mais je ne peux pas travailler sur mon projet comme par exemple sélection d'un item dans une liste de validation. Ou alors je n'ai pas placé le code au bon endroit. Je désirerai afficher un USF déplaçable qui, à l'aide de labels, donne la marche à suivre pour débuter dans un fichier. Lorsque l'utilisateur a saisi la manoeuvre, il quitte en disant de ne plus afficher la prochaine fois en cochant un checkBox (Ca je ne vois comment faire). Puis, tant que j'y suis peut on aller à la ligne dans un label comme l'on fait dans une cellule Alt Enter ? Te remerciant d'avance de ta compréhension. @ ++ Eric C |
|
|
#5 (permalink) |
|
Guest
Messages: n/a
|
bonsoir Eric
sous excel 97 , les actions dans la feuille sont un peu limitées lors de l'affichage d'un USF non modal , mais normalement il n'y a pas de soucis pour acceder aux listes deroulantes ( voir l'exemple dans le classeur joint ) pour aller à la ligne dans un Label il faut utiliser Ctrl + Entrée j'ai mis un exemple dans l'USF pour ne plus le réafficher , si le checkbox est coché si ton USF s'affiche lors de l'ouverture du classeur tu peux utiliser Dim Debut As Integer, Lignes As Integer If CheckBox1 = True Then With ThisWorkbook.VBProject.VBComponents("ThisWorkbook" ).codemodule Debut = .ProcStartLine("Workbook_Open", 0) Lignes = .ProcCountLines("Workbook_Open", 0) .DeleteLines Debut, Lignes End With End If bonne soiree michel ![]() |
|
|
#7 (permalink) |
|
Guest
Messages: n/a
|
Bonjour le Forum
Bonjour Michel Je te remercie énormément de ton aide apportée. Désolé de ne pas avoir répondu plus tôt. Je testerai ton fichier dès jeudi (repos mardi mercredi). Encore un grand merci de ta promptitude et de ton soucis de vouloir aider les personnes soucieuse de vouloir aller de l'avant. @ ++ Eric C |
|
|
#8 (permalink) |
|
Guest
Messages: n/a
|
Bonjour le forum
Bonjour Michel 2péccable ton fichier ainsi que ton USF. Je me permets à nouveau une question : Dans ton USF (Case à cocher) tu fais référence à Rectangle 3 ? D'après quel critère le chiffre 3 est-il attribué ? Merci d'avance @ ++ Eric C |
|
|
#9 (permalink) |
|
Guest
Messages: n/a
|
bonsoir Eric
à chaque fois que tu créées une forme automatique , un numero d'incrementation est attribué , "rectangle 1" , "rectangle 2" ...etc... quand tu cliques sur la forme tu peux voir son appellation dans la zone de nom , en haut à gauche dans les barres d'outils et de menus excel dans mon fichier est indiqué "rectangle 3" , car j'avais testé différentes méthodes avant d'envoyer le classeur bonne soiree michel ![]() |
| Liens sociaux |
| Outils de la discussion | |
|
|