Problème codes vba

Résolu
jean300 Messages postés 382 Statut Membre -  
jean300 Messages postés 382 Statut Membre -
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. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    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
  2. jean300 Messages postés 382 Statut Membre 14
     
    Voici le fichier en te remerciant
    https://www.cjoint.com/c/IJBth3Dyzcr
    0
    1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       
      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
  3. jean300 Messages postés 382 Statut Membre 14
     
    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