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

capture

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.

Par exemple CopierColonneTcd2 est paramétrique car il faut entrer une valeur pour la lancer.

capture1

Seule la première CopierColonneTcd apparaîtra dans la liste des macros pour personnaliser la barre d'accès rapide.

capture
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 Sub

Re,

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 Sub

Vos 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.

Re, J'ai pas bien compris pourquoi, mais j'ai juste créé une macro avec un message box que j'ai pu affecter facilement à la barre d'outil d'accès rapide et ensuite j'ai mis le vrai code qui m'intéressait ! Merci et belle journée.
Rechercher des sujets similaires à "affecter macro barre outils acces rapide classeur unique"