Annulé

maya43

XLDnaute Nouveau
Bonjour,
j'ai créé un userform avec trois boutons.
j'aurais voulu que, quand une cellule à droite de la cellule active à une valeur plus petite que 8
alors le boutons entrées devient Enabled.

j'ai crée cette macro, mais elle ne fonctionne pas.

merci de votre aide.
Olivier

Private Sub Choix_Initialize()
If Sheets("Stockage")(ActiveCell.Offset(1, 0), ActiveCell.Offset(0, 9)) < 8 Then
Shapes("Entrées").OLEFormat.Object.Enabled = False
Else
Shapes("Entrées").OLEFormat.Object.Enabled = True
End If
End Sub
 
Dernière édition:

Lone-wolf

XLDnaute Barbatruc
Re : Commande bouton

Bonjour maya,

Shapes("Entrées").OLEFormat.Object sont les formes que tu insère sur la feuille, c'est normal qu'il n'y aie pas d'action. Il faut écrire comme ceci lors-ce qu'il s'agit d'un CommandButton d'un formulaire.

Code:
Private Sub Choix_Initialize()  'si c'est le nom du formulaire
If Sheets("Stockage")(ActiveCell.Offset(1, 0), ActiveCell.Offset(0, 9)) < 8 Then
Me.Entrées.Enabled = False
Else
Me.Entrées.Enabled = true
End if
End Sub


A+ :cool:
 
Dernière édition:

Lone-wolf

XLDnaute Barbatruc
Re : Commande bouton

I maya,

tu as mis ceci dans un module standard

Code:
Private Sub UserForm_Initialize()

Dim L As Long
    'Mémoriser le tableau de données avec une colonne supplémentaire qui servira à la
    'gestion des niveaux d'alimentation des combobox
    With Sheets("Listes")
        L = .Range("A65536").End(xlUp).Row
        TabTemp = .Range(.Cells(1, 1), .Cells(L, 5)).Value
    End With
    MAJCombo ComboBox1, 0
End Sub

Private Sub ComboBox1_Change()
Dim L As Long
    'Remise à zéro des niveaux
    For L = 1 To UBound(TabTemp, 1)
        TabTemp(L, 5) = 0
    Next L
    'MAJ du combo n°2 avec un flag de niveau 1
    MAJCombo ComboBox2, 1, ComboBox1.Text
    'RAZ des combo suivantes
End Sub

Pourquoi???:confused: Le code est a mettre dans le module du formulaire.


Essaie avec ceci mais modifie les noms avant, je ne suis pas encore familiarisé avec le Offset.


Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Not Intersect([K2:K109], Target) Is Nothing And Target.Count = 1 Then
 Choix.Left = Target.Left + 150
 Choix.Top = Target.Top + 70 - Cells(ActiveWindow.ScrollRow, 1).Top
 Choix.Show
 
If ActiveCell.Offset(0, 0) <> "" And ActiveCell.Offset(0, 0) < Target.Offset(0, -1) Then
Choix.Entrées.Enabled = False
Else
Choix.Entrées.Enabled = True
End If
End If
End Sub


A+ :cool:
 
Dernière édition:

maya43

XLDnaute Nouveau
Commande bouton

Bonjour,
je n'arrive toujours pas à résoudre mon problème.
je vais essayer de mieux l'expliquer pour que je puisse mieux comprendre vos explications :)

quand je sélectionne une cellule dans la colonne A. exemple: A1 j'ai un userform qui s'ouvre avec trois boutons.
si la cellule adjacente à la cellule active, dans ce cas la J1, a une valeur plus petite que 9, j'aurais aimé que le premier bouton sur le userforme soit inactif.

merci de votre aide.
Olivier
 

Pièces jointes

  • bloquage bouton.xlsm
    17.5 KB · Affichages: 24
  • bloquage bouton.xlsm
    17.5 KB · Affichages: 19
Dernière édition:

Si...

XLDnaute Barbatruc
Re : Annulé

salut

Pour l'affichage, dans la page de code de l'onglet

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Not Intersect([A1:A109], Target) Is Nothing And Target.Count = 1 Then
    Choix.Show
  End If
End Sub
pour l'initialisation, dans la page de code du formulaire
Code:
Dim R As Range
Private Sub UserForm_Initialize()
  Set R = ActiveCell
  Entrées.Enabled = R(1, 10) > 8 'ou .Visible 
  Me.StartUpPosition = 0  'pour le placer ... 
  Choix.Left = R.Left + 150 "
  Choix.Top = R.Top - Cells(ActiveWindow.ScrollRow, 1).Top
End Sub
 

Discussions similaires

Réponses
4
Affichages
362
Réponses
1
Affichages
346

Statistiques des forums

Discussions
314 214
Messages
2 107 366
Membres
109 814
dernier inscrit
soufian