VBA XLUP

Excel VBA XLUP

Une chose que vous devez garder à l'esprit lors de l'écriture du code VBA est ce que vous faites avec la feuille de calcul standard et vous pouvez également répliquer la même chose dans VBA. Un de ces mots-clés dans le codage VBA est «XLUP», dans cet article, nous allons vous montrer ce que ce mot-clé est dans le codage VBA et comment l'utiliser dans le codage.

Comment utiliser VBA XLUP dans le codage?

Voici les exemples d'Excel VBA XLUP.

Vous pouvez télécharger ce modèle Excel VBA XLUP ici - Modèle Excel VBA XLUP

Exemple # 1 - Déplacer les cellules vers la position supprimée des cellules

Par exemple, regardez le scénario des données ci-dessous, où vous devez supprimer ces données de cellules colorées et plus les données des lignes ci-dessous vers les données ci-dessus.

Une façon de supprimer cela dans la feuille de calcul consiste à sélectionner les cellules dans lesquelles nous pouvons simplement supprimer la ligne entière elle-même. Mais ici, les situations sont un peu délicates car j'ai des cellules colorées dans le tableau 1 lorsque nous supprimons la ligne entière, même les lignes du tableau 2 sont également supprimées, mais nous ne voulons pas que cela se produise à la place, nous devons uniquement supprimer les lignes colorées et les cellules ci-dessous doivent se déplacer la position des cellules supprimées.

Tout d'abord, sélectionnez les cellules colorées et appuyez sur Ctrl + Symbole moins (-) pour ouvrir l'option «Supprimer».

Touche de raccourci pour ouvrir l'option «Supprimer»

Dans la fenêtre des options «supprimer», nous avons quatre options, nous pouvons choisir l'action selon nos besoins. Puisque nous devons déplacer nos cellules vers le haut pour ces cellules supprimées, choisissez «Shift Cell Up».

Nous aurons les lignes du tableau 2 inchangées.

Cette action dans VBA nécessite l'utilisation de la propriété «XLUP» pour effectuer un ensemble d'actions similaire dans VBA. Maintenant, venez dans la fenêtre de l'éditeur VBA et démarrez le nom de votre macro.

Code:

 Sub XLUP_Example () End Sub 

Fournissez d'abord la plage de cellules à inclure dans cette opération. Dans cette action, les premières cellules à supprimer et à remonter sont les cellules «A5: B5».

Code:

 Sub XLUP_Example () Range ("A5: B5") End Sub 

Pour cette plage de cellules, sélectionnez la méthode «Supprimer».

Code:

 Sub XLUP_Example () Range ("A5: B5"). Delete End Sub 

Comme vous pouvez le voir pour la méthode «Delete», nous avons un argument optionnel comme [Shift], pour cet argument, nous devons entrer l'argument comme «XLUP».

Code:

 Sub XLUP_Example () Range ("A5: B5"). Delete shift: = xlUp End Sub 

Vous pouvez maintenant exécuter ce code manuellement ou via la touche de raccourci Excel F5, pour voir le résultat.

Comme vous pouvez le voir dans le tableau 1, nous avons la ligne numéro 6 déplacée vers la 5ème ligne et d'autre part la table, 2 lignes (colorées) n'est pas modifiée, donc en utilisant l'option «VBA XLUP», nous pouvons faire cette opération.

Exemple # 2 - Trouver la dernière ligne utilisée en utilisant XLUP

Imaginez une situation où vous êtes dans la cellule A20 (regardez l'image ci-dessous) et votre dernière cellule utilisée est A14.

Maintenant, si vous voulez choisir la dernière cellule utilisée (A14). comment ferez-vous en utilisant une touche de raccourci ???

Nous utiliserions Ctrl + Flèche vers le haut pour passer à la dernière cellule utilisée à partir de la position actuelle.

Touche de raccourci pour accéder à la dernière cellule utilisée 

Ainsi, à partir de la cellule actuelle, Ctrl + Flèche vers le haut a sélectionné la dernière cellule utilisée. De même, dans le codage VBA, nous utilisons END (XLUP) pour effectuer la même chose.

Revenez maintenant à la fenêtre de codage VBA.

Dans cette fenêtre, nous effectuerons la tâche de recherche de la dernière ligne utilisée dans la feuille de calcul. Créez une nouvelle sous-procédure dans la fenêtre VBA.

Code:

 Sub XLUP_Example1 () End Sub 

Pour stocker le dernier numéro de ligne utilisé. définissez la variable comme le type de données VBA LONG.

Code:

 Sub XLUP_Example1 () Dim Last_Row_Number As Long End Sub 

Maintenant, pour cette variable, nous allons affecter le dernier numéro de ligne utilisé.

Code:

 Sub XLUP_Example1 () Dim Last_Row_Number As Long Last_Row_Number = End Sub 

Utilisez maintenant l'objet RANGE et ouvrez cet objet.

Code:

 Sub XLUP_Example1 () Dim Last_Row_Number As Long Last_Row_Number = Range (End Sub 

Mentionnez maintenant la cellule active (A20) pour l' objet RANGE .

Code:

 Sub XLUP_Example1 () Dim Last_Row_Number As Long Range ("A14"). Sélectionnez Last_Row_Number = Range ("A20") End Sub 

Maintenant, ouvrez la propriété END pour la cellule de plage fournie.

Code:

 Sub XLUP_Example1() Dim Last_Row_Number As Long Range("A14").Select Last_Row_Number = Range("A20").End( End Sub 

As you can see above, we have to arrow key options like “xlDown”, “xlToLeft”, “xlToRight”, “xlUp”. Since we are moving up from the A14 cell choose the “VBA XLUP” option.

Code:

 Sub XLUP_Example1() Dim Last_Row_Number As Long Range("A14").Select Last_Row_Number = Range("A20").End(xlUp) End Sub 

After moving up from A14 cell we need to mention what we need to do since we need the last used row number I will use ROW property.

Code:

 Sub XLUP_Example1() Dim Last_Row_Number As Long Range("A14").Select Last_Row_Number = Range("A20").End(xlUp).Row End Sub 

Now for the message box assign the value of variable “Last_Row_Number”.

Code:

 Sub XLUP_Example1()  Dim Last_Row_Number As Long Range("A14").Select Last_Row_Number = Range("A20").End(xlUp).Row MsgBox Last_Row_Number End Sub 

Now you can run this code manually or through shortcut key F5, to see the result.

So message box showing the last used row number as 14, so our last data used row number is A14 cell.

In this case, since data is very small we started from A20 cell but when the data is large we cannot say which cell to take into consideration first, in such cases we need to employ a different technique.

We need to use CELLS property, below is the example of the same.

Code:

 Sub XLUP_Example2() Dim Last_Row_Number As Long Last_Row_Number = Cells(Rows.Count, 1).End(xlUp).Row MsgBox Last_Row_Number End Sub 

Now you can run this code manually or through shortcut key F5, to see the result.

Instead of a RANGE object, I have used CELLS property. Let me explain this in detail to you.

ROW.COUNT this will count how many rows are there in column 1. What this will do is it will take into consideration of the last cell in the worksheet instead of random cell address, in the above case we have used A14 as the random cell address.

Things to Remember about VBA XLUP

  • XLUP is the word used in VBA code to replicate the action of the “Up Arrow” key in excel.
  • VBA XLUP is used to move from active cells to the above cell or last used cell.
  • XLUP is generally used along with END property in VBA.