Fusionner 2 Macros Worksheet_Change

  • Initiateur de la discussion Initiateur de la discussion bambi
  • 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 !

bambi

XLDnaute Occasionnel
Bonjour à tous 🙂

Mon probleme est dans le titre.

Je voudrais mettre sur une feuille, deux Macros Worksheet_Change

Une me permet de transformer des saisies au clavier numérique au format heure 00:00
L'autre de transformer automatiquement des minuscules en majuscules après saisie

Ces deux macros fonctionnent parfaitement pris une à une.

Problème: J'ai lu ici même qu'on ne pouvait pas avoir en même temps 2 Macros Worksheet_Change

Et j'ai beau tenter toutes les combinaisons, je ne parviens pas à les fusionner.

Donc un petit coup de main serait le bienvenu
Merci d'avance 😉

Voici les deux codes en question

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [D4,D5,D17,D18,D30,D31,D43,D44,D56,D57,M4,M5,M17,M18,M30,M31,M43,M44,M56,M57]) Is Nothing Then Exit Sub
Application.EnableEvents = False
Target = UCase(Target)
Application.EnableEvents = True
End Sub

Code:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim TimeStr As String

On Error GoTo EndMacro
If Application.Intersect(Target, Range("D3, F3, D16, F16, D29, F29, D42, F42, D55, F55, M3, O3, M16, O16, M29, O29, M42, O42, M55, O55")) Is Nothing Then
    Exit Sub
End If
If Target.Cells.Count > 1 Then
    Exit Sub
End If
If Target.Value = "" Then
    Exit Sub
End If

Application.EnableEvents = False
With Target
If .HasFormula = False Then
    Select Case Len(.Value)
        Case 1 ' e.g., 1 = 00:01 AM
            TimeStr = "00:0" & .Value
        Case 2 ' e.g., 12 = 00:12 AM
            TimeStr = "00:" & .Value
        Case 3 ' e.g., 735 = 7:35 AM
            TimeStr = Left(.Value, 1) & ":" & _
            Right(.Value, 2)
        Case 4 ' e.g., 1234 = 12:34
            TimeStr = Left(.Value, 2) & ":" & _
            Right(.Value, 2)
        Case 5 ' e.g., 12345 = 1:23:45 NOT 12:03:45
            TimeStr = Left(.Value, 1) & ":" & _
            Mid(.Value, 2, 2) & ":" & Right(.Value, 2)
        Case 6 ' e.g., 123456 = 12:34:56
            TimeStr = Left(.Value, 2) & ":" & _
            Mid(.Value, 3, 2) & ":" & Right(.Value, 2)
        Case Else
            Err.Raise 0
    End Select
    .Value = TimeValue(TimeStr)
End If
End With
Application.EnableEvents = True
Exit Sub
EndMacro:
MsgBox "You did not enter a valid time"
Application.EnableEvents = True

End Sub
 
Re : Fusionner 2 Macros Worksheet_Change

Bonjour Bambi

regarde si tu peux t'inspirer de ceci :

Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Or Application.CountA(Target) = 0 Then Exit Sub
If Not Intersect(Target, Range("A1:A10,B1:B10")) Is Nothing Then
    If Not Intersect(Target, Range("A1:A10")) Is Nothing Then
        'code de ta macro 1
    End If
    If Not Intersect(Target, Range("B1:B10")) Is Nothing Then
        'code de ta macro 2
    End If
End If
End Sub

bone soirée
@+
 
- 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

  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
250
  • Question Question
Microsoft 365 Probléme VBA
Réponses
8
Affichages
233
Réponses
2
Affichages
127
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
78
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
500
Réponses
4
Affichages
146
Retour