Fonction de jointure Excel VBA

La fonction VBA JOIN est utilisée pour réunir un tableau de sous-chaînes avec le délimiteur spécifié. Tout comme le mot lui-même signifie qu'il doit joindre deux chaînes ou plus. Maintenant, voici quelques captures avec elle. Les chaînes sont dans un tableau et il utilise également un délimiteur comme fonction de concaténation. Mais le délimiteur de la fonction de concaténation peut être différent entre deux chaînes car nous devons fournir un délimiteur entre deux chaînes à l'aide de la fonction de concaténation. Mais dans Join in VBA, nous devons fournir le délimiteur une seule fois. Ce délimiteur est utilisé pour chaque chaîne à joindre. Mais ce paramètre est également facultatif. Alors, que se passe-t-il lorsque nous ne fournissons pas de délimiteur à la fonction? Lorsque nous ne fournissons aucun délimiteur à la fonction, il prend par défaut «espace» comme délimiteur.

Syntaxe de la fonction de jointure dans Excel VBA

La fonction de jointure a la syntaxe suivante dans Excel VBA:

Maintenant, comprenons les arguments de la fonction VBA Join,

  • Tableau source: il s'agit d'un tableau ou d'un ensemble de chaînes que nous voulons réunir.
  • Délimiteur: il s'agit du délimiteur ou du caractère que nous utilisons pour différencier une chaîne d'une autre. Un délimiteur peut être un espace ou une virgule ou un point ou n'importe quel caractère de notre ordinateur.

La sortie renvoyée par cette fonction est une chaîne.

Comment utiliser la fonction de jointure Excel VBA?

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

Vous pouvez télécharger ce modèle VBA Join Excel ici - VBA Join Excel Template

Jointure VBA Excel - Exemple # 1

Commençons d'abord par un exemple de base. Nous avons un chemin d'un fichier stocké dans différentes cellules de notre feuille de calcul dans la feuille 1. Nous voulons un chemin total vers cet emplacement dans une autre cellule. Le chemin qui doit être joint est le suivant,

Nous voulons le chemin dans la cellule E2. Suivez les étapes ci-dessous pour utiliser la fonction Join dans Excel VBA.

Étape 1: Accédez à l'onglet développeur puis cliquez sur Visual Basic pour pouvoir accéder à VB Editor.

Étape 2: Cliquez sur l'onglet d'insertion et insérez un module dans le projet VBA.

Étape 3: Maintenant, déclarons notre première sous-procédure comme suit.

Code:

 Sous-exemple () End Sub 

Étape 4: Puisque nous avons les données avec nous, nous pouvons simplement utiliser la valeur de la propriété range pour joindre le chemin comme suit.

Code:

 Sous-exemple () Plage ("E2"). Valeur = End Sub 

Étape 5: utilisez la fonction Join pour joindre toutes les chaînes avec le délimiteur en tant que «\».

