Modif de macro

Bonjour,

Pour ceux qui ont suivi mes précédents post (banzai64, niko ...), me revoilà avec mon fichier

Tout fonctionne bien mais mes collègues m'on demandé d'apporter une modification (si possible).

Voilà le fichier :

Nous avons donc dans l'onglet accueil les cellules B8:B30 dont le contenu est reporté sur les boutons chaque mois.

Le hic, c'est qu'il m'en faudrait un peu plus (j'en ai ajouté 8 pour avoir de la marge).

J'ai donc ajouté les cellules B31:B38, puis créé les macros correspondantes (boutons 23 à 31), créé les boutons sur le mois de janvier liés à chaque macro ...

Jusque là tout va bien ... enfin je pense.

Le problème c'est que lorsque je veux appliquer les postes B31:B38, ceux ci ne se répercutent pas sur les boutons.

Il faut certainement intervenir sur la macro :

Sub maj_boutons()
'Applique les codes de la page d'accueil sur la légende des boutons (bouton01 à bouton23)

Dim n As Byte, i As Byte
For n = 3 To 14
    Sheets(n).Select
    ActiveSheet.Unprotect (220305)
   For i = 1 To 23
    ActiveSheet.Shapes("bouton" & Format(i, "00")).Select
    Selection.Characters.Text = Sheets("Accueil").Cells(7 + i, 2).Value '1ère cellule : B8
   Next i
    'ActiveSheet.Protect Password:=220305, UserInterfaceOnly:=True, AllowFormattingCells:=True, DrawingObjects:=True, Contents:=True, Scenarios:=True
Next n
Sheets("Accueil").Select

End Sub

Mais je ne sais à quel niveau ...

Merci pour votre aide !

Bonjour

D'abord tes boutons que tu ajoutes il faut qu'ils portent le numéro 24 à 31 (Bouton24, Bouton25 .....Bouton31)

Ensuite dans ta macro remplaces 23 par 31

C'est tout

Bonsoir Banzai64,

Eh bien, j'ai bien créé les boutons 24 à 31 (bouton_24 ...).

Pour la modification du chiffre dans la macro " Sub maj_boutons() ", j'avais déjà tenté cette solution mais je pensais que ce n'était pas la bonne car j'ai cette erreur d’exécution qui apparaît :

Sub maj_boutons()
'Applique les codes de la page d'accueil sur la légende des boutons (bouton01 à bouton23)

Dim n As Byte, i As Byte
For n = 3 To 14
    Sheets(n).Select
    ActiveSheet.Unprotect (220305)
   For i = 1 To 31
    ActiveSheet.Shapes("bouton" & Format(i, "00")).Select
    Selection.Characters.Text = Sheets("Accueil").Cells(7 + i, 2).Value '1ère cellule : B8
   Next i
    'ActiveSheet.Protect Password:=220305, UserInterfaceOnly:=True, AllowFormattingCells:=True, DrawingObjects:=True, Contents:=True, Scenarios:=True
Next n
Sheets("Accueil").Select

End Sub

Edit : malgré cette erreur, les macros s'appliquent bien aux nouveaux boutons. Alors à quoi fait-elle référence ?

Merci !

Bonsoir

vinophile a écrit :

j'ai cette erreur d’exécution qui apparaît :

Quelle erreur (nites le libéllé exact - cela peut aider ) ?

Une erreur et le programme continue, comme c'est bizarre

Avec ton fichier modifié j'essaierai de trouver le pourquoi du comment

Il s'agit d'une erreur d'éxecution '-2147024809 (80070057)'

"l'élément portant ce nom est introuvable."

Bonjour,

Cette erreur peut apparaitre si tu as oublié de nommer tes 8 nouveaux boutons : bouton24, bouton25, ...., bouton31.

A+

Désolé pour la réponse tardive, semaine chargée ...

En effet, un des boutons n'était pas défini. L'erreur n’apparaît plus.

merci et bonne journée.

Bonjour à tous,

Je reprend le fil de mon post.

Le log fonctionne très bien mais il m'arrive parfois de devoir faire des modifications sur les compteurs établis dans chaque onglet.

Pour se faire, je dois lever la protection des 12 onglets et ce pour 15 fichiers excel à chaque fois.

Est ce que l'un d'entre vous aurait la solution pour lever la protection d'un seul tenant ?

Ou une petite formule magique à insérer dans la macro que je puisse activer ou désactiver ...

Voici le fichier :

Merci !

Bonjour

Macros à placer dans un module standard

Option Explicit

Sub ProtectionAll()
Dim Ws As Worksheet

  Application.ScreenUpdating = False

  For Each Ws In Sheets
    Select Case Ws.Name
      ' Tu marques les noms des pages non concernées par la protection
      Case "Non", "Pas cette feuille", "Ni celle ci"
      Case Else
        Ws.Protect Password:=220305, UserInterfaceOnly:=True, AllowFormattingCells:=True, DrawingObjects:=True, Contents:=True, Scenarios:=True
    End Select
  Next Ws
End Sub

Sub DeprotectionAll()
Dim Ws As Worksheet

  Application.ScreenUpdating = False
  For Each Ws In Sheets
    Ws.Unprotect Password:=220305
  Next Ws
End Sub

Merci Banzai64, ça marche impeccable ! (comme d'habitude ... )

Bonne soirée.

Rechercher des sujets similaires à "modif macro"