Mise à jour des doublons

Résolu
deloydilo -  
 deloydilo -
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:
***@***
***@***
***@***
***@***
***@***
A voir également:

5 réponses

castours Messages postés 2955 Date d'inscription   Statut Membre Dernière intervention   217
 
bonjour
mets ton fichier dans un lien apres compression avec ci joint sur le site
1
deloydilo
 
Merci Castours. le problème a été resolu. grand merci
0
Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   1 011
 
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
0
deloydilo
 
j'utilise MICROSOFT SQL SERVER 2012
0
Utilisateur anonyme > deloydilo
 
Bonjour,

sql sert à stocker les données. Mais tu utilises quel langage pour manipuler ces données ???

A+
0
Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   1 011
 
Donc tu as une requête de ce genre :
UPDATE personne
SET email = prenom + '.' + nom + '@truc.fr'

Avec éventuellement un WHERE. C'est bien ça ?
0
deloydilo > Utilisateur anonyme
 
J'utilise du transact-SQL
0
deloydilo > Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention  
 
Pour le moment j'ai pas lancé de requête. j'ai juste importé ma base de donnée depuis excel.
Je veux donc faire une mise à jour des doublons au niveau des emails.
Comme je l'ai expliqué, si l'email existe deja, je veux modifier le deuxième et mettre un 1 avant le @
s'il y a un troisième doublon, je veux mettre 2 avant le arobase ainsi de suite. Mais je connais pas le code transact-SQL à ecrire

EXEMPLE
deloydilo(AROBASE)gmail.com
deloydilo1(AROBASE)gmail.com
deloydilo2(AROBASE)gmail.com
deloydilo3(AROBASE)gmail.com
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
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?
0
deloydilo
 
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
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > deloydilo
 
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.
0
deloydilo
 
je programme avec Microsoft SQL server 2012.
Excel en VBA? tu pourrais m'aider? je sais pas trop comment s'y prendre
Cordialement
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > deloydilo
 
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, ...
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
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
0
deloydilo Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Castours
 
bonjour
as tu resolu ton probleme
si oui marque resolu
0
deloydilo Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
oui oui ça été resolu. merci bien. je cherche le bouton "resolu" depuis mais je vois pas.(je suis nouveau sur le site)
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > deloydilo Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
pour marquer résolu, utiliser la roue dentée à droite du titre.
0