Problème codes vba

Résolu
Bonjour à vous tous,

Je tourne en rond avec ces codes qui pris individuellement (F8) semblent bon, mais ne fonctionne pas en automatique.
Je vous remercie de bien vouloir me corriger.
ps : Je ne suis pas l'auteur de ces codes.
En vous remerciant.
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim tx, i%
    tx = Target.Value
    Application.EnableEvents = False
    Application.ScreenUpdating = False

    Select Case Target.Address(False, False)
        Case "Mf"
            Btn_MajBase.Visible = (UCase(tx) = "V")
            Btn_ValiderSaisie.Visible = Not (UCase(tx) = "V")
        Case "A29", "A34", "A37", "S10", "S18", "S21", "S34"
            Target = UCase(Left(tx, 1)) & LCase(Mid(tx, 2))
        Case "A4", "K7", "G24"
            Target = UCase(tx)
        Case "K4"
            tx = Split("-" & tx, "-")
            For i = 1 To UBound(tx)
                tx(i) = StrConv(tx(i), vbProperCase)
            Next i
            Target = Replace(Join(tx, "-"), "-", "", 1, 1)
    End Select
        Application.EnableEvents = True
        Application.ScreenUpdating = True
    Call CfnChoix
End Sub


Sub CfnChoix()    'TEST 1
Range("AA2").Value = ""
    If MsgBox("Supprimer cette personne de l'annuaire ?", vbYesNo) = vbYes And MsgBox("Cette personne sera supprimée de l'annuaire !", vbYesNo) = vbYes Then
        Range("AA2").Value = "Sup"
    Else
        Range("AA2").Value = "Maj"
    End If
        CfnMsgBox
End Sub


Sub CfnMsgBox() ‘TEST 2
COULEUR = IIf([AA2] = "Sup", vbRed, vbBlack):  EPAISSEUR = IIf([AA2] = "Sup", xlThick, xlThin)
    With Range("A3:I4,K3:Q4")
        For Each BORDURE In Array(xlEdgeLeft, xlEdgeTop, xlEdgeBottom, xlEdgeRight)
    With .Borders(BORDURE):  .LineStyle = xlContinuous:  .Weight = EPAISSEUR:  .Color = COULEUR:  End With
        Next BORDURE
    For Each BORDURE In Array(xlDiagonalDown, xlDiagonalUp, xlInsideVertical, xlInsideHorizontal)
        .Borders(BORDURE).LineStyle = xlNone
    Next BORDURE
    End With:  [S4].Select
    End Sub


Configuration: Windows / Firefox 70.0

4 réponses

  1. Modérateur
    Bonjour,

    En quoi cela ne fonctionne t'il pas ?
    Sans avoir d'explication détaillée du souci rencontré ni le fichier à disposition il sera difficile à quiconque de pouvoir t'aider.

    0
    1. Voici le fichier en te remerciant
      https://www.cjoint.com/c/IJBth3Dyzcr
      0
      1. Modérateur
        Tu as une macro qui se déclenche lorsque le contenu de la feuille change....
        puis tu exécute la ligne de code
        Range("AA2").Value = ""
        

        donc ben le contenu de la feuille change...

        Normal que ça boucle...

        Il faut désactiver l'event dans chaque sub
        
        Sub CfnChoix()
           '  Call Dpwd   ' VOIR MODULE ACTION
           'LA CA NE DOIT S'EXCUTER QU'UNE SEULE FOIS
           Application.EnableEvents = False
        
          'la suite de ton code...
        
        
        0
    2. JE te remercie jordane ça faisait près de trois semaines que je me triturais le cerveau
      Au plaisir de te retrouver une autre fois
      0