• Initiateur de la discussion Initiateur de la discussion Lunatic
  • Date de début Date de début

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 !

L

Lunatic

Guest
Bonjour,

Je suis débutant sur Excel et suis confronté au problème suivant:

J'utilise une macro pour incrémenter des quantités de production. J'écris une valeur en C8 et celle-ci s'ajoute à la valeur existante en D8.
J'aimerais répéter cette macro pour E8/F8 et G8/H8.

Et aussi pour les lignes suivantes.

Je joins le fichier pour plus de clarté.

Merci d'avance pour vos conseils🙂
 

Pièces jointes

Re : Répéter une macro

Bonjour,

Une structure que tu pourrais faire :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Message As String, Valeur As Long
    With Target
        If .Address(False, False) = "C8" Then
            Valeur = .Value
            Message = "Valider la saisie de " & Valeur & " en " & .Address(False, False)
            If MsgBox(Message, vbYesNo) = vbNo Then Exit Sub
            Range("D8").Value = Range("D8").Value + Valeur
            Application.EnableEvents = False
            .Value = Empty
            Application.EnableEvents = True
        ElseIf .Address(False, False) = "E8" Then
            ' ... ton code
        ElseIf .Address(False, False) = "G8" Then
            ' ... ton code
        End If
    End With
End Sub
Qqq chose m'intrigue... Ca sert à quoi de mettre une police 28 avec un zoom de 40% à part rendre les n° de lignes et de colonnes illisibles ?

eric
 
Re : Répéter une macro

Bonsoir Lunatic, eriiiic.



Une autre proposition :​
VB:
Private Sub Worksheet_Change(ByVal Cible As Range)
Dim Message As String, Plg As Range, Cel As Range

    Set Plg = Intersect(Cible, Range("C8:C96,E8:E96,G8:G96"))
    If Not Plg Is Nothing Then
        For Each Cel In Plg.Cells
            With Cel
                If Not IsEmpty(.Value) And IsNumeric(.Value) And .Value <> 0 Then
                    Message = "Valider la saisie de " & .Value & " en " & .Address(False, False)
                    If MsgBox(Message, vbYesNo) = vbYes Then
                        Application.EnableEvents = False
                        .Offset(0, 1).Value = .Offset(0, 1).Value + .Value
                        .Value = Empty
                        Application.EnableEvents = True
                    End If
                End If
            End With
        Next
    End If

End Sub
Fonctionne pour les plages C8:C96, E8:E96, G8:G96.​


Bonne nuit.


ℝOGER2327
#7477


Samedi 28 Gidouille 141 (Poche du Père Ubu - Vacuation)
24 Messidor An CCXXII, 9,0975h - orcanète
2014-W28-6T21:50:02Z
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
XL 2021 Macro
Réponses
6
Affichages
321
Réponses
4
Affichages
482
Réponses
4
Affichages
714
D
  • Question Question
2
Réponses
28
Affichages
2 K
Deleted member 441486
D
Réponses
5
Affichages
630
Retour