Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Répéter une macro

  • 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

Merci pour ton aide Eric.

Pour les lignes suivantes, je suppose que je continue avec la commande ElseIf?

Tu as raison pour la mise en forme, je corrige cela.

Patrick
 
Re : Répéter une macro

Code:
[COLOR=#333333]Pour les lignes suivantes, je suppose que je continue avec la commande ElseIf?[/COLOR]
Oui, tu y mets sensiblement le même code qu'il y a dans le 1er If.
Change les cellules.

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
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…