Médiaforma

posts

En filtrant les données d’une feuille, vous pouvez très facilement restreindre leur nombre pour n’afficher que celles qui répondent à un ou plusieurs critères.

Pour illustrer le filtrage des données, nous allons raisonner sur une feuille de calcul qui représente la pyramide des âges en France début Janvier 2013. Ici, les données s’étendent de la cellule A6 à la cellule E107 :

Filtrage avec un AutoFiltre

L’utilisation d’un AutoFiltre est une des façons les plus simples de filtrer vos données. Cliquez sur une cellule dans la plage que vous souhaitez filtrer ou sélectionnez cette plage. Ici, nous sélectionnons la plage A6:E107. Lancez la commande AutoFiltre dans le menu Données. Des flèches apparaissent dans chacune des cellules de la ligne de titre :

Pour définir un filtre, cliquez sur une des flèches et définissez les critères de filtrage. Vous pouvez appliquer un tri croissant ou décroissant, sélectionner les dix valeurs les plus élevées, les cellules vides, appliquer un filtre standard (voir section suivante) à la colonne, etc. :

Si vous utilisez plusieurs critères de filtrage, ils se cumulent. Vous pourriez par exemple appliquer un tri croissant sur la colonne Année de naissance et un filtre Top10 sur la colonne Âge révolu pour limiter l’affichage aux âges compris entre 99 et 90 ans :

Pour supprimer le filtre et retrouver l’intégralité des données, lancez la commande AutoFiltre dans le menu Données.

Filtrage avec un filtre standard

Cliquez sur une cellule dans la plage que vous souhaitez filtrer ou sélectionnez cette plage. Déroulez le menu Données, pointez l’entrée Plus de filtres et cliquez sur Filtre standard. Cette action affiche la boîte de dialogue Filtre standard :

Si nécessaire, cliquez sur Options pour accéder à des critères de filtrage complémentaires :

Supposons par exemple que vous ne vouliez afficher que les données pour lesquelles la colonne Âge révolu est comprise entre 20 et 30. Sélectionnez la plage qui contient les données à filtrer. Ici A6 à E107. Déroulez le menu Données, pointez l’entrée Plus de filtres et cliquez sur Filtre standard. La boîte de dialogue Filtre standard s’affiche. Paramétrez cette boîte de dialogue comme ceci :

Il est facile de comprendre que le filtre limitera les données affichées aux lignes pour lesquelles les cellules de la colonne Âge révolu ont une valeur comprise entre 20 et 30. Voici le résultat :

Pour supprimer le filtre et retrouver l’intégralité des données, déroulez le menu Données, pointez l’entrée Plus de filtres et cliquez sur Réinitialiser le filtre.

Filtrage avec un filtre spécial

Pour filtrer les données, vous pouvez définir un tableau qui contient les conditions de filtrage. Supposons par exemple que vous vouliez limiter l’affichage aux lignes dont la cellule Ensemble est supérieure à 900000 ou dont la cellule Âge révolu est supérieure à 95. Recopiez la ligne de titre et ajoutez les conditions de filtrage en-dessous. Placez-les sur une même ligne pour les lier par un ET. Placez-les sur des lignes différentes pour les lier par un OU.

Ces données se trouvent dans les cellules G6 à K8.

Sélectionnez la pyramide des âges, c’est-à-dire la plage A6:E107. Déroulez le menu Données, pointez l’entrée Plus de filtres et cliquez sur Filtre spécial. La boîte de dialogue Filtre spécial s’affiche. Maintenez le bouton gauche de la souris enfoncé et sélectionnez la plage dans laquelle se trouvent les critères de tri. A savoir, la plage G6:K8. La deuxième zone de texte contient la plage sélectionnée :

Cliquez sur OK pour appliquer le filtre. Voici le résultat :

Comme vous pouvez le constater, seules les lignes dont la cellule Ensemble est supérieure à 900000 ou dont la cellule Âge révolu est supérieure à 95 sont apparentes.

La fonctionnalité Cartes 3D permet de représenter des données chiffrées en 3D sur une mappemonde. Supposons par exemple qu’une société implantée en France ait des filiales en Belgique et en Suisse. Pour visualiser ses ventes dans le monde, rien de tel que la fonctionnalité Cartes 3D. Nous allons partir de ces données :

Sélectionnez la plage qui contient les données. Ici, la plage A1:B4. Basculez sur l’onglet Insertion dans le ruban et cliquez sur l’icône 3D Maps dans le groupe Présentations. La fenêtre de l’application 3D Maps s’affiche. Trois carrés bleus représentent la France, la Belgique et la Suisse :

