Intersection VBA Excel

VBA Intersection en mathématiques ou en géométrie signifie que deux ou plusieurs lignes ou zones se croisent. Le point ou la zone commun créé après cela est appelé point ou zone d'intersection. Dans Excel, nous pouvons également mettre en évidence et mesurer la zone d'intersection.

Syntaxe de la fonction d'intersection dans Excel VBA

La fonction d'intersection a la syntaxe suivante dans Excel VBA:

Comme nous pouvons le voir, Arg1 et Arg2 sont mentionnés, Range. Et le reste des arguments est entre crochets. Ce qui signifie que les deux premiers arguments doivent être sélectionnés comme Range. En d'autres termes, au moins 2 zones doivent être incluses pour trouver Intersect. Le reste des arguments peut être sélectionné en tant que plage ou il peut inclure d'autres éléments ou paramètres ainsi que par besoin. Cette syntaxe peut contenir un maximum de 30 arguments.

Comment utiliser la fonction d'intersection VBA Excel?

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

Vous pouvez télécharger ce modèle Excel d'intersection VBA ici - Modèle Excel d'intersection VBA

Intersection VBA - Exemple # 1

Dans le premier exemple, nous mettrons en surbrillance et créerons une zone d'intersection lorsque nous aurons un ensemble de données. Pour cela, nous avons des exemples de données qui ont 3 colonnes remplies de chiffres comme indiqué ci-dessous.

Maintenant, nous devons trouver la zone d'intersection d'une table de données ci-dessus à l'aide de VBA Intersect. Pour cela, suivez les étapes ci-dessous:

Étape 1: Accédez à la fenêtre VBA et ouvrez un module à partir de l'option de menu Insérer, comme indiqué ci-dessous.

Nous obtiendrons une fenêtre vierge du module.

Étape 2: Maintenant, écrivez la sous-catégorie de l'intersection VBA ou sous tout autre nom selon votre choix.

Code:

 Sub VBAIntersect1 () End Sub 

Étape 3: Insérez maintenant directement la commande Intersection comme indiqué ci-dessous.

