XL 2021 Comparaison de cellules avec une autre plage de celllules

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

phenolate

XLDnaute Nouveau
Bonjour,

J'ai une colonne A client dans laquelle j'entre les noms (de A2 à A6).

J'ai également une ligne clients (de B9 à F9) pour laquelle je peux choisir le nom d'un des clients rentrés dans ma première colonne A (listes avec source A2:A6).

Je voudrais créer une macro qui pourrait m'alerter lorsqu'il manque un des clients dans ma ligne 9 par rapport à ma liste de la colonne A et m'envoyer un message du type ("Tous les clients saisis en A doivent apparaître dans la ligne 9").

Par exemple dans le fichier excel/photo fournie il manque le client Bill.

Capture d’écran 2023-06-02 à 14.20.38.png


J'espère ne pas vous avoir perdu, je peux clarifier les choses si cela ne vous paraît pas net.

Merci par avance!
 

Pièces jointes

Solution
Bonsoir à tous,

Voyez le fichier joint et cette macro dans le code de la feuille :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
With [A1].CurrentRegion
    If .Rows.Count = 1 Then Exit Sub
    .Offset(1).Resize(.Rows.Count - 1).Name = "P" 'plage nommée
    If [SUM(-(COUNTIF(9:9,P)=0))] Then _
        MsgBox "Tous les clients saisis en A doivent apparaître dans la ligne 9"
End With
End Sub
Modifiez ou validez une cellule quelconque.

A+
Bonjour,

J'ai une colonne A client dans laquelle j'entre les noms (de A2 à A6).

J'ai également une ligne clients (de B9 à F9) pour laquelle je peux choisir le nom d'un des clients rentrés dans ma première colonne A (listes avec source A2:A6).

Je voudrais créer une macro qui pourrait m'alerter lorsqu'il manque un des clients dans ma ligne 9 par rapport à ma liste de la colonne A et m'envoyer un message du type ("Tous les clients saisis en A doivent apparaître dans la ligne 9").

Par exemple dans le fichier excel/photo fournie il manque le client Bill.

Regarde la pièce jointe 1171464

J'espère ne pas vous avoir perdu, je peux clarifier les choses si cela ne vous paraît pas net.

Merci par avance!
Bonjour,
Une proposition qui mettra automatiquement la plage A9:F9 à jour en cas de modification dans une des plages
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, [a1:a6,a9:f9]) Is Nothing Then Exit Sub
    Application.EnableEvents = False
    [A1:A6].Copy
    [A9].PasteSpecial Paste:=xlPasteAll, Transpose:=True
    Application.EnableEvents = True: Application.CutCopyMode = False
End Sub
 

Pièces jointes

Dernière édition:
Merci beaucoup de vous pencher sur mon sujet mais ce n'est pas ce que je demande, j'ai dû mal m'exprimer :

En fait une fois remplis mes clients en colonne A, je les sélectionne dans un autre tableau (ligne 9), ensuite je clique sur un bouton pour exécuter tout un tas d'opérations dans mon fichier final...Lorsque je clique sur le bouton je veux un message d'erreur au cas où tous mes noms de clients n'apparaissent pas dans la ligne 9. S'ils y sont tous mon action peut alors continuer...

Est-ce un peu plus clair?
Merci!🫣
 
Petite question subsidiaire, vous m'avez envoyé un fichier .xls, or quand je crée des macros j'enregistrais en .xlsm, je pensais y être obligé pour lancer mes macros, mais apparemment le votre fonctionne en xls! pouvez-vous m'expliquer la nuance entre les deux types de fichier svp?
Merci!
 
Petite question subsidiaire, vous m'avez envoyé un fichier .xls, or quand je crée des macros j'enregistrais en .xlsm, je pensais y être obligé pour lancer mes macros, mais apparemment le votre fonctionne en xls! pouvez-vous m'expliquer la nuance entre les deux types de fichier svp?
Merci!
RE..
J'ai enregistré le classeur au même format que celui présent dans la demande.
Les anciens fichiers sous. XLS (97-2003) supportent les macros.
Si ma proposition ne donne pas satisfaction, alors mettre un classeur qui reflète la structure du classeur final avec les macros déjà présentes qui sont sujet à modification.
 
Dernière édition:
RE..
J'ai enregistré le classeur au même format que celui présent dans la demande.
Si ma proposition ne donne pas satisfaction, alors mettre un classeur qui reflète la structure du classeur final avec les macro déjà présentes qui sont sujet à modification.
Non je trouvais justement bien de pouvoir utiliser les macros sans mettre le format .xlsm c'était le but de ma question je cherche à comprendre...
 
Bonsoir à tous,

Voyez le fichier joint et cette macro dans le code de la feuille :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
With [A1].CurrentRegion
    If .Rows.Count = 1 Then Exit Sub
    .Offset(1).Resize(.Rows.Count - 1).Name = "P" 'plage nommée
    If [SUM(-(COUNTIF(9:9,P)=0))] Then _
        MsgBox "Tous les clients saisis en A doivent apparaître dans la ligne 9"
End With
End Sub
Modifiez ou validez une cellule quelconque.

A+
 

Pièces jointes

Bonjour,
J'ai adapté votre fichier à mon projet en créant un bouton qui compare avec les clients sélectionnés en 1ere colonne mais ça ne fonctionne pas dans tous les cas, quand j'enlève le client en case B9 je n'ai pas le message, pourriez-vous me dire pourquoi svp et détailler l'instruction If [SUM(-(COUNTIF(9:9,P)=0))] car je n'y comprend rien...

Merci !
 

Pièces jointes

Bonjour phenolate, le forum,
quand j'enlève le client en case B9 je n'ai pas le message, pourriez-vous me dire pourquoi svp
Pas du tout, il faut juste utiliser le bon code :
VB:
Sub Bouton2_Cliquer()
With [A1].CurrentRegion
    If .Rows.Count = 1 Then Exit Sub
    .Offset(1).Resize(.Rows.Count - 1).Name = "P" 'plage nommée
    If [SUM(-(COUNTIF(9:9,P)=0))] Then _
        MsgBox "Tous les clients saisis en A doivent apparaître dans la ligne 9"
End With
End Sub
La formule SUM(-(COUNTIF(9:9,P)=0)) c'est la même chose que la formule matricielle :
Code:
=SOMME(-(NB.SI(9:9,P)=0))
ou :
Code:
=SOMMEPROD(-(NB.SI(9:9,P)=0))
Le signe - convertit la valeur logique VRAI en -1 et FAUX en 0.

A+
 

Pièces jointes

- 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

Discussions similaires

Réponses
3
Affichages
490
Retour