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 Subsi 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 SubBonjour,
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 , Truecomment é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 , TrueMerci 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 Subsi 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 Subsi 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 SubExtraordinaire!!!!!!!
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