Excel VBA Set

«Définir» est un mot clé utilisé dans la programmation VBA pour attribuer une référence à un objet ou à une plage de cellules qui restera fixe tout au long du programme ou du code dans Excel. VBA Set nous aide essentiellement à éviter les entrées répétitives de la plage que nous devons sélectionner lors de l'exécution du code. Dans Excel, "Set" est principalement appliqué sur les feuilles de calcul / plage de cellules dans une feuille particulière.

Syntaxe:

Définir nom-objet / variable = objet / plage

Remarque: Vous devez avoir l'onglet Développeur dans la feuille de calcul Excel.

Si vous ne voyez pas l'onglet «Développeur» dans Excel, reportez-vous aux étapes ci-dessous:

Étape 1: cliquez sur Option de fichier .

Étape 2: Une liste déroulante apparaît, cliquez sur l'onglet Options .

Étape 3: Une fois que vous avez cliqué sur «Options», une boîte de dialogue apparaît comme illustré ci-dessous et cliquez sur l'option Personnaliser le ruban .

Étape 4: Lorsque nous faisons glisser vers le bas dans les options de ruban personnalisées, nous trouverons une option pour le développeur, nous devons cocher cette case qui nous permettra d'utiliser VBA dans Excel.

Comment utiliser un mot clé défini dans VBA?

Vous trouverez ci-dessous les différents exemples d'utilisation du mot clé set dans Excel VBA.

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

Ensemble VBA Excel - Exemple # 1

Nous prendrons un exemple simple d'un mot-clé Set dans Excel VBA. Supposons que nous voulions sélectionner une plage et la définir comme plage fixe afin d'éviter la répétition. Voici la plage de cellules contenant les noms:

Suivez les étapes ci-dessous pour utiliser le mot clé set dans Excel VBA:

Étape 1: Cliquez sur l'onglet «Développeur» puis cliquez sur l'option «Visual Basic» sur le côté gauche (première option) comme indiqué ci-dessous.

Une fois que vous avez cliqué dessus, une nouvelle fenêtre apparaît comme indiqué ci-dessous:

Vous remarquerez qu'il contient deux onglets sur le côté gauche, "Sheet1 (Sheet1)" et "ThisWorkbook". La seule différence est «Sheet1» lorsque vous souhaitez exécuter du code pour cette feuille particulière uniquement et dans «ThisWorkbook», nous pouvons écrire un code et l'exécuter qui peut être appliqué à l'ensemble du classeur Excel.

Étape 2: Double-cliquez sur «Sheet1 (Sheet1) et vous verrez un écran vide où nous devons écrire le code. Tout d'abord, déclarez un sous-ensemble en tant que sous- nom et appuyez sur Entrée et vous verrez un sous-ensemble créé comme indiqué ci-dessous:

Code:

 Sub setexmp () End Sub 

C'est ainsi que nous créons un sous-ensemble et automatiquement «End Sub» apparaît. C'est par défaut la fonction d'Excel. Si «End Sub» n'apparaît pas, le code ne s'exécutera pas et générera une erreur.

Étape 3: Maintenant, nous allons déclarer les variables à utiliser dans le code.

Tapez Dim nom de variable et type de variable. Ici, le nom ressemblera à l'identité de la plage et le type sera soit Integer, Long, String, Range, etc.

Code:

 Sub setexmp () Dim Rnst As Range End Sub 

Ici, "Rnst" est un nom de variable et l'assigne (As) comme fonction Range. Cela alertera le système qu'une sélection de plage serait effectuée.

Étape 4: Tapez ensuite le mot-clé "Set" et donnez une plage en utilisant le format: Set variable = Range ("cell range") .

Code:

 Sub setexmp () Dim Rnst As Range Set Rnst = Range ("A2: A11") End Sub 

Étape 5: Nous devons sélectionner cette plage de lignes spécifiée. Par conséquent, tapez select as Rnst.Select Refer Screenshot ci-dessous:

Code:

 Sub setexmp () Dim Rnst As Range Set Rnst = Range ("A2: A11") Rnst.Select End Sub 

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

Il sélectionnera la plage spécifiée qui va des cellules A2 à A11.

Ensemble VBA Excel - Exemple # 2

