Fuseau horaire en fonction de l'indicatif téléphone

Bonjour à toutes et à tous,

J'ai des listes de clients internationaux (et quand je dis internationaux, il y a plus de 90 pays )

Les numéros sont au format 33612345678, 32475123456, ... Cela me convient parfaitement pour mon usage, pas besoin d'espace ni du +

Je voudrais ajouter une colonne m'indiquant l'heure dans le pays qui correspond à l'indicatif international.

J'ai pensé faire un IF avec toutes les possibilités mais

1 - Ca va être monstrueusement long comme code : est-ce optimal ?

2 - Mon principal souci est d'arriver à déterminer l'indicatif international.

Prenons quelques exemples : France 33 Ok je prends les 2 premiers chiffres mais Luxembourg 352 donc il faut prendre les 3 premiers chiffres.
Dans la liste, il n'y pas de 3 chiffres qui commencent par 33 ni de 2 chiffres qui commencent par 35, déjà un bon point pour éviter les confusions mais comment puis-je faire un code qui évite toute confusion puisque dans certains cas, c'est 2 chiffres et dans d'autres c'est 3 ?

Liste des indicatif Wikipedia

J'espère que j'ai été +/- clair. C'est clair dans ma tête mais peut-être pas dans la retranscription.

Je vous remercie d'avance pour votre aide et vous souhaite une bonne journée.

Bonjour

Il faut créer ou charger la liste des préfixes dans Excel et si effectivement il n'y a pas de superposition entre les préfixes de 2 et ceux de 3 caractères (ce qui parait logique pour que les centraux téléphoniques fonctionnent) tu peux trouver l'indicatif ou le pays par 2 recherches imbriquées de type

SIERREUR(recherche1);recherche(2)) la première basée sur 3 caractères et la seconde sur 2 et à base de RECHERCHEV OU INDEX/EQUIV selon l'ordre des colonnes ou de type RECHERCHEX(....;...;...;RECHERCHEX(....;...;...;"Pas trouvé"))

Mais pour trouver l'heure locale il faut aussi une table des fuseaux horaires à croiser avec la première et ce n'est pas si simple car, par exemple, les Etas-Unis n'ont que le préfixe 1 mais plusieurs fuseaux horaires (11 en tout)

Par ailleurs se pose aussi le problème de l'heure d'été...

Bonjour

Bonjour à tous

Un essai à tester avec une fonction personnalisée.

7essai-v1.xlsm (25.81 Ko)

Bye !

RE

Un essai à tester avec une fonction personnalisée.

A noter que tu récupère l'appel de notre d'où 12 pour les états unis et non 1 et que la demande porte sur l'heure dans le pays...

@ Chris :Tu as raison...

Bye !

Bonjour à vous,

Merci pour votre aide.

Je teste le fichier plus tard.

L'heure d'été, c'est pas grave du tout.

Par contre, effectivement je n'ai pas pensé à des pays ayant plusieurs fuseaux horaires mais ce n'est pas très très grave pour ce que je veux faire.

Si j'ai le pays, je peux attribuer une valeur ou une heure.
En fait c'est déterminer le pays qui me semble compliqué.

Si j'avais que quelques centaines de lignes, je le ferais à la main, mais c'est plus de 200.000 lignes par an.

Merci beaucoup à vous 2.

Je reviens vers vous demain au plus tard.

Bonne journée

bonjour,

je l'ai essayé avec des RechercheV normaux, mais c'est le format "texte" qui me cause des problèmes je pense ...

une autre proposition pour la fonction personnalisée

Function Indicatif2(plage As Range, numero As Range)
     Dim Col1, Col2, r, nmb

     Col1 = plage.Columns(1).Value
     Col2 = plage.Columns(2).Value

     For Each nmb In Array(5, 3, 2, 1)
          r = Application.Match(--Left(numero, nmb), Col2, 0)     'recherche comme valeur
          If IsNumeric(r) Then Indicatif2 = Col1(r, 1) & " (" & Col2(r, 1) & ")": Exit Function
          r = Application.Match(Left(numero, nmb), Col2, 0)     'recherche comme string
          If IsNumeric(r) Then Indicatif2 = Col1(r, 1) & " (" & Col2(r, 1) & ")": Exit Function
     Next

End Function

Bonjour

La nouvelle Calédonie comme la Polynésie ont le 33 mais évidemment pas la même heure que Paris... donc selon l'étendue des pays de ta liste, les corrections d'heures vont être nombreuses...

bonjour, et ces pays ne changent pas la même journée d'hiver en été et vice versa ou ils ne changent plus ... .

@chris La nouvelle Calédonie comme la Polynésie ont le 33 mais ....

Quels sont les numéros suivants téléphonique de Nouvelle Calédonie (0033...) et la Polynésie (0033...) et est cela suffisant pour les distinguer de la reste de la France ?

RE

Quels sont les numéros suivants téléphonique de Nouvelle Calédonie (0033...) et la Polynésie (0033...) et est cela suffisant pour les distinguer de la reste de la France ?

Je ne sais pas.

En métropole, il fut un temps où les numéros dépendaient des régions mais depuis que la possibilité de garder son numéro en cas de déménagement a été donnée, ce n'est plus tout à fait le cas...

Re,

78chris soulève beaucoup de soucis concernant mon idée et je l'en remercie.
Effectivement, tout cela je n'y ai pas pensé.
On va dire que ce n'est pas très grave.

Pour expliquer plus en détail, ce sont des messages whatsapp qui sont envoyés. Si certains arrivent la nuit, ça fera partie des "erreurs / défauts" du système, ce n'est pas très grave. En fonction, j'affinerai mes listings manuellement.

@BsAlv :

1 - Concernant le format de cette colonne, c'est du nombre sans virgule.
2 - Mes maigres connaissances sont bien trop faibles que pour comprendre votre code d'où question :

Pourquoi vous basez vous sur 2 colonnes ?

Un énorme merci pour votre temps et vos précieuses analyses.

Re 2ème édition,

@gmb : je viens de tester votre proposition. Excepté pour USA (1) et Russie (7), votre système fonctionne.

J'ai ajouté ceci à votre code

For i = 1 To plage.Rows.Count
        If plage(i, 2) = Val(Mid(numero, 1, 1)) Then
            n = Left(numero, 1)
            GoTo fin
        End If
    Next i

Et cela fonctionne vu les premier test que j'ai fait (excepté pour certains pays avec des codes à 5 chiffres commençant par 1) mais bon, je dois pas en avoir beaucoup des codes comme ça dans mes listings.

Je vais essayer d'adapter ce code à un de mes listings et voir ce que ça donne.

Je vous tiens au courant.

Merci à vous toutes et tous pour votre aide précieuse.

Voici le fichier avec le code modifier comme mentionné dans mon message précédent.
J'ai ajouté en I2 une recherchev mais ça ne fonctionne pas. J'ai lu, relu des aides, je comprends pas.

Merci d'avance.

Bonjour

Une version PowerQuery qui récupère la liste Web directement et un exemple de formule qui fonctionne

Données, Actualiser Tout de temps en temps

Re bonjour 78chris,

Je vous remercie pour ce fichier. Malheureusement cela ne fonctionne pas avec 1 et 7.

Limite, ce n'est pas trop grave, un coup de filtre et je le fais à la main avec les "Pas trouvé"

Comment j'accède au code ? Jamais utilisé powerquery ?

Merci

bonjour,

Pourquoi vous basez vous sur 2 colonnes ?

Ces sont les 2 colonnes du "Tableau2", la première les pays et la 2ième les préfixes.

RE

Pour une seul caractère il suffit d'imbriquer une fois de plus

=RECHERCHEX(GAUCHE(B2;3)*1;Indicatifs[Indicatif];Indicatifs[Pays];RECHERCHEX(GAUCHE(B2;2)*1;Indicatifs[Indicatif];Indicatifs[Pays];RECHERCHEX(GAUCHE(B2;1)*1;Indicatifs[Indicatif];Indicatifs[Pays];"Pas trouvé")))

Cependant le classement des 4 pays dans la liste

République dominicaine
Canada
Porto Rico
États-Unis

est important car si on classe alphabétiquement c'est Canada qui prime...

PowerQuery : Données, Obtenir de données, lancer PowerQuery

@BsAlv : merci pour vos explications et fichiers. Ca fait le taf comme on dit. Je vais le mettre à ma sauce (enfin essayer) et ensuite passer au problème d'affichage d'une heure dans une autre colonne.

@78chris : Merci pour le PowerQuery. Souci de connexion réglé après multiples arrachages de cheveux
Oui effectivement, le classement peut poser un problème mais je peux modifier la liste de façon à ce que cela me convienne.

Merci pour la modification du code, cela fonctionne parfaitement.

Un grand merci à vous deux pour votre temps et votre partage. Les 2 solutions sont merveilleuses. Maintenant je dois choisir une avec laquelle je vais pouvoir me débrouiller au vu de mes connaissances. Y a de l'apprentissage dans l'air ce dimanche.

Je vous tiens au courant et je me penche sur l'affichage de l'heure ou d'une information concernant l'heure.

Bon dimanche à vous.

la fonction est un petit peu plus élaboré et on peut la demander comme une formule matricielle (3 éléments en vert) ou élément par élément (formules jaunes).

Il y a un charactère spécial (ASCII-160) qui ressemble à un espace (ASCII-32) en face de chaque pays dans le tableau

Si on a +100.000 lignes qu'on doit traiter une fois, c'est mieux d'utiliser ce truc en une macro au lieu d'une fonction personnalisée.

Bonjour à vous toutes et tous en ce dimanche,

J'ai avancé sur le fichier proposé par @78chris.

Feuil3 : Dans le tableau comportant les indicatifs et pays, j'ai modifié une col pour y ajouter les GMT + ou - et ajout d'une col pour passage à l'heure d'été ou pas.

Feuil2 : Ajout d'une col reprenant la valeur GMT + ou - et une col Heure locale calculant ... l'heure locale ;) Etant à GMT +4, j'ai fait le calcul suivant :

[Maintenant] - (4/24) + (gmt/24) + (heure d'été/24)

Le souci est lorsque le pays ne pratique pas l'heure d'été. Je l'ai mentionné dans le tableau de la feuil3 mais je ne vois pas comment faire une formule qui en tienne compte.
Peut être en ajoutant un col dans feuil2 et ensuite SI[ete="non] tel calcul et si oui autre calcul mais j'imagine que ce n'est pas idéal d'ajouter une col "pour rien" alors qu'on a la valeur dans un autre tableau d'une autre feuille.

Voici le fichier modifié.

Merci pour votre aide.

Rechercher des sujets similaires à "fuseau horaire fonction indicatif telephone"