INVERSER DEUX CELLULES EN 1 CLIC (INTERVERTIR LES VALEURS) SUR EXCEL
Dans ce tutoriel, je vais vous montrer comment inverser deux cellules sur Excel. Nous y découvrirons trois méthodes. Dans la première nous intervertirons complétement l’entièreté des cellules. La seconde méthode va nous permettre de n’intervertir que leur contenu, c’est-à-dire leur valeur. Et enfin, avec la troisième et dernière méthode, nous allons pouvoir intervertir ces valeurs, en un seul clic !
Téléchargement
Vous pouvez télécharger le fichier d'exemple de cet article en cliquant sur le lien suivant :
Tutoriel Vidéo
1. Présentation
Pour illustrer ce tutoriel, dans lequel nous allons souhaiter inverser deux cellules, nous allons partir de la feuille de calcul suivante :
Dans celle-ci, nous retrouvons les menus servis lors du déjeuner d’une cantine pour chaque jour de la semaine.
2. Inverser des cellules à la main
Pour inverser des cellules, nous allons devoir passer par une cellule tampon, qui va permettre de stocker une cellule en attendant pendant que nous allons déplacer les cellules.
Voici le mode opératoire :
- Pour commencer, nous sélectionnons la première des cellules que nous souhaitons inverser, puis nous plaçons le curseur sur l’une des bordures de celle-ci :
- Lorsque le curseur de la souris prend la forme d’une croix avec des flèches sur chacune des extrémités, nous pouvons simplement déplacer le curseur pour déplacer la cellule :
- Lorsque nous relâchons le curseur, la cellule est déplacée !
- Ensuite, nous répétons l’opération pour insérer la nouvelle cellule dans l’espace nouvelle créé :
- Et enfin de remettre la première cellule :
Cette méthode permet de réaliser l’opération voulue.
En revanche, comme nous pouvons le constater, celle-ci déplace également la mise en forme des cellules !
3. Inverser seulement les valeurs
Voyons maintenant comment faire pour ne déplacer que les valeurs, sans toucher à la mise en forme des cellules.
Ici, plutôt que de simplement déplacer les cellules comme nous l’avons vu juste avant, nous allons utiliser une méthode de collage spécial.
Voici comment nous allons opérer pour réaliser cette opération :
- Tout d’abord nous sélectionnons l’une des deux cellules, que nous copions en utilisant soit le menu Accueil du Ruban, soit la combinaison de touches [Ctrl]+[c] :
- Puis comme sur la méthode précédente, nous choisissons une cellule neutre (qui n’est pas incluse dans le tableau). Nous sélectionnons cette cellule :
- Ensuite, nous effectuons un clic-droit afin de choisir « Collage spécial… » :
- Ensuite, dans la fenêtre qui s’affiche, nous choisissons simplement d’effectuer un collage des valeurs et nous validons avec le bouton [OK] :
- Notez qu’il est également possible d’utiliser le raccourci du clic-droit pour effectuer plus rapidement le collage spécial. Pour cela, une fois la cellule copiée, utilisez simplement l’icône suivante (la seconde dans la ligne des collages spéciaux) :
- Puis nous répétons l’opération afin de copier la valeur de l’autre cellule sur laquelle nous désirons effectuer l’inversion :
- Et enfin, nous terminons l’inversion de cellule en répétant l’opération entre la valeur de la cellule tampon et la cellule initiale
4. Inverser les valeurs en 1 clic seulement
Vous trouvez ces manipulations complexes à mettre en place ?
Voyons maintenant comment réaliser la même opération en un seul clic !
Pour cela, nous allons bien évidemment devoir mettre développer une tout petite macro commande en VBA.
Je sais que le VBA peut être effrayant lorsque nous ne le connaissons pas, mais pas de panique, nous allons évidemment détailler toutes les opérations dans ce tutoriel.
Et bien entendu, si vous souhaitez en savoir davantage sur VBA, je vous invite à consulter la formation totalement gratuite disponible sur excelformation.fr en suivant ce lien.
Pour commencer, nous allons insérer un bouton sur la page qui nous permettra de réaliser l’opération en effectuant un simple clic sur celui-ci.
Pour cela, rendez-vous dans le menu Insertion du Ruban, dans le groupe Illustrations, cliquez sur le bouton Formes afin de dérouler le menu déroulant pour choisir la forme du bouton désirée :
Ensuite, il suffit de dessiner la forme sur la feuille de calcul :
Cela étant fait, nous pouvons personnaliser l’apparence du bouton en déroulant le menu déroulant Style du menu Mise en Forme (attention, ce menu n’apparaitra que lorsque le bouton sera sélectionné) :
Ensuite, nous effectuons un clic-droit sur le bouton afin d’insérer un texte dans celui-ci (choisir l’option « Modifier le texte ») :
Une fois le bouton correctement inséré, nous allons pouvoir entrer dans le vif du sujet en affectant une macro qui va se lancer lorsque nous cliquerons dessus.
Pour cela, nous effectuons un nouveau clic-droit > Affecter une macro…
Dans la nouvelle fenêtre, nous donnons un nom à cette macro, puis nous validons son insertion en cliquant sur le bouton [Nouvelle] :
Excel va alors lancer VBE qui est le programme dans lequel nous allons pouvoir saisir la macro.
Comme nous pouvons le constater, un nouveau module a également été inséré (sous le nom de Module1) et la macro a été ajoutée.
Comme vous pouvez vous en douter c’est bien cette macro qui va être lancée lorsque nous cliquerons sur le bouton.
Commençons maintenant le développement de la macro.
Tout d’abord, nous allons vouloir effectuer un test afin de contrôler que l’utilisateur a bien choisi deux cellules (et deux seulement) afin d’en effectuer l’inversion.
Pour cela nous allons utiliser l’instruction Selection.Count qui permet de récupérer le nombre de cellules sélectionnées.
Nous allons également mettre en place un test IF qui permet, à l’instar de la fonction SI() d’Excel d’effectuer une action donnée que si une condition est effectivement remplie.
Voici le code :
Sub inverserCellules() If Selection.Count = 2 Then
End If
End Sub
Comme vous pouvez le constater, le test IF se termine par la ligne « End If ».
Tout le code saisi entre ces deux lignes ne sera exécuté que si l’utilisateur a sélectionné deux cellules.
Ensuite, nous allons suivre la méthode vue au début de ces tutoriel, sauf que nous n’allons pas utiliser une cellule tampon, mais nous allons plutôt stocker la valeur de la cellule dans une variable.
Pour cela, nous commençons par déclarer cette variable grâce au mot clé « Dim » et nous lui donnons le Type String, c’est-à-dire une chaîne de caractère :
Dim valeur As String
Nous affectons maintenant la valeur de la première cellule sélectionnée à cette variable :
valeur = Selection(0).Value
Puis nous inversons les valeurs des autres cellules :
Selection(0).value = Selection(1).Value
En enfin, nous affectons la valeur de la variable tampon à la première cellule :
Et voilà, c’est tout !
Ensuite pour tester, il suffit de sélectionner deux cellules de la feuille de calcul :
Puis d’appuyer sur le bouton :
Dans cet exemple, nous avons supposé que les cellules supposées étaient adjacentes.
Les choses se compliquent légèrement lorsque cela n’est pas le cas.
Nous allons en effet dans ce cas devoir modifier le code pour prendre en charge la gestion des zones de sélection (Selection.Areas).
Pour commencer nous insérons un deuxième test pour contrôler le nombre de zones sélectionnées (chaque sélection qui n’est pas collée à une autre est considéré comme une zone) :
If Selection.Areas.Count = 1 Then
valeur = Selection(1).Value
Selection(1).Value = Selection(2).Value
Selection(2).Value = valeur
Else
valeur = Selection.Areas(1).Value
Selection.Areas(1).Value = Selection.Areas(2).Value
Selection.Areas(2).Value = valeur
End If
Lorsque la sélection n’est composée que d’une seule zone alors nous pouvons utiliser le code vu juste avant.
Dans le cas contraire, alors nous inversons les valeurs contenues dans chaque zone (en sachant que seules deux cellules sont sélectionnées, soit une par zone)
Pour sélectionner deux cellules non adjacentes, appuyez simplement sur la touche [Ctrl] :
Petite astuce, dans note fichier de test, cette macro va nous permettre d’aller puiser facilement des plats dans la réserve afin de les insérer dans les menus de la semaine :
5. BONUS : inverser le contenu et le format de deux celluls
Maintenant, si nous souhaitons inverser l'ensemble de deux cellules, c'est-à-dire la valeur comme nous venons de le voir, mais également le format de celles-ci, nous allons devoir utiliser une méthode un petit peu différente.
Pour cela, nous allons en effet utiliser une cellule tampon qui permettra d'enregistrer l'ensemble des paramètres d'une cellule, que nous supprimerons ensuite :
...
' Sauvegarde des cellules
Selection(1).Copy [z1]
Selection(2).Copy Selection(1)
[z1].Copy Selection(2)
' Suppression du contenu et d
[z1].Delete
...