Code:

 Sub VBAIntersect1 () Intersect (End Sub 

Comme nous avons déjà expliqué la syntaxe détaillée d'Intersect, nous allons ajouter une zone d'intersection. Nous pouvons choisir N ​​nombre de plages mais un minimum de deux plages doit être présent.

Considérons ci-dessous une zone d'intersection où la première zone va de A1 à B8, la deuxième zone est B3 à C12 et la troisième zone est A7 à C10. Nous pouvons considérer et choisir n'importe quelle combinaison d'un motif d'intersections.

Voyons maintenant à quel point (s) ces zones se rencontrent et se croisent. La zone commune créée par toutes les zones ci-dessus sera notre zone d'intersection.

Étape 4: Maintenant, dans le module VBA d'Intersect, sélectionnez la première plage de zones comme indiqué ci-dessous.

Code:

 Sub VBAIntersect1 () Intersect (Range ("A1: B8") End Sub 

Nous avons ajouté la première plage, mais notre syntaxe est encore incomplète.

Étape 5: Maintenant, insérez encore le reste des deux zones dont nous avons discuté ci-dessus séparées par des virgules.

Code:

 Sub VBAIntersect1 () Intersect (Range ("A1: B8"), Range ("B3: C12"), Range ("A7: C10")) End Sub 

Étape 6: Donnez maintenant la condition «Vrai».

Code:

 Sub VBAIntersect1 () Intersect (Range ("A1: B8"), Range ("B3: C12"), Range ("A7: C10")) = True End Sub 

Ceci complète notre code.

Étape 7: compilez maintenant le code et exécutez-le en cliquant sur le bouton Lecture situé sous la barre de menu, comme illustré ci-dessous.

Nous obtiendrons la zone commune ou la zone intersectée qui a la valeur TRUE comme indiqué ci-dessus. Bien que nous ayons obtenu la zone d'intersection, cette VRAIE a remplacé les données qui se trouvaient dans la zone d'intersection.

Étape 8: Maintenant, pour éviter de perdre cela, nous pouvons changer l'arrière-plan de la couleur, ces cellules communes en n'importe quelle couleur de notre choix. Pour cela, après la syntaxe d'Intersect, utilisez la fonction Intérieur avec la couleur comme indiqué ci-dessous.

Code:

 Sub VBAIntersect1 () Intersect (Range ("A1: B8"), Range ("B3: C12"), Range ("A7: C10")). Interior.Color = End Sub 

Étape 9: Maintenant dans VBA, nous ne pouvons pas utiliser le nom de la couleur que nous voulons utiliser directement. Pour cela, nous devons ajouter « vb » qui est utilisé pour activer les couleurs disponibles dans VBA. Maintenant, utilisez-le et ajoutez n'importe quel nom de la couleur de votre choix. Nous sélectionnons Vert ici comme indiqué ci-dessous.

Code:

 Sub VBAIntersect1 () Intersect (Range ("A1: B8"), Range ("B3: C12"), Range ("A7: C10")). Interior.Color = vbGreen End Sub 

Étape 10: Compilez à nouveau le code écrit en une seule fois car le code est assez petit et exécutez-le.

Nous verrons que la couleur de la zone intersectée est changée en vert et zone commune qui est créée par l'intersection de 3 zones différentes de B7 à B8.

Intersection VBA - Exemple # 2

Il existe une autre façon, mais tout à fait différente, d'utiliser VBA Intersect. Cette fois, nous utilisons intersecter dans une feuille de calcul spécifique. Dans la feuille Sheet2, nous avons marqué une zone de B4 à E8 comme indiqué ci-dessous.

Suivez les étapes ci-dessous:

Étape 1: dans VBA, accédez à la feuille Sheet2 du classeur actuel, comme indiqué ci-dessous.

Étape 2: Sélectionnez maintenant la feuille de calcul dans cette première option déroulante. Cela permettra au code d'être utilisé dans cette feuille actuelle uniquement.

Étape 3: Et dans la deuxième liste déroulante, sélectionnez l'option Modifier comme indiqué ci-dessous. Ceci est utilisé pour cibler les modifications effectuées dans la plage sélectionnée.

Étape 4: Nous écrirons notre code dans la première sous-catégorie uniquement.

Code:

 Sub Sub Worksheet_Change (ByVal Target As Range) End Sub 

Étape 5: Nous utiliserons la boucle If-Else pour former une condition pour la fonction d'intersection.

Code:

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

Étape 6: Sélectionnez d'abord la plage cible de B4 à E8 comme indiqué ci-dessous. Cela ciblera principalement l'intersection de la zone couverte par B4 à E8.

Code:

 Sub Sub Worksheet_Change (ByVal Target As Range) If Intersect (Target, Range ("B4: E8")) End If End Sub 

Étape 7: Et s'il n'y a rien dans la zone cible, nous devons écrire une instruction qui redirigera le code vers l'avant.

Code:

 Private Sub Worksheet_Change (ByVal Target As Range) If Intersect (Target, Range ("B4: E8")) is Nothing Then End If End Sub 

Étape 8: Et si vraiment la cible est hors de portée, nous pouvons utiliser une boîte de message avec un message d'alerte comme indiqué ci-dessous.

Code:

 Private Sub Worksheet_Change (ByVal Target As Range) If Intersect (Target, Range ("B4: E8")) is Nothing Then MsgBox "Out of Range" End If End Sub 

Étape 9: Et dans l'instruction Else où quelque chose est écrit à l'intérieur de la boîte, nous devrions obtenir un message d'invite si le contenu écrit se trouve à l'intérieur de la boîte, comme indiqué ci-dessous.

Code:

 Private Sub Worksheet_Change (ByVal Target As Range) If Intersect (Target, Range ("B4: E8")) Is Nothing Then MsgBox "Out of Range" Else MsgBox "Within Range" End If End Sub 

Étape 10: compilez maintenant chaque étape du code écrit et fermez la feuille de calcul de VBA. Comme nous avons écrit le code spécifique à la feuille, il fonctionnera de la même manière.

Étape 11: Maintenant, écrivez quelque chose dans la boîte.

Comme nous pouvons le voir, nous avons écrit 2 dans la cellule C5 à l'intérieur de la boîte, nous avons reçu le message ou « Dans la plage ».

Étape 12: Encore une fois, écrivez quelque chose hors de la boîte. Nous avons écrit 1 dans la cellule B10 et nous avons reçu le message «Hors de portée» comme indiqué ci-dessous.

C'est une autre façon d'utiliser Intersect dans Excel VBA.

Avantages d'Excel VBA Intersect

  • Il est très facile de mettre en évidence au moins la zone qui coupe par le processus de l'exemple-1.
  • C'est très utile lorsque nous devons filtrer ou travailler sur ce type de données qui se croisent à partir d'une zone différente telle que Dates, Propriétaire, etc.

Choses dont il faut se rappeler

  • N'oubliez pas d'enregistrer le fichier au format Macro Enable Excel, afin que le code fonctionne à chaque utilisation.
  • En écrivant du code dans Sheet au lieu du module comme indiqué dans l'exemple-2, rendez le code applicable uniquement pour cette feuille. Ce code ne fonctionnera sur aucune autre feuille.
  • L'utilisation de la plage cible comme illustré dans l'exemple-2 est utile pour spécifier la zone à atteindre.

Articles recommandés

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

  1. Exemples sur les boucles VBA
  2. Excel COLUMN à Number
  3. VBA faire jusqu'à la boucle
  4. Créer un budget dans Excel

Catégorie: