désactiver fermeture dans userform

sigma

XLDnaute Occasionnel
bonjour à tous,
2 petits soucis me font venir vers vous.

1 j'ai une user form avec 2 bontons (valider et annuler) et j'aimerai ôter ou rendre passive la croix rouge pour qu'on ne puisse pas l'utiliser.

2 dans un troisieme onglet, je voudrais faire le récapitulatif des 2 onglets précédents, l'opération fonctionne sur le premier ou sur le deuxième séparément mais je n'arrive pas à la faire fonctionner ensemble.

voici le bout de code que j'utilise mais il ne prend en compte que le dernier onglet.

Application.ScreenUpdating = False
Sheets('onglet 1').Select
Sheets('onglet 2').Select
Dim tmp_tab(500, 8) As String
Dim tmp_titre(50) As String

existe t'il un fonction Sheets('onglet 1').Select + Sheets('onglet 2').Select ?

merci à vous et bonne journée à tous.

A+
 

Creepy

XLDnaute Accro
Hello le Forum, Sigma,

Alors pour ton problème 1 :

Copie/Colle ce code dans un module :

Option Private Module
Declare
Function GetWindowLongA Lib 'User32' _
    (ByVal hWnd
As Long, ByVal nIndex As Long) As Long
Declare
Function SetWindowLongA Lib 'User32' _
    (ByVal hWnd
As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Declare
Function FindWindowA Lib 'User32' _
(ByVal lpClassName
As String, ByVal lpWindowName As String) As Long

'Moyen de ne pas avoir la CROIX DE FERMETURE sur les UserForms
'=========================================================================

Sub PasDeCroix(USF As UserForm)
Dim hWnd      As Long
    hWnd = FindWindowA('Thunder' & IIf(Application.Version
Like '8*', _
                        'X', 'D') & 'Frame', USF.Caption)
    SetWindowLongA hWnd, -16, GetWindowLongA(hWnd, -16) And &HFFF7FFFF
End Sub

Ensuite dans le procedure d'initialisation de ta userform tu mets ca :

Private Sub UserForm_Initialize()
PasDeCroix Me

End Sub

et voila ...
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Bonjour

Si tu veux juste désactiver la croix tu peux faire (elle sera toujours visible mais ne fermera plus le userform)

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)

If CloseMode = vbFormControlMenu Then Cancel = True

End Sub


Bon courage
 

sigma

XLDnaute Occasionnel
re,

j'ai 2 onglets de structure identique, le premier me sert de suivi pour des plans d'action, et j'archive mes données sur le second lorsque je le désire.
mon 3e onglet me sert à réaliser le récapitulatif par mois des 2 premiers.

le récapitulatif fonctionne sur chaque page différemment mais je n'arrive pas à donner l'ordre de choisir les 2 feuilles en même temps.

ex :
Sheets('onglet 1').Select
Dim tmp_tab(500, 8) As String
Dim tmp_titre(50) As String

fonctionne parfaitement pour faire le récap de l'onglet 1 mais comment faire pour qu'excel aille chercher les données dans les 2 onglets sachants qu'ils sont identiques.

Ne peut on pas par exemple définir une plage d'onglet (1 et 2)?

j'espère avoir été plus clair, merci.

A+
 

Discussions similaires

  • Question
Microsoft 365 Code VBA
Réponses
10
Affichages
736
Réponses
28
Affichages
2 K