Supposons que nous voulions coller ces cellules ou nous situer dans une autre cellule. Nous utiliserons le même code que ci-dessus et ajouterons du code pour coller ces données dans plusieurs colonnes.

Suivez les étapes ci-dessous:

Étape 1: Maintenant, nous allons copier la plage de cellules qui est la colonne de nom. Tapez copie, c'est-à-dire «Rnst.Copy», lorsque vous tapez «Rnst.», Une sorte de liste déroulante apparaît. Il contient diverses fonctions telles que copier, coller, etc.

Étape 2: vous pouvez faire défiler vers le bas et sélectionner la fonction souhaitée que vous souhaitez effectuer. Ici, tapez simplement "Copier" comme indiqué dans la capture d'écran ci-dessous:

Code:

 Sub setexmp () Dim Rnst As Range Set Rnst = Range ("A2: A11") Rnst.Select Rnst.Copy End Sub 

Étape 3: compilez le code en appuyant sur la touche F8.

Une fois que vous exécutez cette fonction de copie, vous verrez qu'en Excel, la plage est copiée et des lignes en pointillés apparaissent autour de la plage de cellules, comme indiqué ci-dessous:

Étape 4: Maintenant, nous devons coller ces cellules, disons dans les colonnes adjacentes une par une, nous devons donc utiliser une fonction de boucle «Pour» et supposons que 5 fois nous devons coller afin de la taper comme indiqué ci-dessous:

Pour Integer i = 1 à 5 -> cela spécifie combien de fois nous devons coller les données. Si 5, puis 1 à 5, selon celui que vous préférez.

Code:

 Sub setexmp () Dim Rnst As Range Set Rnst = Range ("A2: A11") Rnst.Select Rnst.Copy For i = 1 To 5 End Sub 

Étape 5: Sélectionnez une cellule dans laquelle vous souhaitez coller cette plage de cellules. Supposons que nous voulons commencer à coller à partir de la colonne B2 puis à coller les données doivent être dynamiques, c'est-à-dire qu'elles doivent automatiquement sélectionner les colonnes adjacentes une par une sans se chevaucher. Par conséquent, la syntaxe serait «Cellule (numéro de ligne, numéro de colonne) .PasteSpecial».

Cellules (2, i + 1) .PasteSpecial, Ici, 2-> représente le numéro de ligne et, i + 1 -> représente le numéro de colonne. i + 1 signifie que la première valeur de I déclarée dans la boucle "For" est i = 1, donc la valeur de la colonne deviendra 2, elle spécifie qu'elle commence à coller à partir de la colonne B. Et au fur et à mesure que la valeur i augmente, elle continuera à sélectionner les colonnes adjacentes un par un.

Code:

 Sub setexmp () Dim Rnst As Range Set Rnst = Range ("A2: A11") Rnst.Select Rnst.Copy For i = 1 To 5 Cells (2, i + 1) .PasteSpecial xlValues ​​End Sub 

Étape 6: Tapez " Next i " ce qui signifie que vous augmentez la valeur de "i" un par un afin que le collage de colonne reste dynamique.

Code:

 Sub setexmp () Dim Rnst As Range Set Rnst = Range ("A2: A11") Rnst.Select Rnst.Copy For i = 1 To 5 Cells (2, i + 1) .PasteSpecial xlValues ​​Next i End Sub 

Étape 7: Appuyez sur "F8" pour voir le code s'exécuter ligne par ligne et vous montrera un à un les cellules des colonnes adjacentes.

Ici, vous pouvez voir la valeur de i est 1 et les données ont été collées dans la colonne B comme vous le souhaitez.

Étape 8: Maintenant, lorsque vous appuyez à nouveau sur "F8", vous verrez que maintenant la valeur de i est 2. Par conséquent, 2 + 1 deviendra 3 et les données seront collées dans la cellule (2, 3), c'est-à-dire que la valeur de la ligne est la même mais la colonne le numéro change comme indiqué dans la capture d'écran ci-dessous:

Une fois la boucle répétée terminée, vous verrez les données collées 5 fois, c'est-à-dire du compte 1 à 5, commençant à coller de la colonne B à la colonne F, comme indiqué ci-dessous:

Ensemble Excel VBA - Exemple # 3

Supposons que nous souhaitons afficher un décompte du nombre de cellules dans cette plage dans une boîte de message apparaissant en cliquant sur un bouton. Nous prendrons les mêmes données que celles indiquées ci-dessous.

De plus, nous exécuterons le code de cet exemple dans la nouvelle feuille. Par conséquent, ajoutez une nouvelle feuille et dans la fenêtre VBA, elle apparaîtra comme ci-dessous:

Nous devrons insérer une option de bouton de commande. C'est une fonctionnalité d'Excel, alors suivez les étapes ci-dessous:

Étape 1: entrez un nom de sous-ensemble, dites «Setcount ()» comme indiqué dans la capture d'écran ci-dessous:

Code:

 Sub Setcount () End Sub 

Étape 2: Déclarez la même variable «Rnct» comme plage dans le sous-ensemble, comme indiqué dans la capture d'écran ci-dessous:

Code:

 Sub Setcount () Dim Rnct As Range End Sub 

Étape 3: Tapez ensuite le mot-clé "Set" et donnez une plage.

Code:

 Sub Setcount () Dim Rnct As Range Set Rnct = Range ("A2: A11") End Sub 

Étape 4: Maintenant, après avoir fixé la plage, nous devons voir une boîte de dialogue ou une boîte de dialogue indiquant le nombre de cellules dans la plage. Par conséquent, utilisez la fonction «MsgBox» qui, lors de l'exécution, un nombre apparaîtra dans la boîte de dialogue. Tapez "MsgBox variable name.count". Le moment après avoir tapé le nom de la variable puis le point (.), Une liste déroulante apparaît contenant diverses fonctions et nous sélectionnerions «compter» ou taper manuellement «compter».

Tapez "MsgBox Rnct.count" et lors de l'exécution, il apparaîtra count.

Étape 5: Maintenant, nous voulons insérer un bouton de commande et sur un clic, sur ce bouton, cette boîte de message devrait apparaître.

Cliquez sur "Insérer" dans l'onglet "Développeur" comme mis en évidence dans la case rouge et vous verrez une liste déroulante de la catégorie "Form Controls". Cliquez sur la toute première forme de boîte rectangulaire que nous devrons dessiner et insérer manuellement dans la feuille Excel:

Étape 6: Lorsque vous cliquez sur la boîte rectangulaire, dessinez et insérez la boîte dans la feuille et une fois que vous commencez à dessiner, une boîte de dialogue apparaît comme indiqué ci-dessous. Il s'agit d'un bouton de fenêtre "Attribuer une macro" et sélectionnez la macro de sous-ensemble "Setcount". Cliquez sur "OK".

Cela signifie que nous avons attribué une macro de comptage à ce bouton. Et au clic, il s'exécutera.

Étape 7: Il apparaîtra comme indiqué ci-dessous dans Excel.

Étape 8: Faites un clic droit dessus et renommez-le en utilisant l'option " Modifier le texte " comme indiqué ci-dessous:

Étape 9: Donnez-lui un nom comme «COUNT» et vous le verrez dans Excel comme compte comme indiqué ci-dessous.

Étape 10: Cliquez ensuite sur le bouton «COUNT»: Une fois que vous avez cliqué sur le bouton «COUNT», une boîte de message apparaît comme illustré ci-dessous:

Comme nous pouvons le voir, il y a 10 noms et ont montré le bon numéro de la plage A2 à A11.

Choses dont il faut se rappeler

  • Assurez-vous que l'onglet «Développeur» est inséré dans les rubans Excel pour exécuter ces codes VBA.
  • 'Set' est principalement appliqué sur les feuilles de calcul / plage de cellules dans une feuille particulière.

Articles recommandés

Ceci est un guide pour VBA Set. Nous discutons ici de la façon d'attribuer une référence à un objet ou à une plage de cellules à l'aide d'Excel VBA Set Keyword ainsi que des exemples pratiques et un modèle Excel téléchargeable. Voici quelques articles Excel utiles liés à VBA -

  1. Fonction de concaténation VBA
  2. Tutoriels sur les jeux d'icônes Excel
  3. Travailler avec des cellules de plage dans VBA
  4. Résoudre l'équation dans Excel

Catégorie: