Menu

Mise à jour des doublons [Résolu]

deloydilo - 6 mars 2018 à 15:49 - Dernière réponse : yg_be 5862 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 24 juin 2018 Dernière intervention
- 2 juin 2018 à 15:44
Bonjour,
je travaille sur un projet de creation des comptes mail. Mes champs sont email, nom , prenom,fonction . j'ai des doublons au niveau des emails parce que j'ai les memes nom et prénoms mais les personnes sont bien différentes. Ce que je veux c'est que Si le mail existe deja , je voudrais mettre un 1 , un 2 , un 3 un 4... avant le @ ( une mise à jour au fait)
un exemple de ce que je veux obtenir:
***@***
***@***
***@***
***@***
***@***
Afficher la suite 

Votre réponse

26 réponses

Meilleure réponse
castours 2905 Messages postés lundi 18 septembre 2006Date d'inscription 21 juin 2018 Dernière intervention - 5 mai 2018 à 08:56
1
Merci
bonjour
mets ton fichier dans un lien apres compression avec ci joint sur le site

Merci castours 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

CCM a aidé 23825 internautes ce mois-ci

Commenter la réponse de castours
Meilleure réponse
1
Merci
bonjour
as tu resolu ton probleme
si oui marque resolu

Merci Castours 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

CCM a aidé 23825 internautes ce mois-ci

deloydilo 3 Messages postés mardi 6 mars 2018Date d'inscription 2 juin 2018 Dernière intervention - 2 juin 2018 à 15:05
oui oui ça été resolu. merci bien. je cherche le bouton "resolu" depuis mais je vois pas.(je suis nouveau sur le site)
yg_be 5862 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 24 juin 2018 Dernière intervention > deloydilo 3 Messages postés mardi 6 mars 2018Date d'inscription 2 juin 2018 Dernière intervention - 2 juin 2018 à 15:44
pour marquer résolu, utiliser la roue dentée à droite du titre.
Commenter la réponse de Castours
Reivax962 3238 Messages postés jeudi 16 juin 2005Date d'inscription 22 juin 2018 Dernière intervention - 7 mars 2018 à 11:43
0
Merci
Bonjour,

Il faudrait nous dire quel est le langage / programme que tu utilises pour faire ces créations. La façon de te répondre en dépendra fortement...

Xavier
Reivax962 3238 Messages postés jeudi 16 juin 2005Date d'inscription 22 juin 2018 Dernière intervention - 20 mars 2018 à 13:42
Si tu ne comprends pas ce que je demande tu as le droit de me poser des questions... Là j'ai légèrement l'impression d'être ignoré alors que j'ai la solution à ton problème.
Comment dire...
Salut @Xavier, je voudrais bien partager mon fichier excel avec toi mais je sais pas comment faire. si tu vois le fichier , je pense que tu pourras facilement m'aider
Cordialement
Reivax962 3238 Messages postés jeudi 16 juin 2005Date d'inscription 22 juin 2018 Dernière intervention - 21 mars 2018 à 08:38
As-tu exécuté, dans SQL Server, la requête que je t'ai donnée ? Que te renvoie-t-elle ?
deloydilo 3 Messages postés mardi 6 mars 2018Date d'inscription 2 juin 2018 Dernière intervention - 21 mars 2018 à 09:04
le bout de code concatene d'abord le [ nom+prenom complet@test.com] Après il met les numero 1, 2, 3... comme j'ai dit. Mais le truc c'est que j'ai deja mes emails qui sont deja formé dans excel selon la norme NOM.DERNIER PRENOM@GMAIL.COM
c'est juste la mise à jour avec les 1, 2 , 3...au niveau des doublons que je veux
je voudrais partager mon fichier excel si possible
Cordialement.
Reivax962 3238 Messages postés jeudi 16 juin 2005Date d'inscription 22 juin 2018 Dernière intervention - 21 mars 2018 à 12:06
Je comprends mieux.
Du coup, est-ce que cette requête te conviendrais mieux ?

select nom, prenom, email, 
  REPLACE(email, '@', 
    CASE ROW_NUMBER() OVER (PARTITION BY email ORDER BY email)
      WHEN 1 THEN ''
      ELSE CAST(ROW_NUMBER() OVER (PARTITION BY email ORDER BY email) - 1 as VARCHAR(3))
    END + '@')
