Fusionner utilisation boutons

fleet21

XLDnaute Junior
Bonjour à tous,

J'ai réalisé une partie du code pour que chaque appui sur un bouton exécute la même action. par exemple pour le bouton 1 situé en K2 : les cases H2 et K2 sont copiées puis collées en Bx-Cx selon l'état de remplissage de ces deux colonnes B-C. Autre exemple pour le bouton 13 : les cases H13 et K13 sont copiées puis collées en Bx-Cx selon l'état de remplissage de ces deux colonnes B-C. Voilà pour l'explication.

Je me demandais car j'ai besoin d'environ 14 boutons réalisant la même fonction sur leurs lignes respectives si le code peut être réduit car actuellement chaque bouton a sa propre sub et ça va vite devenir long sans compter les mises à jour éventuelles . J'ai bien pensé à utiliser la position du curseur souris et l'intégrer dans une formule mais je ne vois pas comment faire car chaque bouton disposant de sa propre sub il faudrait un genre de module central qui gère tous ces boutons, je ne sais pas si cela existe.

Peut être faut-il changer complètement de manière de faire ?
 

Pièces jointes

  • Essai.xls
    61.5 KB · Affichages: 35

fleet21

XLDnaute Junior
c'est un oubli job75 avait effectivement satisfait ma demande, en le remerciant. Il faut aussi avancer et aller vérifier dans les posts passés si untel a répondu à un tel post n'est pas très productif, à moins que les posts puissent être passés en résolu ce qui change la donne. Les oublis arrivent et je pense ne pas être le dernier lorsqu'il s'agit de remercier les contributeurs du site, une non réponse ne signifie pas forcément du mépris et du jeanfoutisme, en prendre note.

Sinon à part cette mise au point, si ma question vous intéresse je vous répondrai volontiers.
 

Staple1600

XLDnaute Barbatruc
Re,

@fleet21
Je disais simplement que j'ai pas lu de commentaire de ta part sur la syntaxe que je te proposais.
Et il ne s'agit pas d'être productif ou pas mais de courtoisie.
(Surtout que la fonctionnalité du forum: Discussions suivies permets de voir en un coup d'oeil les dernières soumissions dans ses discussions)

Pour revenir à ta question, on peut utiliser un module de classe
1) Module de classe
Code:
Option Explicit
Public WithEvents cmdBtn As MSForms.CommandButton
Private Sub cmdBtn_Click()
Dim ligne&, wsN$
wsN = cmdBtn.Parent.Name
ligne = cmdBtn.TopLeftCell.Row
With Sheets(wsN)
    .Cells(ligne, "B").Resize(, 2) = .Cells(ligne, "J").Resize(, 2).Value
    .Range("A1:A37").Borders(10).Weight = -4138
    .Range("C1:C37").Borders(10).Weight = -4138
End With
End Sub
2) Module standard
Code:
Option Explicit
Public Collect As Collection
3) Dans ThisWorkBook
Code:
Option Explicit
Private Sub Workbook_Open()
Dim Obj As OLEObject
Dim Cl As clsCMB
Dim Ws As Worksheet
Set Collect = Nothing
Set Collect = New Collection
For Each Ws In ThisWorkbook.Worksheets
    For Each Obj In Ws.OLEObjects
        If TypeOf Obj.Object Is MSForms.CommandButton Then
            Set Cl = New clsCMB
            Set Cl.cmdBtn = Obj.Object
            Collect.Add Cl
        End If
    Next Obj
Next Ws
End Sub
NB: A faire avant de lancer la macro
On nommera le module de classe: clsCMB
Suppression ou mise en commentaire des codes existants dans la feuille mai
 

fleet21

XLDnaute Junior
Bonjour à tous,
merci pour ta réponse staple1600. J'ai donc essayé de mettre en œuvre tes conseils et quelques problèmes ont surgi :
- comment nommer le module de classe : clsCMB
- faut-il vraiment tous effacer du code précédent
- à l'ouverture du fichier, une erreur de compilation apparaît : peut être que l'erreur vient de l'interprétation Cl ou CI car le copier coller du code dans les messages fonctionnent très mal
je joins le fichier excel si il y a des modifications à faire
 

Pièces jointes

  • Essai2 - module de classe.xls
    41 KB · Affichages: 31

Staple1600

XLDnaute Barbatruc
Re

@fleet21
•Pour nommer, un module, il suffit d'afficher la fenêtre Propriétés dans VBE
(et à droite du champ Name, saisir le nom voulu)
• j'avais écrit: effacer ou commenter (pour commenter il existe le bouton idoine dans la barre d'outils Edition de VBE)
• Pour faire un copier/coller "propre", il suffit de copier au préalable dans le bloc-notes de Windows
• Si j'ai posté le code, c'est que je l'ai testé au préalable et qu'il fonctionne.
• Si le demandeur n'arrive pas à le faire fonctionner, c'est qu'il n'a pas suivi mes explications.
Donc charge à lui de relire les dites explications et/ou d'utiliser les ressources du web (elles sont nombreuses)
(exemple de module de classe dans d'autres fils du forum, sur le web, recherche G..gle avec les mots-clés: VBA Excel comment renommer un module etc...)

Y'a plus ka, fleet21 ;)
 

Staple1600

XLDnaute Barbatruc
Re

@fleet21
Une version remaniée
(Sans devoir renommer le module de classe)
01Ex2ModClass.jpg
NB: Cliques sur l'image pour l'afficher en taille réelle
Je te laisse à partir du code précédent écrire cette version-ci.

PS: Cette version ne prend en compte que les CommandButton de la feuille active.
(L'autre version bouclait sur toutes les feuilles, donc tu as le choix selon l'usage de ton classeur)
 

Staple1600

XLDnaute Barbatruc
Re

@fleet21
Comme déjà évoqué:
Donc charge à lui de relire les dites explications et/ou d'utiliser les ressources du web (elles sont nombreuses)
Tu as cherché dans G..gle (ou autre moteur de recherche)?
Avec ces mots-clés par exemple: VBA Excel "renommer module"

Et pourquoi tu veux renommer puisque dans mon précédent message, j'ai mis une version de code qui ne nécessite pas le renommage...
Tu l'as testée au moins ?!?
 

fleet21

XLDnaute Junior
J'en suis tout simplement à la première version qui doit boucler sur toutes les feuilles et c'est ce qui m'intéresse. Comme déjà dit dans un de mes post je cherche à comprendre ce qui ne va pas et mon but n'est pas d'utiliser basiquement une macro sans la comprendre donc forcément ça prend du temps.

En cherchant j'ai enfin trouvé ou était cette fenêtre Name (qui au passage était fermée sur mon fichier pour je ne sais quelle raison, peut être aurait-il été possible de m'en faire la remarque en le parcourant ;)).

Maintenant il y a la questions des boutons, tu me disais dans un post : Suppression ou mise en commentaire des codes existants dans la feuille mai. Du coup il n'y a plus de boutons dans la feuille excel ?
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 069
Messages
2 085 041
Membres
102 764
dernier inscrit
nestu