Votre adresse email ne sera pas publiée. les champs requis sont indiqués *

Désolé - je n'ai pas pensé à quoi ressemblerait le code dans le commentaire soumis. Supprimez si vous le souhaitez et je publierai à nouveau dans un meilleur format.

Quant aux commentaires sur le fait que VBA est archaïque, je l'ai trouvé vraiment utile. Cela m'a permis de transformer un processus d'une semaine dans mon équipe en un processus de 10 minutes. Cela m'a permis de réduire la plupart des activités de mon équipe en automatisant presque tout.

A pu appliquer des validations AD, extraire des données de diverses bases de données de systèmes opérationnels et réduire toutes les requêtes SQL embêtantes, puis couper et coller.

Modification d'un travail nécessitant plusieurs requêtes, générant manuellement plusieurs e-mails en un seul clic de bouton.

J'adore ça, archaïque ou pas.

J'ai trouvé quelque chose dans ce sens il y a quelque temps et j'ai développé une application basée sur Excel qui m'a permis de suivre le nombre de «J'aime» sur un ensemble de pages Facebook spécifiées. J'ai depuis étendu cela pour utiliser VBA pour obtenir toutes sortes d'informations sur divers sites Web.

Mon problème en ce moment est que j'ai des problèmes avec IE et j'ai tendance à utiliser Chrome.

Comment traduire le type de code que vous avez ci-dessus pour qu'il fasse la même chose mais en utilisant Chrome comme navigateur. Je peux utiliser une commande Shell pour ouvrir le navigateur Chrome et accéder à une URL spécifique, mais je ne sais pas comment extraire des informations de cette page.

À titre d'exemple, mon code Facebook est:

Sub GetLikes () Dim IeApp As InternetExplorerDim sURL As StringDim IeDoc As ObjectDim i As Longdebugmode = False If debugmode Then Open "c: VBAoutputvbaOutput.txt "For Append As # 1 'Create new instance of IE Set IeApp = New InternetExplorer' Rendez-le visible - certaines choses ne fonctionnent que si c'est IeApp visible. Visible = debugmode pour chaque mc dans Selection'definir la page pour ouvrir sURL = mc 'Trouver la colonne chkDate = Date Set c = Range ("2: 2"). Find (chkDate) Si c n'est rien, alors myCol = Range ("2: 2"). Find (what: = "*", searchdirection: = xlPrevious) .Column + 1 Cells (1, myCol) = "Status" Cells (1, myCol + 1) = "Likes" Cells (1, myCol + 2) = "Links" Cells (2, myCol) = chkDate Cells (2, myCol + 1) = chkDate Cells (2, myCol + 2) = chkDate Else myCol = c. Fin de colonne Si 'mc. Décalage (0, 1) .Valeur = Date isDown = mc. Décalage (0, 3) .Valeur Si isDown = "Page Down" Alors pageDown = "Page Down" numlikes = "" numlinks = "" doNothing = True Else 'accédez à la page IeApp. Navigate sURL 'Suspendre la macro en utilisant une boucle jusqu'à ce que la page soit entièrement chargée Do Loop Until IeApp. ReadyState = READYSTATE_COMPLETE 'stocke l'objet Document Set IeDoc = IeApp. Document On Error Resume Next codes = IeDoc. Body.innertext If Err. Numéro 0, puis Err. Clear GoTo skiploop End If On Error GoTo 0 If debugmode Then Write # 1, codes & vbCrLf & vbCrLf numlinks = IeDoc. Liens. Longueur a = IeApp. Débogage de LocationName. Imprimer les codes pageDown = True isPageStats = InStr (codes, "placePageStatsNumber") isGroup = InStr (codes, "uiButtonText> Join") isOldGroup = InStr (codes, "Ce groupe est prévu pour être archivé ") isOpenGroup = InStr (codes," Open Group ") isEvent = InStr (codes," Public Event ") isClosedGroup = InStr (codes," Closed Group ") IsOpen = InStr (codes, a) isCommonInterest = InStr (codes, "Intérêt commun") isMovie = InStr (codes, "Movieu003c") isNumberGiant = InStr (codes, "uiNumberGiant") notFound = InStr (codes, "La page demandée est introuvable") profileUnavailable = InStr (a, "Profile Unavailable") titlePos = InStr (codes, "") If titlePos> 0 Then titlePos2 = InStr (titlePos, codes, "") If titlePos> 0 Alors titleName = Mid (codes, titlePos + 7, titlePos2 - titlePos - 7) Si isPageStats> 0 Alors isPageStats = isPageStats + 23 pos2 = InStr (isPageStats, codes, "") pageDown = "Current" likeTxt = Mid (codes, isPageStats, pos2 - isPageStats) ElseIf isGroup> 0 Then likeTxt = "n.k." pageDown = "Group" ElseIf isOldGroup> 0 Then likeTxt = "n.k." pageDown = "Old Group" ElseIf isOpenGroup> 0 Alors pos1 = InStr (isOpenGroup, codes, "Members (") + 9 pos2 = InStr (pos1, codes, ")") numMembers = Mid (codes, pos1, pos2 - pos1) pageDown = "Open Group" likeTxt = LTrim ( numMembers) ElseIf isEvent> 0 Then pos1 = InStr (1, codes, "Help Center") pos2 = InStr (pos1 + 1, codes, "Tout voir") + 9 pos3 = InStr (pos2, codes, "Attending") - 1 Si pos3 = -1 Puis pos1 = InStr (codes, "pagelet_event_guests_going") + 28 pos2 = InStr (pos1, codes, "> Going (") + 8 pos3 = InStr (pos2, codes, ")") numAttending = Mid (codes, pos2, pos3 - pos2) Else numAttending = Mid (codes, pos2, pos3 - pos2) 'pos2 - pos1) End If likeTxt = LTrim (numAttending) pageDown = "Event" ElseIf isClosedGroup> 0 Then pageDown = "Closed Group" pos1 = InStr (isClosedGroup, codes, "Members") + 9 pos2 = InStr (pos1, codes, ")") likeTxt = Mid (codes, pos1, pos2 - pos1) ElseIf isNumberGiant> 0 Then pos2 = InStr (isNumberGiant, codes, ">") pos3 = InStr (pos2, codes, "") likeTxt = Mid (codes, pos2 + 1, pos3 - pos2 - 1) pageDown = "Current" ElseIf isCommonInterest> 0 Then pageDown = "Common Interest" likeTxt = "n.k." ElseIf IsOpen> 0 Et un "Facebook" Puis pageDown = "Actuel" likeTxt = "n.k." ElseIf isMovie> 0 Then pageDown = "Movie" likeTxt = "n.k." Fin If If pageDown = True Then pageDown = "Page Down" likeTxt = "n.a." numlinks = "n.a." Fin si Fin si mc. Décalage (0, myCol - 2) .Value = pageDown mc. Décalage (0, myCol - 1) .Value = likeTxt mc. Offset (0, myCol - 0) = numlinksskiploop: pageDown = "" likeTxt = "" numlinks = "" Next mc'Clean up IeApp. Quitter Set IeApp = Nothing If debugmode Then Close # 1 End Sub