Pour afficher les ventes pour chaque pays, cliquez sur Ajouter un champ sous Hauteur et sélectionnez Ventes dans la liste. Choisissez une représentation en cliquant sur une icône sous Données. Vous pouvez zoomer en utilisant la roulette de la souris et obtenir un autre angle en maintenant le bouton gauche de la souris enfoncé et en déplaçant la souris sur la représentation. Si vous préférez, vous pouvez utiliser les icônes + et – pour choisir un facteur de zoom et les icônes fléchées pour choisir une perspective :

Lorsque la représentation vous convient, vous pouvez la capturer en cliquant sur Capture d’écran. Il vous suffit alors de la coller dans votre feuille de calcul en cliquant sur l’icône Coller dans le groupe Presse-papiers du ruban.

Si vous préférez, vous pouvez également créer une vidéo avec ou sans bande son en cliquant sur l’icône Créer une vidéo. Choisissez le type de la vidéo :

Vous pouvez insérer une bande son en cliquant sur Options de la bande-son. Vous devrez alors désigner un fichier audio MP3, WMA, WAV ou M4A par exemple :

Cliquez sur Appliquer, puis sur Créer.

Quelques instants plus tard, un fichier MP4 est disponible. Il pourra accompagner votre feuille de calcul ou être placé sur le Web pour une présentation en ligne.

Lorsqu’on commence à écrire du code VBA, il est fréquent de vouloir afficher des données textuelles ou numériques dans une boîte de message. La méthode MsgBox() est là pour ça. Comme vous le verrez dans cet article, vous pouvez également utiliser MsgBox() en tant que fonction pour poser une question à l’utilisateur. En fonction de son choix, vous pourrez alors exécuter un bloc d’instructions ou un autre.

La méthode MsgBox()

Pour afficher une boîte de message, vous utiliserez MsgBox() en tant que méthode. Voici quelques exemples de code :

Affichage d’un message texte

MsgBox "Un message texte"

Affichage du contenu d’une cellule avec la fonction Cells()

MsgBox Cells(1, 2)

 

Affichage du contenu d’une cellule avec la fonction Range()

MsgBox Range("B2")

 

Affichage d’un texte et de la valeur d’une variable

Remarquez qu’ici, la variable est numérique, et que VBA accepte qu’on la concatène à une chaîne avec l’opérateur de concaténation « & » :

Dim n as Integer

n = 12

MsgBox "n vaut " & n

Affichage d’un texte sur plusieurs lignes

Le passage à la ligne se fait grâce au caractère Chr(10) ou à la constante vbLf. Remarquez également le caractère de soulignement (_) en fin de ligne qui permet de répartir l’instruction sur plusieurs lignes pour améliorer sa lisibilité :

MsgBox "Un message sur plusieurs lignes." & Chr(10) & _

       "Le passage à la ligne se fait avec un Chr(10)" & vbLf & _

       "ou avec la constante vbLf"

Définition du titre de la MsgBox()

Pour modifier le texte qui apparait dans la barre de titre d’une MsgBox(), vous devez passer trois paramètres à la fonction. Voici un exemple :

MsgBox "Texte dans la MsgBox()", , "Titre de la MsgBox()"

Ici, le deuxième paramètre est vide, ce qui provoque l’affichage d’une boîte de dialogue standard. Vous pourriez également utiliser les constantes suivantes :

Constante Effet
vbCritical
vbQuestion
vbExclamation
vbInformation

Voici un exemple :

MsgBox "Texte dans la MsgBox()", vbExclamation, "Titre de la MsgBox()"

La fonction MsgBox()

MsgBox() peut également être utilisé en tant que fonction. Dans ce cas, le deuxième argument indique le nombre et la nature des boutons affichés dans la boîte de dialogue :

Constante Effet
vbOKOnly
vbOKCancel
vbAbortRetryIgnore
vbYesNoCancel
vbYesNo
vbRetryCancel

 

Lorsqu’une boîte MsgBox() comporte plusieurs boutons, vous pouvez choisir celui qui est actif par défaut. L’utilisateur pourra appuyer sur la touche Entrée du clavier pour simuler un clic sur ce bouton. Pour cela, vous utiliserez les constantes du tableau suivant :

Constante Effet
vbDefaultButton1 Bouton 1 par défaut
vbDefaultButton2 Bouton 2 par défaut
vbDefaultButton3 Bouton 3 par défaut

 

Vous pouvez également utiliser les constantes vbCritical, vbQuestion, vbExclamation et vbInformation pour ajouter une icône dans la boîte de dialogue.

Mais alors, si vous choisissez (par exemple) les boutons de la boîte de dialogue, comment indiquer en plus quel bouton sera utilisé par défaut et quelle icône vous voulez utiliser ? Eh bien tout simplement en additionnant les constantes correspondantes.

Par exemple, pour afficher une boîte de dialogue qui :

  • affiche le texte « Voulez-vous continuer » ;
  • contient les boutons Oui (sélectionné par défaut) et Non ;
  • affiche une icône vbQuestion.

