Excel VBA GetObject

VBA GetObject, comme son nom, semble que nous devons créer un code pour obtenir ou créer un objet. Mais en fait, c'est le processus pour obtenir les tables de n'importe quel mot dans un fichier Excel. Dans VBA GetObject, nous récupérons les données d'un fichier Word en plaçant l'emplacement où elles sont conservées et en ajoutant n'importe quel nombre de tableaux de ce mot dans la feuille Excel.

Syntaxe de VBA GetObject

La syntaxe est expliquée comme indiqué ci-dessous:

  • PathName = Ici, nous allons donner le chemin vers le document Word où il est conservé. Ce champ est facultatif.
  • Class = Ici, nous devons définir la fonction Class of Object. Celui-ci est trop facultatif. Mais si nous ne définissons pas le PathName dans la syntaxe, alors Class devra être défini.

Les deux arguments de la syntaxe sont facultatifs. Mais chacun d'entre eux doit être défini.

Ici, nous utiliserons appname.objecttype pour définir la classe. AppName sera l'application ou le type de fichier à partir duquel nous allons récupérer les données et Objecttype sera le type d'application de fichier que nous utiliserons.

Exemple de fonction GetObject dans Excel VBA

Nous verrons comment récupérer les données sous forme de tableau dans un document Word et ajouter ces données dans la feuille de calcul Excel.

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

Pour cela, nous avons besoin de ces données dans un fichier Word. Ici, nous avons un fichier Word ci-dessous, qui contient 2 tables de nom d'employé et d'ID d'employé.

Nous avons enregistré ce fichier quelque part dans notre lecteur local qui est facile d'accès. Suivez les étapes ci-dessous pour utiliser la fonction GetObject dans Excel VBA.

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

Étape 2: Dans le module nouvellement ouvert, écrivez la sous-catégorie de VBA GetObject ou vous pouvez choisir n'importe quel autre nom selon les besoins.

Étape 3: Tout d'abord, définissez la variable 2 Object pour accéder à l'objet préparé par VBA GetObject.

Étape 4: Nous aurions besoin d'une autre variable pour laquelle nous enregistrerons l'emplacement du fichier sous forme de chaîne.

Étape 5: Pour éviter toute interruption en cas d'erreur, nous continuerons à passer à l'étape suivante.

Étape 6: Maintenant, nous utiliserions la fonction GetObject et la définirions comme objet WordFile . En gardant le chemin vide, nous définirons la classe comme Word.Application où Word est l'application de Microsoft.

Étape 7: Pour éviter l'erreur numéro 429 qui se produit généralement dans ce cas, nous l'effacerons au fur et à mesure.

Étape 8: Rendez maintenant visible la variable objet créée WordFile .

Étape 9: Comme nous n'avons pas défini le chemin, nous allons donc attribuer l'emplacement du fichier à StrDoc avec l'extension.

Étape 10: Si nous n'avons rien trouvé dans le fichier Word, nous devrions recevoir un message vous invitant à indiquer «Aucune donnée disponible» ou «Document introuvable». Et cela se ferait dans la boucle If-End If.

Étape 11: Activez maintenant le fichier Word.

Étape 12: Suivez également la même procédure pour configurer WordDoc. Si WordDoc n'est rien, nous ouvrirons le fichier à partir de l'emplacement où il est conservé.

Étape 13: Maintenant, nous devrons définir les variables qui aideront à accéder au tableau à partir du document Word. Par cela, nous allons créer une table avec des lignes et des colonnes.

Étape 14: Comme nous le savons tous, le sommet des cellules est bidimensionnel. Donc, à partir de la 1ère cellule, nous aurions besoin de 2 variables où nous définirons l'emplacement à partir duquel nous devons commencer notre table dans Excel. Ici, nous avons considéré cette position en (1, 1) qui est à la 1ère cellule de la feuille.

Étape 15: À ce stade, nous devons vérifier le nombre de tables dans le fichier Word. Et s'il n'y a pas de tables trouvées, nous devrions recevoir le message pour cela.

Étape 16: Dans cette étape, nous devons accéder au tableau à partir du document Word et le mapper dans un fichier Excel. Pour cela, nous utiliserons la boucle For pour chaque ligne et colonne.

Étape 17: Enfin, nous quitterons le document une fois qu'il ajoutera les données du mot au fichier Excel sans enregistrer le fichier.

Étape 18: Maintenant, exécutez le code ci-dessus en appuyant sur la touche F5 ou en cliquant sur le bouton Lecture.

Nous verrons, les données que nous avons vues au début de l'article qui étaient séparées dans 2 tableaux différents, sont maintenant annexées dans un seul tableau dans la feuille Excel.

Voici le code complet en une seule séquence:

Code:

 Sub VBA_GetObject () Dim WordFile As Object Dim WordDoc As Object Dim StrDoc As String On Error Resume Next Set WordFile = GetObject (, "Word.Application") If Err.Number = 429 Then Err.Clear Set WordFile = CreateObject ("Word. Application ") End If WordFile.Visible = True StrDoc =" D: \ Input \ Test.docx "If Dir (StrDoc) =" "Then MsgBox StrDoc & vbCrLf &" Introuvable dans le chemin indiqué "& vbCrLf &" C: \ Emplacement d'entrée ", vbExclamation, " Nom du document introuvable "Quitter sous-extrémité si WordFile.Activate Définir WordDoc = WordFile.Documents (StrDoc) Si WordDoc n'est rien, définir WordDoc = WordFile.Documents.Open (" D: \ Input \ Test. docx ") WordDoc.Activate Dim Tble As Integer Dim RowWord As Long Dim ColWord As Integer Dim A As Long Dim B As Long A = 1 B = 1 With WordDoc Tble = WordDoc.Tables.Count If Tble = 0 Then MsgBox" No Tables Avaiable ", vbExclamation, " Nothing To Import "Exit Sub End If For i = 1 To Tble With .Tables (i) For RowWord = 1 To .Rows.Count For ColWord = 1 To .Columns.Count Cells (A, B) = WorksheetFunctio n.Clean (.cell (RowWord, ColWord) .Range.Text) B = B + 1 ColWord suivant B = 1 A = A + 1 Next RowWord Fin avec Next End avec WordDoc.Close Savechanges: = False WordFile.Quit Set WordDoc = Nothing Set WordFile = Nothing End Sub 

Avantages d'Excel VBA GetObject

  • Il est très utile pour importer le grand ensemble de données du fichier Word vers le fichier Excel.
  • Nous pouvons importer n'importe quel type de données à partir de n'importe quel type de fichier simplement en changeant l'extension de celui-ci.

Choses dont il faut se rappeler

  • Fermez tous les fichiers Word avant d'exécuter le code.
  • Donnez l'extension appropriée au fichier utilisé.
  • GetObject ne peut pas être utilisé pour accéder à la référence à la classe.

Articles recommandés

Ceci est un guide de VBA GetObject. Nous expliquons ici comment utiliser la fonction GetObject dans VBA pour récupérer les données d'un fichier Word dans la feuille Excel avec un exemple pratique et un modèle Excel téléchargeable. Vous pouvez également consulter nos autres articles suggérés -

  1. VBA GetOpenFileName
  2. Tableau de bord KPI dans Excel
  3. VBA Workbook Open
  4. Nombre de mots Excel
  5. Excel VBA en cas de reprise d'erreur

Catégorie: