VBA UBound - Comment utiliser la fonction Excel VBA UBound (exemples)

Table des matières:

Anonim

Fonction Excel VBA UBound

À quelle fréquence proposez-vous une situation dans laquelle vous devez mentionner la longueur maximale ou la limite supérieure des données d'un tableau fonctionnant avec Excel? La plupart du temps, non? Et comment trouvez-vous la même chose? Peut-être manuellement la plupart du temps. Cependant, vous pouvez l'automatiser et obtenir la longueur maximale ou la limite supérieure d'un tableau à l'aide d'une fonction VBA appelée UBound.

De plus, il a la plus belle façon de boucler. Par exemple, si vous utilisez une boucle For dans votre tableau, vous vouliez certainement boucler tous les éléments du tableau. Dans ce cas, ce serait un travail fastidieux de trouver manuellement la borne supérieure et de la mentionner dans la boucle. Cela réduira également la généralité du code. Par conséquent, la fonction VBA UBound est pratique dans de tels scénarios.

UBound signifie borne supérieure et donne la limite supérieure ou la longueur maximale du tableau dans Excel VBA.

Formule pour la fonction UBound dans Excel VBA

La fonction Excel VBA UBound a la syntaxe suivante.

 UBound (Arrayname (, Dimension)) 

Où,

  • Arrayname: nom du tableau que vous avez défini. Cet argument est un argument obligatoire / obligatoire.
  • Dimension: argument facultatif qui spécifie la dimension d'un tableau. Qu'il s'agisse d'un tableau unidimensionnel, bidimensionnel ou multidimensionnel. Par défaut, il supposera le tableau unidimensionnel s'il n'est pas spécifié.

Comme cette fonction n'a que deux arguments, il devient beaucoup plus facile de se souvenir de la syntaxe de cette fonction.

Comment utiliser la fonction Excel VBA UBound?

Nous allons apprendre à utiliser une fonction VBA UBound avec quelques exemples dans Excel.

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

Exemple # 1 - VBA UBound avec un tableau unidimensionnel

Suivez les étapes ci-dessous pour utiliser la fonction UBound dans VBA.

Étape 1: Dans l' onglet Développeur, cliquez sur Visual Basic pour ouvrir l'éditeur VB.

Étape 2: Cliquez sur Insérer et sélectionnez l'onglet Module pour ajouter un nouveau module vierge à VBE.

Étape 3: dans le VBE, commencez à écrire la macro et définissez le nom de la variable.

Code:

 Sub Onedm_Ubound () Dim IndiaCity (4) As String End Sub 

Ici la variable IndiaCity est définie avec 5 éléments. Le type de variable est une chaîne.

Remarque: le tableau commence à 0 (zéro). Par conséquent, ce tableau sera composé de 5 éléments.

Étape 4: attribuez des valeurs aux éléments du tableau.

Code:

 Sub Onedm_Ubound () Dim IndiaCity (4) As String IndiaCity (0) = "Mumbai" IndiaCity (1) = "Bengaluru" IndiaCity (2) = "Hyderabad" IndiaCity (3) = "Delhi" IndiaCity (4) = "Pune "End Sub 

Ici, l'élément zéro a une valeur affectée comme «Mumbai», le premier élément a une valeur affectée comme «Bengaluru» et ainsi de suite.

Étape 5: utilisez la fonction UBound avec MsgBox pour obtenir la limite supérieure du tableau.

Code:

 Sub Onedm_Ubound () Dim IndiaCity (4) As String IndiaCity (0) = "Mumbai" IndiaCity (1) = "Bengaluru" IndiaCity (2) = "Hyderabad" IndiaCity (3) = "Delhi" IndiaCity (4) = "Pune "MsgBox" La limite supérieure de la baie est: "& UBound (IndiaCity) End Sub 

Étape 6: exécutez ce code en appuyant directement sur F5 ou en appuyant manuellement sur le bouton Exécuter dans le panneau supérieur gauche. Une boîte de message apparaîtra avec le message « La limite supérieure de la matrice est: 4 ».

Veuillez noter que la fonction UBound ne trouve pas la limite supérieure à partir des éléments de Array. Il découvre simplement le nombre maximal d'éléments que le tableau contient.

Exemple # 2 - VBA UBound avec un tableau bidimensionnel

Suivez les étapes ci-dessous pour utiliser la fonction UBound dans VBA.

Étape 1: définir une variable pouvant contenir des données bidimensionnelles.

Code:

 Sub TwoDm_UBound () Dim Array_Test (0 to 6, 1 To 8) As String End Sub 

Étape 2: Définissez un nouveau message variable et utilisez-le sous MsgBox. Cette variable nous aidera à imprimer simultanément les limites supérieures des deux dimensions.

Code:

 Sub TwoDm_UBound () Dim Array_Test (0 to 6, 1 To 8) As String Dim Message MsgBox Message End Sub 

Étape 3: Maintenant, essayez les instructions suivantes qui permettent au système d'imprimer les deux dimensions du tableau sous la même boîte de message.

Code:

 Sub TwoDm_UBound () Dim Array_Test (0 à 6, 1 à 8) As String Dim Message Message = "La limite supérieure de la première dimension est:" & UBound (Array_Test, 1) & vbCrLf Message = Message & "La limite supérieure de la deuxième dimension est : "& UBound (Array_Test, 2) & vbCrLf MsgBox Message End Sub 

Les deux instructions mentionnées dans le code ci-dessus permettent au système d'imprimer les deux dimensions dans la même boîte de message. La première instruction stocke la valeur de la limite supérieure de la première dimension dans la variable Message et termine la ligne (vbCrLf). La deuxième instruction ajoute la première valeur affectée à la variable Message et la combine avec la limite supérieure des secondes dimensions avec un message contextuel.

Comme le vbCrLf est utilisé dans les deux instructions, il fonctionne comme retour chariot / retour chariot ici dans les deux instructions.

Étape 4: exécutez le code en appuyant sur F5 ou sur le bouton Exécuter et voyez la sortie.

Sur des lignes similaires, nous pouvons aller jusqu'à plusieurs dimensions et voir la limite supérieure pour chacune d'elles.

Exemple # 3 - Fonction UBound pour mettre à jour automatiquement les données de la feuille

Supposons que vous ayez un ensemble de données comme indiqué dans la capture d'écran ci-dessous.

Ces données sont mises à jour et vous devez copier les données mises à jour de temps en temps. Maintenant, c'est vraiment un travail fastidieux de toujours vérifier les mises à jour des données, puis de les copier sur la nouvelle feuille. Cela prend aussi beaucoup de temps. Pouvons-nous essayer de l'automatiser en utilisant la fonction UBound dans VBA? Voyons voir.

Suivez les étapes ci-dessous pour mettre à jour automatiquement les données de la feuille à l'aide de la fonction VBA UBound:

Étape 1: définir une variable en créant une macro.

Code:

 Sub Ex3_UBound () Dim DataUpdate () As Sub Variant End Sub 

Étape 2: Activez la feuille de calcul qui contient vos données. Dans ce cas, le nom de la feuille est « Données ».

Code:

 Sub Ex3_UBound () Dim DataUpdate () en tant que feuilles de variantes ("Data"). Activer End Sub 

Étape 3: attribuez la plage à la variable que nous venons de créer. Nous utiliserons à cet effet la gamme de draps activés.

Code:

 Sub Ex3_UBound () Dim DataUpdate () As Sheets Variant Sheets ("Data"). Activate DataUpdate = Range ("A2", Range ("A1"). End (xlDown) .End (xlToRight)) End Sub 

Étape 4: Ajoutez une nouvelle feuille de calcul à votre Excel, où les données mises à jour peuvent être copiées et collées.

Code:

 Sub Ex3_UBound () Dim DataUpdate () As Sheets Variant Sheets ("Data"). Activate DataUpdate = Range ("A2", Range ("A1"). End (xlDown) .End (xlToRight)) Worksheets.Add End Sub 

Étape 5: Maintenant, utilisez la ligne de code ci-dessous qui permet aux données de la feuille «Données» d'être copiées et collées dans une feuille Excel nouvellement créée automatiquement.

Code:

 Sub Ex3_UBound () Dim DataUpdate () As Sheets Variant Sheets ("Data"). Activate DataUpdate = Range ("A2", Range ("A1"). End (xlDown) .End (xlToRight)) Worksheets.Add Range (ActiveCell, ActiveCell.Offset (UBound (DataUpdate, 1) - 1, UBound (DataUpdate, 2) - 1)) = DataUpdate End Sub 

Le code ci-dessus décale les cellules de la feuille «Data» jusqu'à la limite supérieure qui peut être obtenue par la fonction UBound utilisée et attribue la plage à la variable DataUpdate.

Étape 6: exécutez le code en appuyant sur F5 ou sur le bouton Exécuter et voyez la sortie.

Comme vous pouvez le voir, une nouvelle feuille a été ajoutée dans le classeur Excel où toutes les données de la feuille «Données» sont copiées automatiquement.

Ceci est un code dynamique. Ce que je veux dire en disant que c'est dynamique, bien que j'ajoute des colonnes et des lignes, il sera automatiquement copié dans une nouvelle feuille.

Étape 7: Ajoutons quelques lignes et colonnes aux données et voyons si cela fonctionne réellement.

Étape 8: Appuyez à nouveau sur le bouton Exécuter après la mise à jour de la fiche technique et voyez la magie.

Si vous pouvez le voir, une nouvelle feuille est ajoutée (colorée) et une nouvelle colonne d'âge ainsi que deux nouvelles lignes sont également ajoutées dans cette feuille. Cela signifie que, quoi que nous mettions à jour dans le fichier maître (Données), ce code copiera automatiquement tout ce qui en est et le collera dans une nouvelle feuille.

Choses dont il faut se rappeler

  • UBound donne la limite supérieure / la longueur maximale d'un tableau et non la limite supérieure des points de données présents dans un tableau.
  • Le tableau commence toujours à partir de la 0 ème position comme parallèle à la plupart des langages de programmation comme C, C ++, Python.
  • Si votre tableau est multidimensionnel, vous devez également spécifier l'argument dimension qui prend des valeurs numériques entières comme 1, 2, 3, etc. 1 signifie One-Dimension, 2 pour Two-Dimensional et ainsi de suite.

Articles recommandés

Ceci est un guide de la fonction UBA de VBA. Ici, nous discutons de l'utilisation de la fonction UBound VBA d'Excel ainsi que de quelques exemples pratiques et d'un modèle Excel téléchargeable. Vous pouvez également consulter nos autres articles suggérés -

  1. Fonction VBA Split avec des exemples
  2. Fonction majuscule Excel
  3. Match VBA
  4. Fonction CEILING dans Excel
  5. Comment utiliser les feuilles de travail VBA?