Problème codes vba

Résolu
jean300 Messages postés 374 Date d'inscription   Statut Membre Dernière intervention   -  
jean300 Messages postés 374 Date d'inscription   Statut Membre Dernière intervention   -
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

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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
jean300 Messages postés 374 Date d'inscription   Statut Membre Dernière intervention   14
 
Bonsoir jordane
Ça tourne en boucle
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
0
jean300 Messages postés 374 Date d'inscription   Statut Membre Dernière intervention   14
 
Voici le fichier en te remerciant
https://www.cjoint.com/c/IJBth3Dyzcr
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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
jean300 Messages postés 374 Date d'inscription   Statut Membre Dernière intervention   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