OVH Cloud OVH Cloud

Oubli l'autre question

2 réponses
Avatar
YANN24
Re bonjour,

bon, j'ai résolu certains trucs.
Maintenant, il m'ouvre Excel, avec ma boite de dialogue au début.
Si je clique annuler, je quitte, OK
Mais, je n'ai rien dans ma liste déroulante.
Si je tape "2005" "OK", il me met "Erreur, objet requis"
ça plante où là?

Merci d'avance.
YANN

2 réponses

Avatar
anonymousA
pose pas de problème sur mon PC. d'ailleurs, quand tu cliques sur 2005 ou
2006, tu n'as même pas le temps de cliquer sur OK car je n'ai pas prévu dans
le programme que ca soit nécessaire. le OK est seulement là pour la
validation du mdp une fois rentré dans le textbox après avoir cliqué sur
Administrtaue dasn le combobox.
De plus , il y a un controle qui fait qeu si on frappe OK et que ce qui est
frappé ne correspond pas aux items, il ne se passe rien.
Enfin, il ne peut pas y avoir rien dans le combobox car soit la macro se
plante pendant la déclaration Initialize et donc n'affiche pas le userform,
soit ne plante pas et affiche le userform et dans ce cas, le combobox a été
rempli lors de l'initialize.

Donne plus de détails précis.

A+


Re bonjour,

bon, j'ai résolu certains trucs.
Maintenant, il m'ouvre Excel, avec ma boite de dialogue au début.
Si je clique annuler, je quitte, OK
Mais, je n'ai rien dans ma liste déroulante.
Si je tape "2005" "OK", il me met "Erreur, objet requis"
ça plante où là?

Merci d'avance.
YANN


Avatar
YANN24
OK, donc, je te donne ma macro que j'ai actuellement. Dans ma combobox, tout
apparait, meme la Textebox et le Labl.
Donc, voilà mon code : (Merci). YANN

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 Declare Function FindWindowA Lib "user32" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Private Sub CommandButton2_Click()
'si l'utilisateur clique sur Annuler, on quitte.
Unload Me
ThisWorkbook.Close
End Sub

Private Sub UserForm1_Initialize()
'empêche l'affichage de la croix de fermeture en utilisant les API
'déclarées en début de module
Dim hwnd As Long
hwnd = FindWindowA("Thunder" & IIf(Application.Version Like "8*", "X", "D")
& "Frame", Me.Caption)
SetWindowLongA hwnd, -16, GetWindowLongA(hwnd, -16) And &HFFF7FFFF

With Me.ComboBox1
.AddItem "2005"
.AddItem "2006"
.AddItem "Administrateur"
End With

Me.TextBox1.Visible = False
Me.Label1.Visible = False
End Sub

Private Sub combobox1_Click()
Select Case Me.ComboBox1.Value

Case "2005"
ThisWorkbook.IsAddin = False
Sheets("01.05").Visible = True
Sheets("02.05").Visible = True
Sheets("03.05").Visible = True
Sheets("04 05").Visible = True
Sheets("05.05").Visible = True
Sheets("06.05").Visible = True
Sheets("07.05").Visible = True
Sheets("08 05").Visible = True
Sheets("09.05").Visible = True
Sheets("10.05").Visible = True
Sheets("11.05").Visible = True
Sheets("12 05").Visible = True
Sheets("CP 2005-2006").Visible = True

Unload Me

Case "2006"
ThisWorkbook.IsAddin = False
Sheets("01.06").Visible = True
Sheets("02.06").Visible = True
Sheets("03.06").Visible = True
Sheets("04 06").Visible = True
Sheets("05.06").Visible = True
Sheets("06.06").Visible = True
Sheets("07.06").Visible = True
Sheets("08 06").Visible = True
Sheets("09.06").Visible = True
Sheets("10.06").Visible = True
Sheets("11.06").Visible = True
Sheets("12 06").Visible = True
Sheets("CP 2006-2007").Visible = True

Unload Me

Case "Administateur"

With Me
.ComboBox1.Visible = False
With .TextBox1
.Visible = True
.SetFocus
End With
.Label1.Visible = True
End With

End Select
End Sub
Private Sub commandbutton1_Click()

If Me.ComboBox1.Value = "" Then
MsgBox "vous n'avez rien saisi"
Me.ComboBox1.SetFocus
Else
If TextBox1.Value = "" Then
Else
If controlmdp(TextBox1.Value) = True Then
ThisWorkbook.IsAddin = False
For I = 1 To ThisWorkbook.Sheets.Count
Sheets(I).Visible = True
Next
Unload Me
End If
End If
End If

End Sub
Function controlmdp(nommdp)
On Error Resume Next
tabmdp = Array("aec")
trouve = Application.WorksheetFunction.HLookup(nommdp, tabmdp, 1, False)
If Err.Number <> 0 Then
Err.Clear
MsgBox "Vous n'êtes pas autoriser à pénétrer cet espace réservé"
Else
MsgBox "Autorisation acceptée"
controlmdp = True
End If
End Function