Bouton modifiant la valeur d'une cellule

descamps16

XLDnaute Nouveau
Bonjour,

Je débute tout juste avec les macros. J'aimerai qu'en cliquant sur le bouton que j'ai inséré (bouton de choix des mois) ça remplisse une cellule avec la valeur correspondante au mois.

J'ai mis un fichier en pièce-jointe pour vous expliquez plus clairement mon objectif.

En vous remerciant

Amicalement

Vincent
 

Pièces jointes

  • Ventes Macro.xlsm
    17.5 KB · Affichages: 48

Victor21

XLDnaute Barbatruc
Re : Bouton modifiant la valeur d'une cellule

Bonjour, descamps16.

Il me semble qu'une macro, dans ce cas, et sans connaitre l'ensemble de votre projet, est tout à fait inutile.
 

Pièces jointes

  • descamps16.xlsx
    12.2 KB · Affichages: 47

Robert

XLDnaute Barbatruc
Repose en paix
Re : Bouton modifiant la valeur d'une cellule

Bonsoir Vincent, Patrick, bonsoir le forum,

Tout à fait d'accord avec Patrick, pas besoin de VBA pour ça. Mais comme j'adore le VBA je t'ai fait une proposition avec un seul bouton et une UserForm...
Le code :
Code:
Private ob As Object 'déclare la variable ob (Onglet Base de données)
Private ot As Object 'déclare la variable ot (Onglet TBD dynamique)

Private Sub UserForm_Initialize() 'à l'initialisation de l'UserForm
Set ob = Sheets("Base de données") 'définit l'onglet ob
Set ot = Sheets("TBD dynamique") 'définit l'onglet ot
Me.ComboBox1.List = ob.Range("A3:A" & ob.Cells(Application.Rows.Count, 1).End(xlUp).Row).Value 'alimente la combobox1
End Sub


Private Sub ComboBox1_Change() 'au changement dans la ComboBox1
Dim li As Integer 'déclare la variable li (LIgne)
Dim col As Byte 'déclare la variable col (COLonne)

If Me.ComboBox1 <> "" Then 'condition 1 : si la ComboBox1 n'est pas vide
    ot.Range("B17").Value = Me.ComboBox1 'place le mois en B17
    li = ob.Columns(1).Find(Me.ComboBox1.Value, , xlValues, xlWhole).Row 'définit la ligne li
    'boucle sur toutes les cellules éditées cel de la ligne 16
    For Each cel In ot.Range("D16:" & ot.Cells(16, Application.Columns.Count).End(xlToLeft).Address)
        On Error Resume Next 'gestion des erreurs (en cas d'erreur passe à la ligne suivante
        'définit la colonne col (provoquie une erreur si aucune occurrence n'est trouvée)
        col = ob.Rows(2).Find(cel.Value, , xlValues, xlWhole).Column
        If Err <> 0 Then 'condition 2 : si une erreur a été générée
            Err = 0 'annule l'erreur
            MsgBox "Verifiez l'orthographe !" 'message
            cel.Select 'sélectionne la cellule erronée
            Unload Me 'vide et ferme l'Userform
            Exit Sub 'sort de la procédure
        End If 'fin de la condition 2
        On Error GoTo 0 'annule la gestion des erreurs
        cel.Offset(1, 0).Value = ob.Cells(li, col) 'place en dessous de la cellule cel la valeur de la vente du mois
    Next cel 'prochaine cellule de la bolucle
End If 'fin de la condition 1
Unload Me 'vide et ferme l'Userform
End Sub
Le fichier :
 

Pièces jointes

  • Descamps_v01.xls
    59.5 KB · Affichages: 44

descamps16

XLDnaute Nouveau
Re : Bouton modifiant la valeur d'une cellule

Bonjour à vous,

Merci pour vos réponses rapide!

Effectivement le bouton n'est pas forcément très adapté dans mon cas. Je voulais surtout faire des boutons pour l'esthétique de mon tableaux de bord et aussi pour découvrir la VBA.

Ayant maintenant les deux manières de procéder, je vais pouvoir continuer ce que j'ai entrepris.

Un grand merci :)

Vincent
 

Discussions similaires

Statistiques des forums

Discussions
312 668
Messages
2 090 739
Membres
104 643
dernier inscrit
adriano22