from ta_table


Si le résultat te convient, dis-le moi que je te donne la méthode pour l'appliquer réellement dans ta base.

Xavier
Commenter la réponse de Reivax962
yg_be 5862 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 24 juin 2018 Dernière intervention - Modifié par yg_be le 17/03/2018 à 09:32
0
Merci
bonjour,
il me semble que tu introduis beaucoup de confusion avec ton idée de prénom et de nom servant à composer l'adresse email. peux-tu décrire plus clairement ce que tu souhaites faire, peut-être en donnant un exemple avant/après? tu nous montres l’après, parce que tu vois l'avant, mais nous ne le voyons pas.
je pense que ce que tu essaies de faire est assez simple à programmer, mais pas à faire via une requête.
dans quel but veux-tu faire cela, quel est précisément ton projet, avec quoi programmes-tu?
Ok. j'explique depuis le debut.
j'ai une base de donnee Excel avec les champs email, prenom,nom.
j'ai des doublons au niveau des emails. je veux pas supprimer ces doublons mais je veux juste mettre à jour. j'ai importé ma base de donnée dans SQL Server histoire de faire cette manip avec une requete.
voici un exemple de ce que j'ai: deloydilo(AROBASE)gmail.com
deloydilo(AROBASE)gmail.com
deloydilo(AROBASE)gmail.com
deloydilo(AROBASE)gmail.com

si l'email existe,je veux que les autres doublons se mettent à jour de cette façon:

EXEMPLE
deloydilo(AROBASE)gmail.com
deloydilo1(AROBASE)gmail.com
deloydilo2(AROBASE)gmail.com
deloydilo3(AROBASE)gmail.com


Cordialement
yg_be 5862 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 24 juin 2018 Dernière intervention > deloydilo - 18 mars 2018 à 09:54
je pense que ce que tu essaies de faire est assez simple à programmer, mais pas à faire via une requête.
avec quoi programmes-tu?
c'est sans doute simple à faire dans Excel en VBA.
je programme avec Microsoft SQL server 2012.
Excel en VBA? tu pourrais m'aider? je sais pas trop comment s'y prendre
Cordialement
yg_be 5862 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 24 juin 2018 Dernière intervention > deloydilo - 20 mars 2018 à 11:11
partage ton fichier excel, ou décris comment/où les données (email) y sont installées.
décris aussi ce que tu souhaites que le code VBA fasse: modifier les mails, créer une nouvelle liste de mails uniques, ...
Commenter la réponse de yg_be
yg_be 5862 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 24 juin 2018 Dernière intervention - 21 mars 2018 à 13:36
0
Merci
suggestion:
Option Explicit

Sub email()
Const arob As String = "@"
Dim ws As Worksheet
Dim emails As Scripting.Dictionary
Dim ligne As Range
Dim email As String, pn As String, atdom As String, lastd As String, deb As String
Dim posa As Integer, lastn As Integer

Set ws = Sheets("email")
Set emails = New Scripting.Dictionary
For Each ligne In ws.UsedRange.Rows
    email = ligne.Cells(1, 1)
    Do While emails.Exists(email)
        posa = InStr(email, arob)
        pn = Left(email, posa - 1)
        atdom = Right(email, Len(email) - posa + 1)
        lastd = Right(pn, 1)
        If IsNumeric(lastd) Then
            lastn = lastd
            deb = Left(pn, Len(pn) - 1)
            If lastn = 9 Then
                pn = deb & "01"
            Else
                pn = deb & (lastd + 1)
            End If
        Else
            pn = pn & "0"
        End If
        email = pn & atdom
    Loop 'Do While emails.Exists(email)
    emails.Add email, 0
    ligne.Cells(1, 1) = email
Next ligne

End Sub
deloydilo 3 Messages postés mardi 6 mars 2018Date d'inscription 2 juin 2018 Dernière intervention - 21 mars 2018 à 15:10
je sais que tu veux m'aider mais là j'avoue que je suis perdu! lol
C'est du Code VBA ça? je connais pas le VBA, juste quelque Requête SQL. Merci quand meme.
Cordialement
Commenter la réponse de yg_be