C'est maladroit mais fait le travail.

Je suppose que tout ce que je recherche, c'est comment extraire .Body.innertext d'une instance de Google Chrome.

Comme l'a dit Jeff, non pas pour remplacer votre navigateur, mais pour l'utiliser pour une application spécifique. J'ai utilisé cette méthode deux fois.

J'appartiens à un club de loisirs local, mais vous devez également être membre du club national. J'avais l'habitude d'utiliser une requête Web Excel pour parcourir notre adhésion (par numéro d'identification de membre national) et vérifier que les membres étaient payés dans l'organisation nationale. Mais il y a quelques années, l'organisation nationale a changé la façon dont son site fonctionne et la requête Web ne fonctionnerait plus. Mais cette méthode me permet toujours de parcourir rapidement l'adhésion et de vérifier visuellement l'adhésion nationale. (J'ai intégré le navigateur dans un formulaire Excel qui affiche simultanément les informations sur les membres de notre club local.)

La semaine dernière, au travail, nous avons dû effectuer un audit de précision sur les informations contenues dans environ 10 000 images; comparer les informations capturées sur l'image aux informations connexes dans notre base de données et s'assurer qu'elles correspondent. J'avais donc besoin d'un moyen pour que les utilisateurs regardent rapidement une image, saisissent certaines informations contenues sur l'image et répètent encore et encore 10 000 fois. Nous avons mis les images sur un serveur Web et j'ai utilisé cette méthode pour extraire l'image dans une fenêtre de navigateur sur un formulaire de saisie de données Excel. Les utilisateurs verraient l'image, saisiraient les informations requises sur le formulaire de saisie de données, appuyez sur la touche Entrée et seraient instantanément dirigés vers l'image suivante pour examen.

Pour des applications comme celles que j'ai décrites ci-dessus, c'est assez pratique. Je ne vais probablement jamais prendre le temps de maîtriser un langage de programmation «plus sérieux», mais je peux assez bien enregistrer des macros et des extraits de mon chemin via VBA. L'audit de précision m'a pris moins d'une journée pour développer, tester et implémenter complètement. Je n'avais pas besoin de retirer les ressources des développeurs de leurs tâches assignées (et je doute sérieusement que l'un de nos développeurs Java ou PL-SQL aurait pu le faire plus rapidement que moi en utilisant vanilla Excel et VBA.