AccueilVersion Calc 1.x Version Calc 2.x Présentation Calc 3.xBien débuter Calc Fonctions Calc Exercices Calc FormulairesAstuces CalcPrécisions calculsLa bonne formuleProgrammation BasicLiens diversDéfinitionsRecherche sur siteHumourInfos, news

EXERCICES CALC. Annuaire simple

 

Tout d'abord, vous devez télécharger le fichier texte qui servira à cet exemple. Ce fichier est nommé ListeAnnuaire.txt. Enregistrez-le sur le disque dur. Il s'agit d'un fichier texte, donc aucun risque de virus.

Cet exemple contient une grossière erreur de structure. Ceci est volontaire pour notre exemple. La sauvegarde au format texte est également volontaire.

Si à partir du tableur Calc vous tentez d'ouvrir ce fichier, c'est Writer qui va s'ouvrir et vous obtiendrez une page comme ceci.

Le fichier au format texte (suffixe .TXT) est lisible par n'importe quel programme de traitement de texte, y compris le plus rudimentaire. Vous pouvez voir que dans ce fichier les données sont entre guillemets et séparées par une virgule. Il s'agit en fait du format CSV, bien pratique pour importer des données dans un tableur.

Vous devrez donc, soit sauvegarder avec l'extension .CSV soit renommer votre fichier ListeAnnuaire.txt en ListeAnnuaire.csv.

Maintenant, depuis Calc, ouvrons notre fichier ListeAnnuaire.csv . La boite de dialogue Import de texte s'ouvre. Remarquez que le tableur convertit automatiquement les données du fichier. Pour chacune des données c'est le format Standard qui est affiché par défaut. On peut le modifier ou le laisser comme tel et le changer par la suite.

Et voici notre fichier intégré dans Calc. La présentation laisse à désirer, à commencer par les titres. Pour la présentation regardez la mise en forme cellules.

N'oubliez pas de le sauvegarder au format naturel de Calc.

 

Un des défauts concerne l'affichage des numéros de téléphone. Présenté tel quel, ce n'est pas agréable.

Il faut donc sélectionner la colonne puis dans la boite de dialogue (appelée par Format, Cellule, ou clic droit et Formater des cellules) Formatage des cellules, onglets Nombres, choisir ou définir le format.

 

Ce que nous cherchons n'existe pas. Pas de problème, il suffit de créer son propre format Défini par l'utilisateur.

Entrons donc le format 00" "00" "00" "00" "00

Attention à respecter un espace entre les guillemets.

Une autre variante possible est le format ##" "##" "##" "##" "## Vous pouvez tester les 2 cas et comparer quelques différences.

Enfin, si vous souhaitez avoir les points entre les numéros, vous pouvez créer ce format 00"."00"."00"."00"."00

Les points n'auront aucune incidence. Placés entre guillemets, ils sont du texte et non un séparateur numérique quelconque.

Résultat bizarre ? Normal. Il suffit d'ajuster la largeur de lignes, regardez : hauteur lignes, largeur colonnes.

Et maintenant, tout va mieux.

Mais passons à la suite. Vous avez remarqué dans la rubrique Ville le mélange des codes postaux et du nom de la ville. Il va falloir les séparer en colonnes distinctes. L'occasion de tester quelques formules et de jouer du copier / coller.

 

Le plus simple d'abord. Nous allons extraire le code postal. Comme vous pouvez le voir, ils sont tous composés de 5 caractères.

Choisissons une colonne libre pour éviter toute erreur. Plaçons nous en H2.

Pour les extraire, nous utilisons la fonction GAUCHE.

On peut se faire aider par l'Autopilote de fonctions, et dans Catégorie, Texte, choisir la fonction GAUCHE.

Le curseur dans Texte, cliquons sur la cellule E2, puis dans Nombre, inscrivons 5.

Les résultats partiel et complet sont affichés correctement.

Voici notre résultat. Rien ne vous choque ? Oui, le résultat est aligné à gauche. Pourquoi ? Tout simplement parce que c'est un texte, même s'il est composé de chiffres.

Pour traiter ce problème, il suffit d'ajouter la fonction CNUM qui convertit les textes en valeur, d'où la formule =CNUM(GAUCHE(E2;5))

Cette fois-ci l'affichage est correct. Vous pourrez toujours modifier le format pour faire afficher un espace entre les milliers.

Plaçons nous maintenant en I2 pour les villes. C'est plus complexe. Pour extraire le nom de la ville, on utilisera la formule DROITE, mais il faut aussi connaître le nombre de caractères à extraire, d'où la fonction NBCAR qui donne le nombre de caractères de la chaine, ici dans E2, donc =NBCAR(E2)

Ce qui fait que notre formule complète est =DROITE(E2;NBCAR(E2)-6)

Pourquoi -6 ? Pour les 5 caractères du code postal, plus un espace.

Et voila le travail. Il ne reste plus qu'à recopier vers le bas.

Aïe ! On a parlé trop vite. En ligne 11, rien ne va plus.

Sélectionnez la cellule Err :502, qui n'est pas très causante. Dans la barre d'état (identique OOo 1.1x et OOo 2.x), vous avez une explication simpliste de l'erreur.

Même explication dans l'autre cellule. L'explication est simple. Nous cherchons à extraire un nombre de caractères précis d'une chaine vide ! Il va donc falloir tester avant tout cette chaine avec la fonction SI, ce qui pour la ligne 11 donnera la formule, pour les codes postaux :

=SI(E11<>"";CNUM(GAUCHE(E11;5));"") qui peut également s'écrire : =SI(E11="";"";CNUM(GAUCHE(E11;5)))

Dans les 2 cas, les formules sont valables. A vous de choisir. Et pour les noms de ville, nous écrivons :

=SI(E11<>"";DROITE(E11;NBCAR(E11)-6);"") qui peut également s'écrire : =SI(E11="";"";DROITE(E11;NBCAR(E11)-6))

Attention. Dans les formules "" (entre guillemets), il n'y a aucun caractère. N'ajoutez pas d'espaces.

 

 

 

STOP Pourquoi ne place t'on pas d'espaces entre les guillemets ?

Réponse Dans les formules précitées, on cherche à savoir si le contenu de la cellule est vide ou non. Hors un espace, même s'il n'est pas visible est un caractère. Si vous doutez, faites le test, avec espace.

Nous aurions pu d'ailleurs utiliser une fonction pour tester si la cellule est vide, la fonction ESTVIDE. Si on reprend cette formule :

=SI(E11="";"";DROITE(E11;NBCAR(E11)-6))

Nous pouvons également l'écrire :

=SI(ESTVIDE(E11);"";DROITE(E11;NBCAR(E11)-6))

Ce qui prouve encore une fois que pour obtenir un même résultat, les possibilités sont souvent nombreuses.

 

 

 

Ensuite, il ne reste plus qu'à faire la recopie de nos formules vers le bas. Plus aucune erreur ne doit apparaître.

Faites une sauvegarde !

Il va donc falloir remplacer la colonne Villes par une colonne Code Postaux et une colonne Ville. Nous allons devoir insérer une colonne, puis par un copier / coller un peu particulier, recopier nos formules qui vont se transformer en valeurs et textes.

Il faut, dans l'ordre :

  1. Insérer une colonne (ajout, suppression : lignes, colonnes, cellules) en sélectionnant la colonne E (curseur sur la lettre de titre E et clic droit pour le menu flottant).
  2. Sélectionner la zone des résultats (donc les zones de formules) Code postaux et villes, et la copier via Ctrl+C
  3. Nous placer dans la colonne vide qui va devenir Code Postaux en E2
  4. Avec le menu Edition, appeler le Collage spécial

 

 

Petite synthèse. La zone sélectionnée (en vidéo inverse) va être recopiée vers la cellule E2, ce qui explique le transfert des données de la colonne H vers la colonne E et le transfert de la colonne I, vers la colonne F, écrasant donc les données existantes.

 

Voici la boite de dialogue Collage spécial.

Si ce n'est fait, il faut décocher Tout insérer.

puis cocher Nombres et décocher Formules.

Après avoir cliqué sur OK, vous aurez ce message, naturel puisque vous allez écrire sur l'ancienne colonne de Villes.

Tout va bien ? Il reste à supprimer les colonnes de calculs devenues inutiles.

Exploitons maintenant un des avantages du tableur, le tri. Tout d'abord, il faut impérativement que la cellule active se trouve quelque part à l'intérieur de la zone des données.

Il est possible de trier directement. Pour OOo 1.1x, depuis les icônes ou de la barre d'instruments et pour OOo 2.x avec les icônes ou de la barre Navigation pour formulaires. Malheureusement les titres ne sont pas reconnus et se retrouvent mélangés au milieu des données. Il faut donc passer par le menu Données, Trier.

Dans la boite de dialogue Tri, onglet Options, cochez La plage contient des étiquettes de données.

Dans Critères de tri, choisissez selon vos besoins.

Encore un exemple, le filtre de données. Vous pouvez l'appeler avec OOo 1.1x via l'icone Autofiltre, de la barre d'instruments, et avec OOo 2.x via l'icône de la barre d'outils, ou via le menu par Données, Filtre, AutoFiltre.

Immédiatement, des petites flèches apparaissent dans les titres.

Un clic sur la flèche pour dérouler le menu et vous pourrez choisir selon vos besoins. Dans cet exemple, dans Ville, nous choisissons Ailleurs.

Maintenant, ne figurent que les villes s'appelant Ailleurs.

Notez la couleur de la flèche bleue. Il est possible de combiner plusieurs titres filtrés. Pour revenir, il faut choisir -tout- dans la liste.