Création d'un bouton pour effectuer un Collage spécial

Bonjour à tous,

Étant néophyte, je m'en remets à vous pour m'aider dans mon projet.

J'ai besoin de réaliser un bouton permettant de gérer mes stocks lors de l'achat d'un produit. Après plusieurs heures de recherche sur le Web, je n'ai pas trouvé la réponse à ma question. Voici donc l'énoncé du problème :

Lorsque je vends un article, comme par exemple un PC que j'ai monté moi-même, j'aimerai que tous les éléments composants ce PC soient soustrait à la liste de stock. Par exemple, si je vends un PC il faut que les cellules F28, F33 et F53 soient soustraites de 1 (soit x-1). C'est pourquoi un bouton à cliquer serait le bienvenu ici, afin de cliquer dessus à chaque vente et ainsi gérer "pseudo automatiquement" mes stocks. Pour cela le collage spécial serait tout désigné pour appliquer la même opération à plusieurs cellules en même temps (soustraction de 1 à chaque clique).

J'espère que quelqu'un pourra m'éclairer sur la façon de créer un bouton (ActiveX ou Formulaire ?) qui appliquerait un collage spécial, lors du clique, aux cellules que je désignerai.

Merci d'avance pour votre aide

Bonsoir Strife, bonsoir le forum,

Tout à fait réalisable mais un petit fichier exemple serait, comme toi, le bienvenu.

Merci de l'accueil ! Voici donc le fichier stock que j'utilise.

Par exemple, je souhaiterai qu'en cliquant sur le bouton "Vente 1" cela effectue une soustraction de 1 (x-1) sur les cellules F18, F23, F36 et F73.

J'espère vous avoir un peu plus éclairé sur mon problème

7stocks.xlsx (29.21 Ko)

Re,

Le fichier que tu fournis n'est pas assez explicite pour comprendre... Pourquoi F18, F23, F36 et F73, quels sont les critères ?

Si tu ne fais aucun effort, je doute que nous en fassions pour toi...

Si tu ne fais aucun effort, je doute que nous en fassions pour toi...
Ahhh la bonne humeur des Français, qu'est ce que j'aime ca!

Je croyais avoir bien expliqué en détail dans mon premier message, mais j'ai peut être du me tromper. Pourquoi F18, F23, F36 et F73 ? Car ce sont des exemples pour illustrer que ces cellules affichent le nombre du stock à soustraire de 1, comme tu peux le voir nommé "stock" au dessus de celles-ci.

Merci d'être plus précis sur ce que tu voudrais comme informations supplémentaires.

Re,

D'abord je ne suis pas français, donc tes considérations à caractère raciste, tu imagines peut-être où je les mets... Ensuite tu dis :

Par exemple, je souhaiterai qu'en cliquant sur le bouton "Vente 1" cela effectue une soustraction de 1 (x-1) sur les cellules F18, F23, F36 et F73.

Mais on ne sais pas à quelle ligne correspond le bouton Vente1 et surtout toutes les lignes et colonnes contiennent un x. Comment veux -tu que l'on comprennes !?... Et si on ne comprends pas, quel intérêt de te proposer un code ?!..

Mais, pour te mettre de bonne humeur, en voici un qui répond à ta demande :

Private Sub CommandButton1_Click()
Dim PL As Range
Dim CEL As Range

Set PL = Range("F18,F23,F36,F73")
For Each CEL In PL
    CEL.Value = CEL.Value - 1
Next CEL
End Sub

Comment peut-on être raciste contre sa propre race? Enfin, là n'est pas le débat, car pour parler de racisme dès le troisième message, on s'imagine très bien le genre de personne que tu es.

Comme on peut le voir sur le fichier, le bouton "Vente 1" correspond à la ligne 3. Mais je ne suis pas sur que cela ait une utilité ici, car le bouton ne correspond pas à une ligne mais à une action unique : un clique.

Dans tous les cas, merci d'avoir pris du temps pour me répondre, je vais essayé ton code et je te fais un retour si cela t'intéresse.

Le code fonctionne parfaitement, je l'ai adapté à mon utilisation, voici ce que cela donne :

Private Sub CommandButton1_Click()
If MsgBox("Article vendue ?", 36, "PC XXX") = vbYes Then
Dim PL As Range
Dim CEL As Range

Set PL = Range("F28,F33,F53,F69,F88,F96,F116")
For Each CEL In PL
    CEL.Value = CEL.Value - 1
Next CEL
End If
End Sub

Private Sub CommandButton2_Click()
If MsgBox("Article vendue ?", 36, "PC XXX") = vbYes Then
Dim PL As Range
Dim CEL As Range

Set PL = Range("F28,F40,F53,F61,F83,F96,F116")
For Each CEL In PL
    CEL.Value = CEL.Value - 1
Next CEL
End If
End Sub

Private Sub CommandButton3_Click()
If MsgBox("Article vendue ?", 36, "PC XXX") = vbYes Then
Dim PL As Range
Dim CEL As Range

Set PL = Range("F28,F42,F53,F61,F85,F96,F116")
For Each CEL In PL
    CEL.Value = CEL.Value - 1
Next CEL
End If
End Sub

Private Sub CommandButton4_Click()
If MsgBox("Article vendue ?", 36, "PC XXX") = vbYes Then
Dim PL As Range
Dim CEL As Range

Set PL = Range("F28,F33,F53,F69,F83,F96,F116")
For Each CEL In PL
    CEL.Value = CEL.Value - 1
Next CEL
End If
End Sub

Private Sub CommandButton5_Click()
If MsgBox("Article vendue ?", 36, "PC XXX") = vbYes Then
Dim PL As Range
Dim CEL As Range

Set PL = Range("F28,F33,F53,F69,F85,F96,F116")
For Each CEL In PL
    CEL.Value = CEL.Value - 1
Next CEL
End If
End Sub

Merci encore à ThauThème.

Re,

Ou :

Option Explicit
Private PL As Range

Private Sub CommandButton1_Click()
Set PL = Range("F28,F33,F53,F69,F88,F96,F116")
Call suite
End Sub

Private Sub CommandButton2_Click()
Set PL = Range("F28,F40,F53,F61,F83,F96,F116")
Call suite
End Sub

Private Sub CommandButton3_Click()
Set PL = Range("F28,F42,F53,F61,F85,F96,F116")
Call suite
End Sub

Private Sub CommandButton4_Click()
Set PL = Range("F28,F33,F53,F69,F83,F96,F116")
Call suite
End Sub

Private Sub CommandButton5_Click()
Set PL = Range("F28,F33,F53,F69,F85,F96,F116")
Call suite
End Sub

Sub suite()
Dim CEL As Range

If MsgBox("Article vendue ?", 36, "PC XXX") = vbYes Then
    For Each CEL In PL
        CEL.Value = CEL.Value - 1
    Next CEL
End If
End Sub
Rechercher des sujets similaires à "creation bouton effectuer collage special"