Une Saisie ultra-rapide et automatisée sur Excel !

Aujourd’hui pour ce nouveau tutoriel, je vous propose répondre à la question posée par Gabrielle Dumais dans l’espace des commentaires de la chaîne YouTube qui souhaite savoir comment faire pour mettre en place une saisie de données ultra-rapide sur Excel en automatisant un maximum la reconnaissance et la complétion automatique des données

Excel formation - saisie automatisée - 01

 

Téléchargement

Vous pouvez télécharger le fichier d'exemple de cet article en cliquant sur le lien suivant :

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
 

 

Tutoriel Vidéo

 

 

1. Utiliser la fonctionnalité de correction automatique en cours de frappe

Dans un précédent tutoriel, que vous pourrez retrouver en cliquant ici, nous avons déjà eu l’occasion de découvrir qu’Excel dispose d’un outil de correction automatique en cours de saisie.

Cela va permettre de modifier directement les données saisies (fautes de frappes, fautes d’orthographes courantes, …) ou encore la manière dont celles-ci sont saisies (double majuscule en début de mot, …)

Cet outil va alors analyser les données saisies par un utilisateur afin de corriger les données lorsque cela s’avère nécessaire.

Cela permettra par exemple de pouvoir saisir facilement le caractère copyright en saisissant la lettre c entre parenthèses :

Excel formation - saisie automatisée - 02

Pour mettre en place et paramétrer la correction automatique en cours de saisie, rendez-vous dans le menu Fichier > Option, puis dans la catégorie Vérification, cliquez sur le bouton Options de correction automatique

Excel formation - saisie automatisée - 03

Les règles que nous allons mettre en place au sein d’Excel seront également valables pour toutes les applications de la suite Office, ce qui évite d’avoir à répéter une même opération pour chacune d’entre elles.

Nous retrouvons tout d’abord un certain nombre de fonctionnalités très pratiques, mais qui ne nous intéresseront pas ici, telles que :

  • La suppression automatiquement de la double majuscule saisie en début de mot : « EXcel » devient alors « Excel.
  • L’inversion de la casse lorsque tout un mot (sauf la première lettre) est saisi en majuscule : « eXCEL » devient « Excel »,
  • Les possibilités d’ajouter automatiquement une majuscule en début de phrase, ou aux jours de la semaine sont présentées dans cette fenêtre car les fonctions de corrections automatiques sont communes à toutes les applications de la suite Office, mais ne fonctionnent pas avec Excel.

Et enfin, dans la partie inférieure de la fenêtre, nous retrouvons l’option la plus utile ici : l’option de correction automatique en cours de frappe. Celle-ci permet de remplacer automatiquement des mots saisis par d’autres mots que nous allons pouvoir définir. L’exemple le plus parlant étant le « (c) » qui devient « © »

Par défaut, Excel contient déjà un très grand nombre de règles de préfinis que nous pouvons consulter :

Excel formation - saisie automatisée - 04

Nous pouvons par exemple constater que saisir « aujourdhui » permettra d’afficher rapidement « aujourd’hui ».

Pour ajouter une nouvelle règle, il suffit de saisir dans le champ « Remplacer : » le terme à repérer et dans le champ « Par : » le terme à insérer à la place de celui-ci.

Nous pouvons ainsi remplacer « ecxel » par « excel » :

Excel formation - saisie automatisée - 05

 

(Nous saisissons donc « excel » dans le champ « Remplacer : » et « excel » dans le champ « Par : », puis nous validons la création en appuyant sur le bouton « Ajouter ») :

Excel formation - saisie automatisée - 06

Pour annuler une modification automatique non désirée, appuyez simplement sur les touches [Ctrl]+[Z] (sans valider la saisie).

Nous passons rapidement sur cette fonctionnalité, une fois encore si vous souhaitez en savoir davantage, vous pouvez consulter le tutoriel dédié à cette fonctionnalité en cliquant ici.

 

2. Créer un système de reconnaissance automatique

Maintenant, pour aller plus loin, imaginons que nous souhaitions reproduire exactement le même fonctionnement, mais en améliorant le système pour pouvoir ajouter rapidement des règles personnalisées.

À titre d’exemple, nous allons utiliser un tableau d’affectation à deux colonnes :

Excel formation - saisie automatisée - 07

Dans la première colonne nous allons saisir le terme qui va permettre d’identifier la saisie à remplacer, et dans la seconde colonne se trouve la valeur à insérer à la place.

Ici, nous limitons l’analyse aux jours de la semaine, mais nous pourrions aller plus loin en saisissant les codes-barres produits et les désignations correspondantes à ces derniers.

Pour automatiser ce remplacement, nous allons bien entendu devoir passer par le développement d’une petite macro-commande en VBA.

Pour que ce tutoriel soit accessible à tout le monde, nous allons revenir dans le détail sur aspect de cette dernière.

Si vous souhaitez aller plus loin dans la découverte du langage VBA, vous pouvez évidemment consulter la formation disponible sur le blog en cliquant ici.

Pour commencer, nous allons lancer l’éditeur de code VBE (pour Visual Basic Editor), qui est l’éditeur de code intégré dans les différentes applications de la suite Office et qui permet de développer des macro-commandes en VBA.

Pour cela, nous appuyons simplement sur les touches [Alt]+[F11] :

Excel formation - saisie automatisée - 08

