Eviter doublons avec conditions !!!

samimi94

XLDnaute Occasionnel
Bonsoir à Tous,

Voici un concept que je souhaite appliquer à un de mes fichiers, dont je n'ai pas trouver de post sur le forum qui ressemble à cela.

Je désire éviter les doublons dans la colonne A, pour cela je
souhaite dans la mesure du possible, via une macro
ajouter un caractère à la suite du nom si doublon il y a !

EX : DUPONT existe en A4, nous aurons en A9 DUPONT1 et en A15 DUPONT2

Petite particularité, cette colonne ne doit pas excéder les 20 Caractères, ce qui sous-entend que s'il existe un nom atteignant le nombre maximal, cette même macro ne devra pas ajouter mais supprimer un caractère afin de respecter le format de colonne.

EX : TARTANPIONETCOMPAGNI existe en A2 s'il est présent en A5 il deviendra TARTANPIONETCOMPAGN, s'il existe aussi en A10 il deviendra TARTANPIONETCOMPA etc...

D'avance, merci pour votre aide.
 

samimi94

XLDnaute Occasionnel
Re : Eviter doublons avec conditions !!!

Bonsoir BHBH,

Merci pour ta réponse rapide.

En fait je souhaite éviter les doublons apres avoir fait un copier_coller de cellules ou bien même un copier coller de toutes les cellules d'une même colonne.

Admettons que j'ai un fichier excel avec une colonne NOM comprenant plein de doublons et que je souhaite importer toute cette colonne dans mon fichier de base, je selectionne la colonne A du fichier 1, je fais copier, je vais sur mon fichier de base, je selectionne ma colonne A et ja fais coller.
Toutes les données sont dorénavant dans mon fichier de base doublons compris, avant de fermer mon classeur je desire lancer une macro qui traite cette colonne A avec la condition citée ci-dessus.

Penses-tu que cela soit faisable ?
D'avance, merci pour l'interet que tu portes à ma requête.
 

Cousinhub

XLDnaute Barbatruc
Re : Eviter doublons avec conditions !!!

Re-,
essaie avec ce code, en supposant tes données dans la colonne A

Code:
Sub compter_uniques()
Dim pl As Range, DerLig As Double, i As Double, Nb As Double
Set pl = Range("A2:A" & [A65536].End(xlUp).Row)
pl.Name = "base"
DerLig = [A65000].End(xlUp).Row
For i = DerLig To 1 Step -1
    Nb = Evaluate("COUNTIF(base,""" & Cells(i, 1) & """)")
    Cells(i, 1) = IIf(Len(Cells(i, 1) & Nb) > 20, Left(Cells(i, 1), 20 - Len(CStr(Nb))) & Nb, Cells(i, 1) & Nb)
Next i
End Sub
 

samimi94

XLDnaute Occasionnel
Re : Eviter doublons avec conditions !!!

Re-BHBH, Re le forum,

Un grand merci pour cette macro qui marche à merveille.
C'est exactement le résultat escompté. Un grand coup de chapeau à toi.

Si je peux abuser une dernière fois de ton savoir énorme en VBA, puis-je te demander qu'elle serait la syntaxe que je puisse mettre dans une macro afin que dans une colonne D (si celle-ci est vide uniquement) qu'automatiquement à la fermeture du fichier celle-ci se complète automatiquement des lettres DFC ?

Quoi qu'il en soit encore un très grand merci. ;)
 

samimi94

XLDnaute Occasionnel
Re : Eviter doublons avec conditions !!!

Re BHBH,

En fait dans la colonne D je dois mettre des codes internes à ma société en fonction de certains critères.
Parfois il m'arrive de ne pas connaitre le code à imputer, dans ce cas je suis censée mettre le code DFC car les cellules de cette colonne ne doivent pas rester vides, et cela, uniquement si j'ai un nom en colonne A .

Merci.
 

Cousinhub

XLDnaute Barbatruc
Re : Eviter doublons avec conditions !!!

Re-,
si tu as également des cellules vides dans la colonne A, tu peux mettre ceci :

Code:
For Each cel In Range("D2:D" & [A65000].End(xlUp).Row).SpecialCells(xlCellTypeBlanks)
    cel.Value = IIf(cel.Offset(0, -3).Value <> "", "DFC", "")
Next cel
 

samimi94

XLDnaute Occasionnel
Re : Eviter doublons avec conditions !!!

Re BHBH,

J'ai appliqué ce code dans mon fichier, puis j'ai effectué un test mais à l'execution de la macro les cellules de la colonnes D qui se retrouvent vides ne se complémentent pas.

Pourtant je n'ai pas de message d'erreurs :confused:
 

Cousinhub

XLDnaute Barbatruc
Re : Eviter doublons avec conditions !!!

Re-,
es-tu sûr que les cellules de la colonne D sont bien vides?
Il n'y a pas de formules?
Peux-tu joindre un tout petit bout de ton fichier (uniquement la feuille 1), sans données confidentielles, mais avec les mêmes cellules (remplace les noms.....)
 

samimi94

XLDnaute Occasionnel
Re : Eviter doublons avec conditions !!!

Re,

Les cellules sont bien vides, mais je ne parviens obtenir le résultat voulu !
Je te joins un exemple de fichier exemple, que je viens de refaire pour te donner une idée.

Merci pour ton aide.
 
Dernière édition:

samimi94

XLDnaute Occasionnel
Re : Eviter doublons avec conditions !!!

Re,

Je fais des tests dans tous les sens, maintenant j'ai bien DFC qui s'intègre dans les cellules vides de la colonne D, le souci c'est qu'il se met aussi dans les cellules vides des autres colonnes :rolleyes:
 

Cousinhub

XLDnaute Barbatruc
Re : Eviter doublons avec conditions !!!

Re-,
Là, je ne comprends pas....:confused:
Avec ton fichier, les 2 méthodes fonctionnent....
Tu lances bien la macro en étant sur la feuille1?

Regarde le fichier en retour....
 

Pièces jointes

  • TESTv1.zip
    8 KB · Affichages: 30
  • TESTv1.zip
    8 KB · Affichages: 30
  • TESTv1.zip
    8 KB · Affichages: 29

samimi94

XLDnaute Occasionnel
Re : Eviter doublons avec conditions !!!

BHBH,

Je ne comprends vraiment rien, j'ai recopié ta macro que j'ai intégré à mon bout de code et là "Oh miracle" ça fonctionne.

Ce que je ne saisi pas c'est que j'ai collé tes lignes sous celles que j'avais mises pour identifier mon erreur, mais rien ne diffère (elles sont vraiment identiques, vu que j'avais déjà fait un copier de ce que tu m'avais fournit précédemment !)

C'est à ni rien comprendre.

Merci encore pour ta grande aide, car tu es super.

Je te souhaite une excellente fin de soirée, en espérant qu'un jour je saurai en faire autant que toi :)
 

Statistiques des forums

Discussions
312 113
Messages
2 085 425
Membres
102 886
dernier inscrit
eurlece