Verouillage des propriétés de combobox

Bonjour,

1///Sur une feuille , j' ai positionné une centaine de combobox à des endroits précis avec leurs propriétés top ,height, left.

Comment faire pour verrouiller leurs positions, hauteurs et largeurs tout en continuant à pouvoir les sélectionner et utiliser ma feuille normalement afin qu'il soit impossible de les modifier ?

2///comment écrire le code permettant d' en sélectionner plusieurs et de leur assigner le même top ou height ou left??

désolé pour mon incompétence...

Merci

Bonjour,

il faut protéger la feuille,

vous pouvez déverrouiller les cellules avant de protéger la feuille

faite le test,

Sub Protege()
With ActiveSheet
    .EnableAutoFilter = False
    .EnableOutlining = False

    .Protect Password:="", _
        DrawingObjects:=True, _
        Contents:=True, _
        Scenarios:=False, _
        AllowFormattingCells:=False, _
        AllowFormattingColumns:=False, _
        AllowFormattingRows:=False, _
        AllowInsertingColumns:=False, _
        AllowInsertingRows:=False, _
        AllowInsertingHyperlinks:=False, _
        AllowDeletingColumns:=False, _
        AllowDeletingRows:=False, _
        AllowSorting:=False, _
        AllowFiltering:=False, _
        AllowUsingPivotTables:=False, _
        UserInterfaceOnly:=False
 End With
End Sub

si vos combobox se nomment combobox1, combobox2 etc... vous pourriez faire une boucle,

exemple,

Sub test1()
x = 1
ActiveSheet.OLEObjects("ComboBox" & x).Left = Cells(2, 3).Left
End Sub

Bonjour,

Comment faire pour verrouiller leurs positions, hauteurs et largeurs tout en continuant à pouvoir les sélectionner et utiliser ma feuille normalement afin qu'il soit impossible de les modifier ?

Cette ligne de code protège les objets déposés sur la feuille :

ActiveSheet.Protect , True

comment écrire le code permettant d' en sélectionner plusieurs et de leur assigner le même top ou height ou left??

Comme te le propose sabV, il te faut faire une boucle car tu ne peux pas définir la position et dimension en une seule fois pour plusieurs contrôles

Re,

Petite précision, si tu veux que toutes les cellules restent éditable, tu les déverrouilles toutes avant de protéger :

ActiveSheet.Unprotect
ActiveSheet.Cells.Locked = False
ActiveSheet.Protect , True

Merci SabV pour tous les détails des protections , ça fonctionne bien.

Super

A bientôt

Bonjour,

il faut protéger la feuille,

vous pouvez déverrouiller les cellules avant de protéger la feuille

faite le test,

Sub Protege()
With ActiveSheet
    .EnableAutoFilter = False
    .EnableOutlining = False

    .Protect Password:="", _
        DrawingObjects:=True, _
        Contents:=True, _
        Scenarios:=False, _
        AllowFormattingCells:=False, _
        AllowFormattingColumns:=False, _
        AllowFormattingRows:=False, _
        AllowInsertingColumns:=False, _
        AllowInsertingRows:=False, _
        AllowInsertingHyperlinks:=False, _
        AllowDeletingColumns:=False, _
        AllowDeletingRows:=False, _
        AllowSorting:=False, _
        AllowFiltering:=False, _
        AllowUsingPivotTables:=False, _
        UserInterfaceOnly:=False
 End With
End Sub

si vos combobox se nomment combobox1, combobox2 etc... vous pourriez faire une boucle,

exemple,

Sub test1()
x = 1
ActiveSheet.OLEObjects("ComboBox" & x).Left = Cells(2, 3).Left
End Sub

Merci aussi pour ta réponse sur la sélection des combobox en série.

Mais ce n' est pas le cas:

Les combos que je dois sélectionner ne se suivent pas en numéro.

Comment écrire quelque chose de pas trop lourd pour, par exemple, sélectionner les combos 2,11,258,310.... et leur imposer un même top, height ou left ??

merci

Bonjour,

il faut protéger la feuille,

vous pouvez déverrouiller les cellules avant de protéger la feuille

faite le test,

Sub Protege()
With ActiveSheet
    .EnableAutoFilter = False
    .EnableOutlining = False

    .Protect Password:="", _
        DrawingObjects:=True, _
        Contents:=True, _
        Scenarios:=False, _
        AllowFormattingCells:=False, _
        AllowFormattingColumns:=False, _
        AllowFormattingRows:=False, _
        AllowInsertingColumns:=False, _
        AllowInsertingRows:=False, _
        AllowInsertingHyperlinks:=False, _
        AllowDeletingColumns:=False, _
        AllowDeletingRows:=False, _
        AllowSorting:=False, _
        AllowFiltering:=False, _
        AllowUsingPivotTables:=False, _
        UserInterfaceOnly:=False
 End With
End Sub

si vos combobox se nomment combobox1, combobox2 etc... vous pourriez faire une boucle,

exemple,

Sub test1()
x = 1
ActiveSheet.OLEObjects("ComboBox" & x).Left = Cells(2, 3).Left
End Sub

Bonjour Theze

Merci mille fois, c'est exactement ce qu'il me fallait

à bientôt peut-être

Re,

Petite précision, si tu veux que toutes les cellules restent éditable, tu les déverrouilles toutes avant de protéger :

ActiveSheet.Unprotect
ActiveSheet.Cells.Locked = False
ActiveSheet.Protect , True

Comment écrire quelque chose de pas trop lourd pour, par exemple, sélectionner les combos 2,11,258,310.... et leur imposer un même top, height ou left ??

par exemple,

Sub test1()
cb = Array(2, 11, 258, 310)
For i = LBound(cb) To UBound(cb)
  With ActiveSheet.OLEObjects("ComboBox" & cb(i))
  .Left = Cells(2, 3).Left
  .Top = 30 * i
  .Height 20
  .Width 100
  End With
Next
End Sub

Extraordinaire!!!!!!!

Quel bonheur , merci pour tout SabV

A bientot

Comment écrire quelque chose de pas trop lourd pour, par exemple, sélectionner les combos 2,11,258,310.... et leur imposer un même top, height ou left ??

par exemple,

Sub test1()
cb = Array(2, 11, 258, 310)
For i = LBound(cb) To UBound(cb)
  With ActiveSheet.OLEObjects("ComboBox" & cb(i))
  .Left = Cells(2, 3).Left
  .Top = 30 * i
  .Height 20
  .Width 100
  End With
Next
End Sub
Rechercher des sujets similaires à "verouillage proprietes combobox"