Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.
  • Initiateur de la discussion Initiateur de la discussion Ailleurs63
  • 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 !

A

Ailleurs63

Guest
Bonjour à tous.
Si je fais appel à vous c'est que j'ai un soucis : j'ai un fichier CSV qui contient environ 4000 contacts.
Hors, pour une partie des contacts, l'adresse e-mail n'est pas dans la colonne EMAIL mais dans la colonne TELEPHONE.
Je cherche donc une solution pour contrôler la présence d'une adresse dans la colonne MAIL et en cas de cellule vide ou adresse sans @ remplacer par le contenu de la cellule de TELEPHONE. Par avance merci !
 
Bonjour ailleur et bienvenue sur XLD 🙂

Sans fichier, difficile de t'aider. De plus tu ne dis pas dans quel colonne (A B C D etc.) les données se trouvent. Sinon faire un test avec ceci à mettre dans le module de la feuille.

VB:
Private Sub Worksheet_Change(ByVal R As Range)
    Application.EnableEvents = False
    'A remplacer par la colonne des adresses mail
    If Not Intersect(R, Columns("D:D")) Is Nothing Then

        If R.Offset(0, 0) = vbNullString Then
            'ici 3 = colonne G - à remplacer par la colonne des téléphones
            R.Offset(0, 3).Copy R.Offset(, 0)
            R.Offset(0, 3).ClearContents
        End If
    End If

    Application.EnableEvents = True
End Sub
 
Dernière édition:
Bonjour ailleur et bienvenue sur XLD 🙂

Sans fichier, difficile de t'aider. De plus tu ne dis pas dans quel colonne (A B C D etc.) les données se trouvent.
Bonjour. J'ai peut être, par méconnaissance, posté au mauvais endroit. Le pb ne vient pas de mon fichier CSV lui -même.
Donc un peu plus de détails : Je souhaite contrôler la présence d'une adresse email dans la colonne adresse email et en cas d'absence, remplacer la valeur par l'adresse email de la colonne téléphone 1. Merci !
 
Bonsoir le fil, le forum

Une solution testée sous XL 2013
(en me basant sur l'image du message#3)
VB:
Sub a()
Dim c As Range
For Each c In Range("C:C:D:D").SpecialCells(xlCellTypeConstants, 2)
If InStr(c, "@") > 0 Then
c.Cut Cells(c.Row, "B")
End If
Application.CutCopyMode = False
Next
End Sub

NB:
@Ailleurs63
Désolé de ne pas l'avoir posté deux heures plutôt
Mais désormais tu as une superbe dextérité digitale 😉
 
Re

Non mais ce n'est pas forcément grave 😉
Il suffit d'ouvrir le CSV dans Excel, d’exécuter la macro puis d'enregistrer les modifs.
On peut aussi peaufiner (il y a déjà tout cela en stock sur XLD)
1) La macro ouvre une boite de dialogue pour parcourir une arboresence à la recherche du CSV
2) L'utilisateur sélectionne le CSV, la macro l'ouvre (ou le copie dans une feuille temporaire du classeur contenant le code VBA)
3) La macro traite les données en mettant les mails dans la bonne colonne.
4) La macro enregistre les modifs dans un nouveau CSV (si on veut être prudent) ou dans un nouveau classeur Excel d'une seule feuille.
(le tout de manière transparente pour l'utilisateur à partir de la sélection du CSV dans la boite de dialogue Ouvrir)

Tous ces points (1,2, 3 et 4) dorment dans la poussière des archives du forum. 😉

NB: J'allais justement te faire la remarque 😉 (lol)
Message 1
Bonjour à tous.
j'ai un fichier CSV qui contient environ 4000 contacts.
Message 2
Bonjour ailleur et bienvenue sur XLD 🙂
Sinon faire un test avec ceci à mettre dans le module de la feuille.
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
19
Affichages
675
Réponses
8
Affichages
739
Réponses
18
Affichages
359
Réponses
7
Affichages
357
  • Question Question
Microsoft 365 Code VBA
Réponses
7
Affichages
980
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…