Vous utiliserez ces instructions :

MsgBox("Voulez-vous continuer ?", vbYesNo + vbDefaultButton1 + vbQuestion, "Important")

Mais attention : ici, MsgBox() est utilisé en tant que fonction et non en tant que méthode. Elle retourne donc une valeur qui doit être affectée à une variable ou directement testée. Les valeurs retournées par la fonction MsgBox() peuvent être les suivantes :

Valeur retournée Signification
vbOK Bouton OK cliqué
vbCancel Bouton Annuler cliqué
vbAbort Bouton Abandonner cliqué
vbRetry Bouton Recommencer cliqué
vbIgnore Bouton Ignorer cliqué
vbYes Bouton Oui cliqué
vbNo Bouton Non cliqué

Voici un exemple de code :

If MsgBox("Voulez-vous continuer ?", vbYesNo + vbDefaultButton1 + vbQuestion, "Important") = vbYes Then

    MsgBox ("OK, on continue")

Else

    MsgBox ("C'est d'accord, on s'arrête ")

End If

Voici le résultat :

Le bouton Oui est sélectionné par défaut. Si l’utilisateur appuie sur la touche Entrée du clavier ou clique sur le bouton Oui, une boîte de dialogue s’affiche :

S’il clique sur Non, une autre boîte de dialogue s’affiche :

La fonction InputBox()

Cet article ne serait pas complet si la fonction InputBox() n’était pas citée. Cette fonction demande à l’utilisateur de saisir une information textuelle ou numérique. Voici sa syntaxe :

InputBox ( message [, titre ] [, défaut ] [, xpos ] [, ypos ])

Où :

  • message représente le message à afficher dans la boîte de dialogue ;
  • titre représente le texte affiché dans la barre de titre (ce paramètre est optionnel) ;
  • défaut représente la valeur par défaut (ce paramètre est optionnel) ;
  • xpos et ypos représentent les coordonnées x et y de l’angle supérieur gauche de l’InputBox par rapport à l’angle supérieur gauche de l’écran (ces paramètres sont optionnels).

Voici un exemple de code :

Dim prenom As String

While Len(prenom) = 0

  prenom = InputBox("Quel est votre prénom", "J'ai besoin de savoir)

Wend

MsgBox "Bonjour " & prenom

Ici, une boucle While Wend répète autant de fois que nécessaire la saisie du prénom jusqu’à ce que l’utilisateur entre son prénom (c’est-à-dire une chaîne non vide).

Voici un exemple d’exécution :

Remarque

Si vous affectez le résultat de la fonction InputBox() à une variable numérique et que l’utilisateur saisit du texte, une erreur est générée et le programme prend fin, à moins que vous ne mettiez en place un gestionnaire d’erreurs, comme indiqué dans l’article Gestion d’erreurs en VBA.

Si vous n’avez que quelques fichiers audio ou vidéo à convertir, l’interface graphique de VLC fera parfaitement l’affaire.

Lancez la commande Convertir / Enregistrer dans le menu Média ou appuyez simultanément sur les touches Contrôle et R. La boîte de dialogue Ouvrir un média s’affiche, onglet Fichier sélectionné. Cliquez sur Ajouter et désignez le fichier à convertir. Cliquez alors sur Convertir / Enregistrer :

Une boîte de dialogue intitulée Convertir s’affiche. Choisissez un format de fichier dans la liste déroulante Profil. Notez à ce sujet que vous pouvez extraire la partie audio d’une vidéo en sélectionnant un format audio dans la liste déroulante Profil. Cliquez sur Parcourir et choisissez le dossier et le nom du fichier qui résultera de la conversion. Il ne vous reste plus qu’à cliquer sur Démarrer pour lancer la conversion :

Vous pouvez suivre la progression de la conversion dans la partie inférieure de la fenêtre de VLC :

Si vous avez un ou plusieurs autres fichiers à convertir, recommencez autant de fois que nécessaire les opérations qui viennent d’être décrites.

Le taux des devises change en permanence. Si vous utilisez une formule statique, comme pour la conversion de Fahrenheit en degrés Celsius, le résultat sera forcément erroné, à moins que vous ne mettiez à jour les taux au jour le jour. Cette section va vous montrer comment utiliser un site Web pour avoir des taux toujours à jour. Ici, nous convertirons des euros en dollars.

Allez sur le site https://www.boursorama.com/bourse/devises/convertisseur-devises/ (ou un autre site de conversion de devises), puis copiez l’URL de cette page dans le presse-papiers :

Basculez sur l’onglet Données. Dans le groupe Récupérer et transformer, cliquez sur Nouvelle requête, pointez A partir d’autres sources, puis cliquez sur A partir du Web. Entrez l’adresse https://www.boursorama.com/bourse/devises/convertisseur-devises/ et validez en cliquant sur OK :

Si une boîte de dialogue vous invite à vous connecter, cliquez sur Se connecter. Quelques instants plus tard, lorsque la connexion avec le serveur a été établie, la liste des tables de conversion du site est accessible :

Cliquez sur Table 1 (si vous choisissez un autre site Web ou si vous convertissez d’autres devises, les taux de changes se trouveront certainement dans une autre table) :

Cliquez sur Charger. Quelques instants plus tard, la table de conversion est chargée dans une nouvelle feuille de votre classeur :

Pour convertir en dollars un montant exprimé en euros, vous allez vous servir du taux de change de la cellule B2. Ici, le tableau de conversion a été stocké dans la feuille Feuil3.

Si vous essayez d’utiliser la formule =A5*Feuil3!B2, vous obtenez une erreur :

En effet, la cellule B2 de la feuille Feuil3 contient la chaîne 1.14165 USD. Impossible de multiplier cette chaîne par une valeur numérique !

Vous devez supprimer le suffixe USD et remplacer le point décimal par une virgule. Pour cela, vous utiliserez cette formule :

=A5*SUBSTITUE(GAUCHE(Feuil3!B2;CHERCHE(" ";Feuil3!B2)-1);".";",")

La fonction GAUCHE() retourne la partie numérique de la cellule B2 de la feuille Feuil3. Cette fonction demande deux paramètres :

  • La cellule sur laquelle travailler. Ici, la cellule B2 de la feuille Feuil3.
  • Le nombre de caractères à extraire. Ici, on utilise la fonction CHERCHE() pour trouver la position de l’espace dans la cellule B2. En enlevant 1, on obtient le nombre de caractères à extraire.

La fonction SUBSTITUE() remplace le caractère « . » par le caractère « ,« .

Le résultat est bien celui qui était attendu :

Pour que le taux de change soit mis à jour automatiquement, sélectionnez la feuille qui contient le tableau de change, basculez sur l’onglet Données, puis cliquez sur l’icône Propriétés dans le groupe Connexions. La boîte de dialogue Propriétés des données externes s’affiche. Cliquez sur l’icône Paramètres de connexion :

La boîte de dialogue Propriétés de connexion s’affiche. Cochez les cases Actualiser toutes les et/ou Actualiser les données lors de l’ouverture du fichier pour déterminer le mode d’actualisation des données :

Refermez toutes les boîte de dialogue ouvertes. Avec ce réglage, le taux de change sera automatiquement mis à jour à l’ouverture du classeur et toutes les 60 minutes.

Les données d’une plage peuvent être représentées par des barres horizontales, de plus ou moins grande ampleur selon leurs valeurs.

async function dataBar() {

  await Excel.run(async (context) => {

    const plage = context.workbook.worksheets.getActiveWorksheet().getRange("B2:C5");

    const condFormat = plage.conditionalFormats.add(Excel.ConditionalFormatType.dataBar);

  });

}

Après avoir récupéré la plage sur laquelle sera appliquée la mise en forme conditionnelle :

const plage = context.workbook.worksheets.getActiveWorksheet().getRange("B2:C5");

On lui ajoute une mise en forme conditionnelle de type dataBar :

const condFormat = plage.conditionalFormats.add(Excel.ConditionalFormatType.dataBar);

Voici le résultat :

Pour insérer un effet typographique dans une diapositive, lancez la commande Fontwork dans le menu Insertion ou cliquez sur l’icône Fontwork dans la barre d’outils Standard. La boîte de dialogue Galerie Fontwork s’affiche. Sélectionnez un des effets proposés et cliquez sur OK pour l’insérer dans la diapositive :

L’effet est inséré dans la diapositive, entouré de poignées de redimensionnement. Utilisez ces poignées pour lui donner la taille voulue :

Pour remplacer le texte par défaut (FontWork) par un autre texte quelconque, double-cliquez sur l’effet. Le texte de l’effet s’affiche. Remplacez-le par un autre texte :

Double-cliquez en dehors de l’effet pour prendre en compte le nouveau texte :

Si les effets proposés par défaut ne vous suffisent pas, vous pouvez les personnaliser en utilisant la barre d’outils Fontwork. Cliquez sur l’effet. Si la barre d’outils Fontwork n’est pas affichée, déroulez le menu Affichage, pointez l’entrée Barres d’outils et cliquez sur Fontwork :

L’icône Forme Fontwork permet d’affecter une autre forme à l’effet typographique :

Voici l’allure de l’effet Incliné vers le haut :

En utilisant les autres icônes de la barre d’outils Fontwork, vous pouvez donner la même hauteur à toutes les lettres, choisir l’alignement du texte, ou encore modifier l’espacement entre les caractères.