Copier-coller une macro de RAZ "intelligente" ?

the Mokkori

XLDnaute Nouveau
Bonjour le forum !

Je sollicite a nouveau vos esprits pour un coup de main sur une creation de macro (sachant que je n'y connais rien)

J'ai n tableaux de dimensions identiques alignes les uns sous les autres (3 dans l'exemple ci-joint). Je souhaiterais creer un bouton "Reset" par tableau, qui reinitialise les cellules en gris sombre du tableau. Jusque la, rien de bien sorcier.

Mais vu que je vais avoir un grand nombre de tableaux (~200), je souhaiterais avoir un code generique, qui reinitialise le cellules du tableau en face duquel il est. Cela suppose que le bouton soit capble d'identifier sa propre position. Fantasme ou realite ? Quid des "references relatives"
Et question correlee : est-il possible de "copier-coller" un bouton ?

Merci pour votre aide, je reste dans le coin si vous voulez des precisions !


the Mokkori

PS : Desole pour les accents, clavier allemand...
 

Pièces jointes

  • 121211_STN_MPM Tool - Kopie.xlsm
    72.7 KB · Affichages: 62

Robert

XLDnaute Barbatruc
Repose en paix
Re : Copier-coller une macro de RAZ "intelligente" ?

Bonjour the Mokkori, bonjour le forum,

Un seul bouton avec le code ci-dessous mais avant de le lancer il te faudra sélectionner le numéro du tableau...
Le code :
Code:
Sub Macro1()
Dim pl As Range 'déclare la variable pl (PLage)
Dim cel As Range 'déclare la variable cel (CELlule)

'si la cellule active est fusionnée et contient un nombre différent de trois cellules, message, sort de la procédure
If ActiveCell.MergeArea.Cells.Count <> 3 Then MsgBox "Sélectionnez le numéro en haut à gauche du Tableau !": Exit Sub
Set pl = ActiveCell.Resize(34, 10) 'définit la plage pl du tableau
For Each cel In pl 'boucle sur toutes les cellules cel de la plage pl
    If cel.Interior.ColorIndex = 48 Then 'condition  : si la cellule est colorée de gris 40%
        cel.ClearContents 'efface le contenu de la cellule
        cel.Interior.ColorIndex = xlNone 'supprime la couleur
    End If 'fin de la condition
Next cel 'prochaine cellule de la boucle
End Sub
 

the Mokkori

XLDnaute Nouveau
Re : Copier-coller une macro de RAZ "intelligente" ?

Merci Robert, j'essaie ca demain matin et je vous tiens au courant.

En revanche, je me suis mal exprime quand je parlais de "gris sombre", c'etait juste un repere pour vous. Le code peut fonctionner avec des coordonnes plutot que par couleur, ca me va aussi bien. Mais apres tout pourquoi pas ? ;)

Amicalement
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Copier-coller une macro de RAZ "intelligente" ?

Bonjour the Mokkori, bonjour le forum,

Peut-être comme ça alors :
Code:
Sub Macro1()
Dim pt As Range 'déclare la variable pt (Plage Tableau)
Dim pc As Range 'déclarfe la variable pc (Plage des Cellules)

'si la cellule active est fusionnée et contient un nombre différent de trois cellules, message, sort de la procédure
If ActiveCell.MergeArea.Cells.Count <> 3 Then MsgBox "Sélectionnez le numéro en haut à gauche du Tableau !": Exit Sub
Set pt = ActiveCell.Resize(34, 10) 'définit la plage pt du tableau
'définit la plage des cellules pc
Set pc = Application.Union(pt.Cells(5, 2), pt.Cells(6, 2), pt.Cells(15, 2), pt.Cells(16, 2), pt.Cells(22, 2), _
   pt.Cells(23, 2), pt.Cells(28, 2), Range(pt.Cells(7, 5), pt.Cells(8, 10)), Range(pt.Cells(21, 3), pt.Cells(21, 10)))
pc.ClearContents 'efface le contenu de la plage pc
End Sub
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 305
Messages
2 087 084
Membres
103 459
dernier inscrit
Arnocal