Ajouter un suffixe aus doublons

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 !

KyFranRD

XLDnaute Occasionnel
Bonjour

Je désire savoir comment détecter les doublons dans une colonne lors de la saisie, par exemple dans la colonne B des lignes 10 à 20. Que cette recherche de doublons se fasse à chaque saisie. Donc dans cette exemple à B2, puis B3,B4,B5,B6,B7,B8,B9 et B10.

Et que lorsqu'un doublons est détecté, cela ajoute un suffixe.

Donc si je saisie 100 en B7, et que ce chiffre existe déjà en B5, que cela inscrive 100* en B5 et 100 en B7.

Je ne pense pas qu'un fichier soit nécessaire mais si besoin.....

Merci à l'avance
 
Re : Ajouter un suffixe aus doublons

Bonjour le fil, le forum,

Je réponds au post #11.

1) La macro Etoile fonctionne sur une seule colonne.

Pour que les doublons soient marqués sauf le plus bas de chaque groupe dans la colonne :

Code:
Sub Etoile(plage As Range, format1$, format2$)
'plage ne doit comporter qu'une seule colonne
Set plage = Intersect(plage, plage.Parent.UsedRange)
If plage Is Nothing Then Exit Sub
Dim cel As Range, nb As Long, plage1 As Range, r As Range
For Each cel In plage
  If cel <> "" Then
    nb = Application.CountIf(plage, cel)
    Set plage1 = cel.Parent.Range(plage(1), cel)
    If nb > 1 And Application.CountIf(plage1, cel) < nb _
      Then Set r = Union(cel, IIf(r Is Nothing, cel, r))
  End If
Next
plage.NumberFormat = format1
If Not r Is Nothing Then r.NumberFormat = format2
End Sub
2) On peut traiter des plages composées de plusieurs colonnes, jointes ou disjointes :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range
Set r = Intersect(Target, [B:B,D:E,G:G]) 'plages à adapter
If Not r Is Nothing Then
  For Each r In r.EntireColumn.Columns
    Etoile r, "General", "General"" *"""
  Next
End If
End Sub
Voir ce fichier (2).

Edit : j'avais compliqué inutilement la macro du 2).

A+
 

Pièces jointes

Dernière édition:
Re : Ajouter un suffixe aus doublons

Bonjour KyFranRD, le forum,

Relisant le 2ème point du post #11 je comprends qu'en colonne G il y a des formules de liaisons.

Ces formules copient les valeurs mais bien sûr les formats en colonne G ne sont pa modifiés.

Pour copier les valeurs et les formats copier les cellules :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range
Set r = Intersect(Target, [B:B]) 'colonne à adapter
If Not r Is Nothing Then
  Etoile r.EntireColumn, "General", "General"" *"""
  r.EntireColumn.Copy [G1]
End If
End Sub
Fichier (3).

A+
 

Pièces jointes

Re : Ajouter un suffixe aus doublons

Bonjour Job75

merci je teste cela de ce pas

@+

hummm par contre peux tu m'expliquer pourquoi la valeur des doublons xxx * n'apparaît pas dans la barre de formules. Pour 100 * il apparaît 100 sans le suffixe ?????

Je me permet de te donner un fichier - que j'avais transmis dans un autre post, mais pour lequel je n'avais pas réussi à me faire comprendre -, tu comprendras mieux je l'espère les raisons pour lesquelles je m'étais rabattu sur l'adjonction d'un suffixe aux doublons.


Je te remercie à l'avance
 

Pièces jointes

Dernière édition:
Re : Ajouter un suffixe aus doublons

RE re re

Dans mon fichier je cherche à ce que des actions préprogrammées et ne concernant que les départ soient lancées uniquement si les produits sont au départ.

Mais le problème est que si par ex le produit 100 est saisis par ex en B2, B4 et B8 sans être au départ et que par la suite le même produit est au départ, le fait de le placer dans le tableau départ agira automatiquement sur la ligne B2.

Je veux que cela agisse sur la prochaine saisie, par ex en B9.

je pensais que le fait de systématiquement placer un suffixe au saisie passée aurait fais que le programme lancerait les actions automatique sur la dernière saisie. Partant du principe qu'une fois au départ le produit n'est plus en stock.


Je sais c'est particulier comme principe mais c'est comme ça. Je n'ai pas à expliquer en détail le but de ce fichier.

En testant mon fichier joint on s’aperçoit du problème. Action ou pas sur la ligne 7 si on efface 340 ou pas. Mais bon bref
 
Dernière édition:
Re : Ajouter un suffixe aus doublons

Bonjour,

Je sais c'est particulier comme principe mais c'est comme ça. Je n'ai pas à expliquer en détail le but de ce fichier.

Libre à vous, alors moi je n'ai pas à me casser le popotin pour comprendre.

Juste une chose encore sur mes fichiers.

Quand on sélectionne une cellule avec 100 *, dans la barre de formule il n'y a pas l'astérisque.

Mais si par exemple on exécute le code MsgBox ActiveCell.Text l'astérisque s'affiche bien...

A+
 
Re : Ajouter un suffixe aus doublons

Re,

Avec un peu de chance, peut-être cette formule en D7 conviendra-t-elle :

Code:
=REPT("Départ";ET(NB.SI($J$7:$M$7;B7);LIGNE()=EQUIV(SI(NB(B:B);9^9;"zzz");B:B)))
Les modifications en J7:M7 sont répercutées uniquement sur la dernière ligne renseignée en colonne B.

Fichier joint.

Nota 1 : on ne s'occupe donc plus des doublons, encore moins des astérisques.

Nota 2 : j'ai simplifié les formules de la MFC sur G7:G17.

A+
 

Pièces jointes

Re : Ajouter un suffixe aus doublons

Re,

Avec cette formule en D7 je pense que j'améliore mes chances :

Code:
=REPT("Départ";ET(NB.SI($J$7:$M$7;B7);LIGNE()=MAX((B$7:B$17=B7)*LIGNE(B$7:B$17))))
C'est une formule matricielle, à valider par Ctrl+Maj+Entrée.

Fichier (2).

A+
 

Pièces jointes

Dernière édition:
- 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

Retour