Affecter une macro à la barre d'outils Accès rapide pour un classeur unique
Bonjour à toutes et à tous,
J'ai un fichier spécifique où il y a des modules contenant des macros, cependant quand je veux les mettre dans la barre d'outils Accès rapide et que je sélectionne le classeur, je ne vois pas toutes les macros, j'en ai 6 dans ce classeur j'en vois que 3. Au début, il n'y avait aucune macro, je ne sais même pas comment les 3 autres ont fini par apparaître... D'avance merci
Bonjour,
Seules les macros non paramétriques peuvent apparaître dans la liste de choix à gauche.
Sinon, quel est votre problème ?
Re,
Qu'entendez-vous par macros non paramétriques ?
Car ce sont bien mes modules.
Sub Validation_donnes_2()
Dim Value As Range
Dim Rng_Value As Range
Dim yourCell As Range
Dim rng_validation_d As Range
Dim rng As Range
Dim rng_carton As Range
Dim rownumber As Long
'suite de la macro, car il faut saisir les VE
Sheets("Chantier").Select
'en espérant que la personne ne s'est pas enlever de la ligne de saisi
Cells(ActiveCell.Row, 3).Select
'First_c mémorise l'activeCell, pour pouvoir changer de feuille tranquille
Set First_c = ActiveCell
Set Value = Cells(ActiveCell.Row, 3)
Sheets("VE POUR LES OBJETS").Select
ActiveSheet.Unprotect
'recherche par nom de chantier les VE liées
Set Rng_Value = Columns("A:B").Find(What:=Value.Value, _
LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, _
SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)
rownumber_value = Rng_Value.Address
'sélectionne toutes les VE, assimilées au chantier nommé
Range(Rng_Value.Offset(1, 0).Address, Range(Rng_Value.End(xlDown).Address)).Select
'mets une variable pour l'utiliser dans la validation de données
Set rng_validation_d = Range(Rng_Value.Offset(1, 0).Address, Range(Rng_Value.End(xlDown).Address))
Sheets("Chantier").Select
Sheets("Chantier").Unprotect
First_c.Offset(0, 3).Select
With Selection.Validation ' mets la validation de donnée
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="='VE POUR LES OBJETS'!" & rng_validation_d.Address
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
'affiche dans la liste déroulante le premier résultat de la liste de donnée
First_c.Offset(0, 3) = Range("'VE POUR LES OBJETS'!" & rng_validation_d.Address).Cells(1, 1)
'mets le remplissage en saumon
First_c.Offset(0, 3).Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 14281213
' .TintAndShade = 201
.PatternTintAndShade = 0
End With
'masque & protège
Sheets("VE POUR LES OBJETS").Select
Sheets("VE POUR LES OBJETS").Protect
Sheets("VE POUR LES OBJETS").Visible = False
Sheets("Chantier").Select
ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
False, AllowFormattingCells:=True, AllowSorting:=True, AllowFiltering:= _
True, AllowUsingPivotTables:=True
First_c.Offset(0, 3).Select
End SubRe,
Pas certain d'avoir compris, je vous mets ci-dessous mes deux codes de macro et dites-moi comment je peux les mettre en non-paramétrique.
Sub Validation_donnes()
Sheets("VE POUR LES OBJETS").Visible = True
Sheets("VE POUR LES OBJETS").Unprotect
Sheets("Chantier").Select
'copie le nom du chantier de la ligne active
Cells(ActiveCell.Row, 3).Select
Selection.Copy
Sheets("VE POUR LES OBJETS").Select
'sélectionne la range de la prochaine saisi, en partant de la fin
Range("A1048576").End(xlUp).Offset(2, 0).Select
ActiveSheet.Paste
Application.CutCopyMode = False
'mets le remplissage saumon
ActiveCell.Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 14281213
' .TintAndShade = 201
.PatternTintAndShade = 0
End With
'centre la cellule
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
'descends d'une case pour saisir les ve suivantes
'à checker que quand on saisit ça saisi réellement sur la bonne FEUILLE
ActiveCell.Offset(1, 0).Select
MsgBox ("Merci de rentrer les VE à la suite" & Chr(13) & Chr(10) & Chr(13) & Chr(10) & " Une fois tout saisi, lancer la 2ème macro")
End SubVos macros ne sont pas paramétriques. J'ai mis vos macros dans la barre d'accès rapide (boutons rouge et vert). Bien entendu, elles ne fonctionneront pas car il manque les onglets. Il vous faudra supprimer les deux premières lignes dans chaque macro.


