Formule vba mal placé?

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

jeromeN95

XLDnaute Impliqué
Bonsoir,
Lorsque E14 ne sera plus vide, mais si l'une des cellules F4,F6,E8,E10,J6,E12 le sont , alors msbox :
"Merci de renseigner la fiche client".
Faire apparaitre une seul fois le message.

Je ne sait pas où mettre le bout de code...

Edit, excusez moi pour les majuscules.
En faite, les cellules en jaunes ne seront pas verrouiller à la selection, le reste oui, donc il ne faut pas "pouvoir" réctifier leur contenus.
Les adresses, codes postaux, villes, ... sont importer d'outlook via une fonction recherche.

Merci beaucoup.
 

Pièces jointes

Dernière édition:
Re : URGENT, formule vba mal placé?

Salut jeromeN95 et le forum
Petit rappel : il n'y a ni télépathe, ni devin sur ce site

Ce que je crois comprendre :
si tu sélectionne la case dirigeant, tu doit avoir rempli avant toutes les cases précédentes.
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Cel As Range
If Target.Cells(1).Address(0, 0) = "E12" Then
    For Each Cel In Range("F4,F6,J6,E8,J8,E10,J10")
        If Cel = "" Then
            MsgBox "Merci de renseigner la fiche client"
            Cel.Activate
            Exit Sub
        End If
    Next Cel
End If
End Sub
en lieu et place de ta macro.
- Address(0,0) => adresse relative
- Avec les cellules fusionnées, soit tu indiques la plage (ici "E12:F12") soit tu indiques la première cellule de la plage (cells(1))
- j'ai rangé les adresse des cellules à remplir obligatoirement dans l'ordre que je ferais. Si une des cellules de la plage est vide, on met le message d'erreur et on active la cellule.
Comme on exécute la macro quand on sélectionne la case dirigeant (supposée vide), on ne peut la remplir que si toutes les autres sont déjà remplies.

Comme je ne connais du problème que le sujet...
On peut étendre le principe aux cellules en jaune clair, soit en incluant les adresses dans la plage initiale, soit en refaisant un autre test et une autre boucle.
A+
 
Re : URGENT, formule vba mal placé?

Salut,
Bouh, l'est pas content 🙂,
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$E$14" And Target.Count = 1 Then
    If Application.CountA(Range("F4,F6,E8,E10,J6,E12")) < 6 Then
        MsgBox "Merci de renseigner la fiche client"
    End If
End If
End Sub
A+
kjin
 
Re : Formule vba mal placé?

Merci Gorfel.
J'ai simplement mis :
Code:
Dim Cel As Range
If Target.Cells(1).Address(0, 0) = "E12" Then
    For Each Cel In Range("F6,J6,E8,J8,E10,J10")
        If Cel = "" Then
            MsgBox "Merci de renseigner la fiche client"
            Exit Sub
        End If
    Next Cel
End If
On peut rajouter dans le msbox le (les) nom (s) des champs qui n'ont pas été rempli(s)?
En faite, j'ai mis URGENT car je penser attiré l'attention sur vous dans vos recherches "d'aide à autruit" afin d'avoir une chance de salut car projet lancer le 24/6/11 et j'ai encore tellement de chose à faire...

Merci beaucoup pour tout, vous êtes à chaque fois d'un secour, d'une aide, voir même les uniques acteurs d'une future réussite probablement et même certainement meritée!
 
Re : Formule vba mal placé?

Salut jeromeN95 et le forum
Code:
Dim Cel As Range, x
If Target.Cells(1).Address(0, 0) = "E12" Then
    For Each Cel In Range("F6,J6,E8,J8,E10,J10")
        If Cel = "" Then
            x = Cel.Address(0, 0)
            x = Cel.Offset(0, -1).MergeArea.Address(0, 0)
            MsgBox "Merci de renseigner la fiche client" & Chr(13) & _
            Left(Cel.Offset(0, -1).MergeArea.Cells(1), Len(Cel.Offset(0, -1).MergeArea.Cells(1)) - 2)
            Exit Sub
        End If
    Next Cel
End If
Les cellules fusionnées... 😡
A+
 
- 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
Retour