Problème codes vba [Résolu]

Messages postés
369
Date d'inscription
jeudi 11 août 2016
Statut
Membre
Dernière intervention
6 novembre 2019
-
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
Afficher la suite 

4 réponses

Messages postés
26770
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 novembre 2019
1881
0
Merci
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.

Commenter la réponse de jordane45
Messages postés
369
Date d'inscription
jeudi 11 août 2016
Statut
Membre
Dernière intervention
6 novembre 2019
13
0
Merci
Bonsoir jordane
Ça tourne en boucle
jordane45
Messages postés
26770
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 novembre 2019
1881 -
Commenter la réponse de jean300
Messages postés
369
Date d'inscription
jeudi 11 août 2016
Statut
Membre
Dernière intervention
6 novembre 2019
13
0
Merci
Voici le fichier en te remerciant
https://www.cjoint.com/c/IJBth3Dyzcr
jordane45
Messages postés
26770
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 novembre 2019
1881 -
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...

Commenter la réponse de jean300
Messages postés
369
Date d'inscription
jeudi 11 août 2016
Statut
Membre
Dernière intervention
6 novembre 2019
13
0
Merci
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
Commenter la réponse de jean300