Code:

 Sous-exemple () Range ("E2"). Value = Join (Array (Range ("A2"). Value, Range ("B2"). Value, Range ("C2"). Value, Range ("D2") .Value), "\") End Sub 

Étape 6: Exécutez le code ci-dessus en appuyant sur la touche F5 ou en cliquant sur le bouton Exécuter et nous aurons notre résultat dans la cellule E2 comme indiqué ci-dessous.

Nous pouvons voir que les quatre chaînes sont jointes avec un délimiteur commun qui est «\».

Jointure VBA Excel - Exemple # 2

Allons de l'avant avec un exemple pratique. J'ai le nom de l'étudiant, ses notes et réussite ou échec sur une seule feuille. Nous voulons créer un dossier séparé avec des fichiers contenant si l'étudiant a réussi ou échoué ou a été honoré. Pour cela, nous emprunterons certains des concepts de FSO (File System Objects) en utilisant la fonction join. Eh bien, les données ressemblent à celles ci-dessous.

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

Étape 1: Dans le même module, commençons une autre sous-procédure comme suit.

Code:

 Sub Example2 () End Sub 

Étape 2: Déclarez deux variables comme FSO et textstream qui est une méthode de FSO comme suit.

Code:

 Dim FSO As New Scripting.FileSystemObject Dim St As Scripting.TextStream 

Étape 3: Maintenant, déclarons quelques variables supplémentaires, une en tant que plage pour contenir les lignes et une autre en tant qu'entier pour contenir les colonnes tandis qu'une autre en tant que chaîne pour stocker la valeur de chaîne jointe et le chemin du dossier et une pour créer les noms de fichiers.

Code:

 Dim rw As Range Dim res As String Dim col As Integer Dim FolPath As String Dim Result As String 

Étape 4: Puisque nous avons les données dans la feuille 2, activons d'abord la feuille 2.

Code:

 Feuilles de calcul ("Sheet2"). Activer 

Étape 5: Comptons maintenant le nombre de colonnes que nous avons dans les données comme suit,

Code:

 col = Range ("A1"). CurrentRegion.Columns.Count 

Étape 6: Maintenant, attribuons un chemin au Folpath en utilisant la fonction d'information ENVIRON comme suit.

Code:

 FolPath = Environ ("UserProfile") & "\ Desktop \ Result" 

Étape 7: Maintenant, vérifions si le dossier existe ou non et si ce n'est pas le cas, créons-en un à l'aide de la méthode FSO comme suit.

Code:

 Sinon FSO.FolderExists (FolPath) Alors FSO.CreateFolder FolPath 

Étape 8: Ajoutons maintenant les noms stockés à l'aide de la fonction de décalage comme suit.

Code:

 Pour chaque rw In Range ("A2", Range ("A1"). End (xlDown)) Resultat = rw.Offset (0, 1) .Value 

Cela ouvrira les fichiers avec des noms simultanément en mode ajout où les nouvelles valeurs seront les dernières à ajouter. Nous avons utilisé le code ci-dessus pour que la valeur du résultat soit affectée une par une.

Étape 9: Maintenant que la fonction Join utilise un tableau 1D, nous utiliserons la fonction application.transpose avec la fonction Join pour la convertir en un tableau 1D comme suit.

Code:

 Définir St = FSO.OpenTextFile (FolPath & "\" & Result & ".xls", ForAppending, True) res = Join (Application.Transpose (Application.Transpose (rw.Resize (1, col) .Value)), vbTab ) St.WriteLine res 

Pourquoi avons-nous utilisé application.transpose? Parce qu'en général, la plage du tableau (1-D) doit être horizontale, ce qui signifie qu'une ligne a plusieurs colonnes. Maintenant que nous avons une plage verticale ici dans la colonne B qui est le résultat, nous avons utilisé cette fonction de transposition pour la convertir en un tableau 1-D. Nous avons utilisé VbTab comme délimiteur afin que les valeurs soient dans les cellules suivantes.

Étape 10: Avant de terminer la boucle for, fermons le fichier, puis terminons la boucle for comme suit.

Le code global ressemble à celui ci-dessous.

Code:

 Sub Example2 () Dim FSO As New Scripting.FileSystemObject Dim St As Scripting.TextStream Dim rw As Range Dim res As String Dim col As Integer Dim FolPath As String Dim Result As String String Sheets ("Sheet2"). Activate col = Range (" A1 "). CurrentRegion.Columns.Count FolPath = Environ (" UserProfile ") &" \ Desktop \ Result "Sinon FSO.FolderExists (FolPath) Alors FSO.CreateFolder FolPath pour chaque rw In Range (" A2 ", Range (" A1 "). End (xlDown)) Résultat = rw.Offset (0, 1) .Value Set St = FSO.OpenTextFile (FolPath &" \ "& Result &" .xls ", ForAppending, True) res = Join (Application .Transpose (Application.Transpose (rw.Resize (1, col) .Value)), vbTab) St.WriteLine res St.Close Next rw End Sub 

Étape 11: Maintenant, exécutons le code ci-dessus en appuyant sur la touche F5, nous pouvons voir sur notre bureau qu'un dossier a été créé avec le nom de Result comme indiqué ci-dessous.

Étape 12: Ouvrez le dossier, nous aurons trois fichiers comme Pass, Fail et Grace.

Si nous ouvrons l'un des fichiers, disons simplement que nous ouvrons le fichier Fail, nous pouvons voir les données des étudiants qui ont échoué.

Choses dont il faut se rappeler

  • Il est utilisé pour joindre un tableau de chaînes avec un délimiteur commun.
  • La sortie renvoyée par cette fonction est String.
  • Il est opposé à la fonction Split dans VBA.
  • Si nous ne fournissons pas de délimiteur à cette fonction, elle prend par défaut «espace» comme délimiteur.
  • Le tableau dans l'argument doit être un tableau unidimensionnel. Sinon, nous pouvons utiliser les méthodes conventionnelles d'application.transposer comme expliqué dans l'exemple 2.

Articles recommandés

Ceci est un guide de la fonction de jointure VBA. Ici, nous discutons de l'utilisation de la fonction Join dans Excel à l'aide du code VBA ainsi que des exemples pratiques et un modèle Excel téléchargeable. Vous pouvez également consulter nos autres articles suggérés -

  1. Fonction de date Excel
  2. Concaténer des chaînes dans Excel
  3. Applications de VBA Union
  4. Colonnes de concaténation Excel

Catégorie: