Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Comment classer des numéros de téléphones

  • Initiateur de la discussion Initiateur de la discussion Thomas124
  • 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 !

Thomas124

XLDnaute Nouveau
Bonjour,
Dans un fichier excel J"ai dans une colonne A des numéros de téléphone dans un format 6XXXXXXXX, 1XXXXXXXX, 2XXXXXXXX, 3XXXXXXXX, bien entendu j ai plusieurs colonnes.
J ai besoin de mettre tous les numeros commencant par 6 dans une colonne differente.
La fonction me prendrait du temps,
J aurais besoin d une formule parcourant la colonne ou il a les numeros de telephone, et des que la formule rencontre un numero commecant par 6, elle supprime automatiquement le numéro dans cette colonne et elle va remplir la colonne mobile
 
Bonjour, Thomas124.

Une formule ne supprimera jamais un numéro (ni autre chose) dans une colonne différente.
Pour extraire une chaîne de chiffres commençant par 6, vous pouvez par exemple utiliser les fonctions :
=si(gauche(lachaine;1)="6";lachaine;"")
=si(stxt(lachaîne;1;1)="6";lachaîne,"")
A recopier vers le bas.
Edit : Non testé et corrigé
 
Dernière édition:
Bonjour Thomas124, Patrick, sixair,

Voyez le fichier joint et cette macro :
VB:
Sub Sortir_les_6()
Dim tablo, resu(), i&, j%, n2&, n1&
With Feuil1 'CodeName de la feuille, à adapter
    tablo = .[A1].CurrentRegion.Resize(, 2)
    ReDim resu(1 To 2 * UBound(tablo), 1 To 2)
    For i = 2 To UBound(tablo) '2 car en-têtes
        For j = 1 To 2 '2 colonnes
            If Left(tablo(i, j), 1) = 6 Then
                n2 = n2 + 1
                resu(n2, 2) = tablo(i, j)
            ElseIf tablo(i, j) <> "" Then
                n1 = n1 + 1
                resu(n1, 1) = tablo(i, j)
            End If
    Next j, i
    '---restitution---
    n1 = IIf(n1 > n2, n1, n2)
    If .FilterMode Then .ShowAllData 'si la feuille est filtrée
    With .[A2] 'cellule à adapter
        If n1 Then .Resize(n1, 2) = resu
        .Offset(n1).Resize(Rows.Count - n1 - .Row + 1, 2).ClearContents 'RAZ en dessous
    End With
    With .UsedRange: End With 'actualise la barre de défilement verticale
End With
End Sub
Utilisant des tableaux VBA elle est très rapide => 0,5 seconde chez moi avec 100 000 numéros.

A+
 

Pièces jointes

- 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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…