Probleme de nombre de boutons

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

michel29

XLDnaute Nouveau
Bonjour
J'ai une question assez simple pour vous je pense mais pas evidente pour moi (je débute en vba)
J'ai créé un tableau excel avec 99 boutons par feuille (1 par ligne) avec ce code




Private Sub D1_Click()

If Worksheets("R10").Range("H5") <= 0 Or Worksheets("R10").Range("H5") > Worksheets("R10").Range("G5") Then
MsgBox " Case 'DEMANDE' non renseignée ou" & vbCrLf & "quantité demandée supérieur au stock", vbCritical, "Attention !!"
Worksheets("R10").Range("H5") = ""
Else
Worksheets("R10").Range("H5").Interior.ColorIndex = 6

'Sauvegarde sur un fichier avant l'impression

'filenum = FreeFile
'Open "c:\user\copy.txt" For Append As filenum
'Print #filenum, "Code: " & Worksheets("R10").Range("a5"); " Art: " & Worksheets("R10").Range("b5") & " N°: " & Worksheets("R10").Range("d5") & " QT: " & Worksheets("R10").Range("H5") & " Cde: " & Worksheets("R10").Range("I5")
'Print #filenum, ""
'Close filenum
End If

End Sub

Cela fonctionne tres bien mais le probleme c'est que je dois remettre ce code à chaque bouton ce qui à la fin devient énorme..
J'ai besoin de 10 pages identiques..
J'ai copié collé c'est pages dans mon classeur et le probléme c'est qu'il est tres lent à s'ouvrir et à ce fermer..
Y a t'il un moyen de reduire ce code ?? ou de faire plus simple ...

Merci d'avance pour vos réponses car la moi je ne sais plus comment faire
 
Re : Probleme de nombre de boutons

Oui je crois voir ce que tu veux dire mais le code de chaque bouton est different au niveau ligne

bouton1 = If Worksheets("R10").Range("H5") etc ...
bouton 2= If Worksheets("R10").Range("H6") etc ...
bouton 3= If Worksheets("R10").Range("H7") etc ...


En fait j'ai 9 feuilles identiques
Sur chaque feuille j'ai 99 lignes et je veux qu'en appuyant sur le bouton à cote de chaque ligne ca enregistre certaines cellules de cette ligne dans un fichier texte...

Donc pour cela j'ai 99 boutons..ca fonctionne bien mais le gros probleme c'est que le tableau est lent à l'ouverture et aussi à la fermeture..
Et franchement (étant novice ) je ne sais plus comment m'y prendre ..

J'ai supprimé 98 boutons pour faire un test et la il redevient rapide à l'ouverture et à la fermeture ...
J'ai essayé aussi avec des images à la place des boutons ..le fichier est plus leger mais toujours aussi long à l'ouverture ...

J'espere avoir était plus clair ....
Amicalement
Michel
 
Dernière édition:
Re : Probleme de nombre de boutons

Bonjour,

La méthode à utiliser semble "les modules de classe": tu trouveras des exemples dans le WIKI de MichelXLD ainsi qu'en faisant des recherches sur les discussions suivies par Myta et Hervé, par exemple (que les autres contributeurs veuillent bien m'excuser !)

Bonne recherche
 
Re : Probleme de nombre de boutons

Salut le Forum

Un façon de faire, un seul CommandButton par feuille et le code
sur chaque feuille du classeur.

PHP:
Private Sub CommandButton1_Click()
Dim filenum
With ActiveSheet
    If .Cells(ActiveCell.Row, 4) <= 0 Or .Cells(ActiveCell.Row, 4) > .Cells(ActiveCell.Row, 3) Then
        MsgBox " Case 'DEMANDE' non renseignée ou" & vbCrLf & _
            "quantité demandée supérieur au stock", vbCritical, "Attention !!"
        .Cells(ActiveCell.Row, 4) = ""
    Else
        .Cells(ActiveCell.Row, 4).Interior.ColorIndex = 6
            filenum = FreeFile
            Open "c:\copy.txt" For Append As filenum
            Print #filenum, "Code: " & .Cells(ActiveCell.Row, 1) & _
                " Art: " & .Cells(ActiveCell.Row, 2) & "  QT: " & _
                    .Cells(ActiveCell.Row, 4) & "  Cde: " & .Cells(ActiveCell.Row, 5)
            Print #filenum, ""
            Close filenum
    End If
End With
End Sub
 
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 ' Positionne le CommandButton sur
 ' la ligne active dans la colonne F.
 
With Me.CommandButton1
    .Left = 415
    .Top = ActiveCell.Top
End With
End Sub

Mytå
 
Re : Probleme de nombre de boutons

Bonjour
Un grand merci à vous tous ..
Avec vos commentaires et explications mon tableau est maintenant redevenu
rapide à l'ouverture comme à la fermeture ...
Je vois que j'ai énormement de choses à voir (et à apprendre ..)

Encore un grand merci à:
Mytå (ton code fonctionne tres bien je vais l'adapter)
carcharodon-carcharias (merci pour tes commentaires et ton fichier)
michel_m (merci pour tes commentaires)

Amicalement
Michel
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

D
Réponses
3
Affichages
899
David Jonc.
D
Retour