Vba excel Challenge, Aller cherché des liens

Bonjour,
Voila depuis un moment je m'arrache les cheveux pour allez cherché des liens qui sont dans un tableau sur un site pour après les mettres dans excel.
Classé dans le meme ordre...

Quelqu'un n'aurait pas un ptit script simple pour m'aider ?

je débute avec le Vb

Merci
Configuration: Windows XP
Firefox 3.0.11
Office 2007

9 réponses

  1. Contributeur
    bonjour

    As-tu essayé les requêtes Web dans le menu données ?

    Il me semble que la fonction te fournit le résultat avec éventuellement une mise en forme à paramétrer.
    0
    1. merci pour l'astuce ca fonctionne.

      J'aimerai créer aussi une macro pour que exec ouvre les liens qui se trouves dans une collone, un par un ou tous enssemble...

      Comment faire ?
      la c'est choo : S
      0
      1. Contributeur
        bonjour

        un par un

        pas besoin de macro, il suffit de cliquer la lien ?

        tous enssemble

        Une macro dans ce genre, en adaptant ta colonne devrait fonctionner.
        Sub ouvre_liens()
        Dim sel As Hyperlink
        For Each sel In ActiveSheet.Columns(4).Hyperlinks
            sel.Follow NewWindow:=False, AddHistory:=True
        Next sel
        End Sub
        
        0
        1. hum quand je veux essayé cela ne fonctionne pas très bien.
          pas du tout meme.
          la page ou je vais chercher mon tableau.
          est sur une page avec un login et un pass...
          donc du coup je pense qu'il ne peut pas se connecté.

          Comment réglé le problème?

          Dans se tableau, on peut imaginé énormément de liens environ 2000.
          Il faudrai que excel aille sur le lien un par un pour éviter de faire laguer le pc ^^
          puis ensuite ferme la page au bout de 5 secondes par exemples.
          et après passe au lien d'en dessou.

          Merci de votre aide . :)
          0
          1. Contributeur
            bonjour

            est sur une page avec un login et un pass...

            Effectivement, cela ne fonctionne pas sauf si tu peux mettre tes paramètres dans le lien.

            puis ensuite ferme la page au bout de 5 secondes par exemples.

            Ce n'est pas du tout la fonction du lien !
            Si excel t'ouvres une page internet, il n'a pas la maitrise du navigateur qui ouvre la page : elle n'a ensuite rien à voir avec excel.

            aille sur le lien un par un

            Avec wait tu peux mettre les tempos que tu veux entre chaque ouverture.
            0
            1. Bonjour,

              voila j'ai réussi pour le login et le mot de pass j'ai juste rajouterdans l'url : ?login=etc
              en regardant le code source de la page.

              J'utiliserai la commande wait.

              Mais pour l'heure j'essaye d'arriver a avoir le tableau, avec les liens dedans. bien rangé
              Puis que cela les cliks un par un dans un onglet de firefox si c'est possible ?

              Vous êtes sur que ce n'est pas possible après de fermé la page internet ?
              par une commande ? j'ai cru voir sa sur un site mais je ne le rettrouve plus.

              j'arrive a avoir le Nom des liens du site mais il ne sont pas en hypertexte. :S
              'ai juste l'intitulé du lien.

              Comment corriger cela ?

              merci beaucoup
              0
              1. Contributeur
                bonjour

                un par un dans un onglet de firefox si c'est possible ?

                C'est ton navigateur par défaut qui est activé.

                mais il ne sont pas en hypertexte.

                C'est normal qu'ils restent en texte il faut les valider, par exemple
                Sub valide_lien() ' validation liens d'une colonne
                Dim lig As Long
                Dim col As Integer
                col = 4             ' numéro colonne à valider (D ?)
                For lig = 1 To Cells.SpecialCells(xlCellTypeLastCell).Row
                    If left(Cells(lig, col).Value,4) = "http" Then
                        ActiveSheet.Hyperlinks.Add Anchor:=Cells(lig, col), _
                            Address:=Cells(lig, col).Value, TextToDisplay:=Cells(lig, col).Value
                    End If
                Next lig
                End Sub
                0
                1. j'ai un petit problème..

                  j'ai un racourci ctrl T pour affiché les liens sur excel
                  quand je le fais sa le fais en boucle et a la suite des tableau de gauche a droite a l'infini.

                  alors ca bug...

                  Sinon je n'ai pas compris ton ptit bout de code.

                  Les liens Hypertext doivent de mettre dans la colonne B

                  C'est bien ce qui se produit.

                  Cependant j'ai par exemple Google au lieu de https://www.google.fr/?gws_rd=ssl
                  ou encore Trouvez tous avec Google au lieu de https://www.google.fr/?gws_rd=ssl

                  j'ai fait copié coller dans la macro en changeant 4 par 2.

                  Et comment fait t-on pour faire afficher les liens puis les validé puis les ouvres un par un ?
                  Il faut juste mettre les fonctions a la suite des autres ?

                  Merci beaucoup de ton aide.
                  0
                  1. Je t'ai copié tout le code ca sera plus simple.

                    Sub affiche_liens()
                    '
                    ' affiche_liens Macro
                    ' affiche liens
                    '
                    
                    
                        Application.Goto Reference:="affiche_liens"
                        
                        Range("A2").Select
                        With ActiveSheet.QueryTables.Add(Connection:= _
                            "URL;http://www.member.php?login=r&password=" _
                            , Destination:=Range("$A$2"))
                            .Name = "member.php?login=&password="
                            .FieldNames = True
                            .RowNumbers = False
                            .FillAdjacentFormulas = False
                            .PreserveFormatting = True
                            .RefreshOnFileOpen = False
                            .BackgroundQuery = True
                            .RefreshStyle = xlInsertDeleteCells
                            .SavePassword = False
                            .SaveData = True
                            .AdjustColumnWidth = False
                            .RefreshPeriod = 0
                            .WebSelectionType = xlSpecifiedTables
                            .WebFormatting = xlWebFormattingNone
                            .WebTables = "1"
                            .WebPreFormattedTextToColumns = True
                            .WebConsecutiveDelimitersAsOne = True
                            .WebSingleBlockTextImport = False
                            .WebDisableDateRecognition = False
                            .WebDisableRedirections = False '
                            .Refresh BackgroundQuery:=False
                        End With
                        
                        ActiveWorkbook.Save
                        Application.Run "essai.xlsm!affiche_liens"
                        Columns("A:A").Select
                        Selection.ColumnWidth = 20
                        Columns("A:A").Select
                        Selection.ColumnWidth = 4.86
                        Selection.ColumnWidth = 5.57
                        Range("B3").Select
                        ActiveWindow.ScrollColumn = 2
                        ActiveWindow.ScrollColumn = 3
                        ActiveWindow.ScrollColumn = 2
                        ActiveWindow.ScrollColumn = 1
                        ActiveWindow.ScrollColumn = 2
                        ActiveWindow.ScrollColumn = 3
                        ActiveWindow.ScrollColumn = 2
                        ActiveWindow.ScrollColumn = 1
                        Range("C3").Select
                        Selection.ClearContents
                        Range("B3").Select
                        ActiveWorkbook.Save
                    
                        Application.Run "essai.xlsm!affiche_liens"  ' ya pas des trucs en trop ici ?
                        ActiveWorkbook.Save                                  '
                        Application.Run "essai.xlsm!affiche_liens"      '
                    
                    End Sub
                    
                    
                    
                    
                    Sub valide_lien() ' validation liens d'une colonne
                    Dim lig As Long
                    Dim col As Integer
                    col = 2             ' numéro colonne à valider (D ?)
                    For lig = 1 To Cells.SpecialCells(xlCellTypeLastCell).Row
                        If Left(Cells(lig, col).Value, 4) = "http" Then      'faut t'il que je remplace le 4 par 2 ici aussi ?
                            ActiveSheet.Hyperlinks.Add Anchor:=Cells(lig, col), _
                                Address:=Cells(lig, col).Value, TextToDisplay:=Cells(lig, col).Value
                        End If
                    Next lig
                    End Sub
                    
                    
                    
                    
                    Sub ouvre_liens()
                    Dim sel As Hyperlink
                    For Each sel In ActiveSheet.Columns(2).Hyperlinks
                        sel.Follow NewWindow:=False, AddHistory:=True
                    Next sel
                    End Sub
                    0