VBE s’ouvre alors sur le projet dans lequel nous nous trouvions (le classeur Excel), et nous allons pouvoir insérer la macro dans la feuille de code en double cliquant sur celle-ci :

Excel formation - saisie automatisée - 09

La macro que nous allons développer repose sur l’utilisation de l’évènement Worksheet_Change

Un évènement permet de déclencher automatiquement une série d’instructions lorsque quelque chose se passe sur la feuille de calcul.

L’évènement Worksheet_Change en particulier va se déclencher à chaque fois qu’une cellule de la feuille va être modifiée.

Pour l’insérer sur la feuille de code, nous commençons par dérouler le menu de sélection d’objet pour sélectionner Worksheet (c’est-à-dire les évènements de feuille de calcul) :

Excel formation - saisie automatisée - 10

Puis dans le second menu nous sélectionnons directement l’évènement Change :

Excel formation - saisie automatisée - 11

Excel ajoute automatiquement l’évènement sur la feuille de code :

Excel formation - saisie automatisée - 12

Nous pouvons supprimer l’évènement Worksheet_SelectionChange ajouté par Excel, mais qui ne nous servira pas.

Maintenant pour vérifier le bon fonctionnement de l’évènement, nous allons commencer par automatiser l’affichage d’une notification à chaque fois qu’une donnée va être saisie dans la feuille de calcul :

Private Sub Worksheet_Change(ByVal Target As  Range)
    MsgBox Target
End Sub

Comme vous pouvez le constater, nous utilisons ici la fonction Target dans laquelle la ou les cellules modifiées sont retournées :

Excel formation - saisie automatisée - 13

Le fonctionnement de la macro est alors très simple, il suffira en effet de passer en revue toutes les cellules qui se trouve dans la colonne « Rechercher » du tableau de données « dictionnaire » :

Excel formation - saisie automatisée - 14

Lorsque la valeur de la cellule analysée est égale à la valeur de la cellule retournée par la variable Target, nous insérons simplement la valeur de la cellule située juste à droite.

Pour passer en revue les cellules de la colonne « Recherche », nous allons utiliser une boucle For… Each, avec une variable que nous appelons simplement « c » et que nous typons en tant que Range (c’est-à-dire un objet dans lequel une cellule est inséré, comme la variable Target que nous avons vu un peu plus tôt) :

    Dim c As Range
    
    For Each c In [dictionnaire[Rechercher]]
        ...
    Next

Ensuite, il ne reste plus qu’à réaliser un test If… Then pour vérifier si la valeur de c est identique à celle de Target :

    For Each c In [dictionnaire[Rechercher]]
        If c = Target Then
        
        End If
    Next

Et lorsque c’est le cas, alors nous pouvons modifier la valeur de Target afin de lui affecter le contenu de la cellule située juste à droite de c (pour cela, nous utilisons l’instruction Offset, qui permet d’appliquer un décalage sur une cellule) :

        If c = Target Then
            Target = c.Offset(0, 1)
        End If

Les arguments que nous passons dans l’instruction Offset permettent de rester sur la même ligne que la cellule c (0), mais de se décaler d’une cellule vers la droite (1).

Nous pouvons maintenant tester en saisissant les première lettres d’un jour de la semaine :

Excel formation - saisie automatisée - 15

Maintenant pour ajouter de nouvelles analyses, il suffit de les saisir à la suite du tableau :

Excel formation - saisie automatisée - 16

Excel formation - saisie automatisée - 17

Excel formation - saisie automatisée - 18

Pour finir, nous allons nous assurer qu’une seule cellule a été modifiée, ce qui évitera de provoquer des bugs. En effet, la macro que nous avons mis en place ici étant très simple, elle n’est pas capable de gérer le cas dans lequel Target renverrait une plage de plusieurs cellules).

Pour cela, nous utilisons la propriété Count de l’objet Target qui renvoie le nombre de cellule contenu dans un objet Range.

Nous ajoutons donc la ligne suivante au tout début de la macro :

    If Target.Count > 1 Then Exit Sub

 

 

 



Articles qui pourraient vous intéresser

Comment créer une frise chronologique à partir d’un graphique Excel ?
27 astuces pour grands débutants sur Excel !
Suivre les matchs de l’Euro 2020 sur Excel, le fichier !
Comment mélanger une liste de manière aléatoire sur Excel ?
Comment obtenir des informations sur l’utilisateur du fichier Excel avec la fonction INFORMATIONS() ?
Faut-il utiliser les macro-commandes VBA sur Excel ?
Comment exporter une feuille dans un classeur (ouvert ou fermé) sur Excel ?
Sortez du lot : comment créer un CV moderne et impactant avec Excel
Comment ajouter une apostrophe en début de cellule sur Excel ?
Comment cacher des données dans des cellules Excel ?
Comment certifier gratuitement une macro VBA sur Excel ?
Comment remplacer un texte dans une cellule avec la fonction REMPLACER d’Excel ?

Contact - Plan du site - À propos - Contact

© Excel-Formation 2018 - Excel, simplement

Haut de la page

Excelformation.fr propose de nombreuses formations pratiques et gratuites sur Microsoft Excel : des cours pour apprendre à structurer et analyser les données, des tutos sur les fonctions avancées, les formules et les formules avancées d'Excel, les formules matricielles, les mise-en-formes conditionnelles, les graphiques Excel (xls, xlsx, xlsm,…). Des tutoriels pour apprendre à automatiser les tâches répétitives (via des macro-commandes en VBA) de vos classeurs Excel.