Microsoft 365 Créer une macro pour ouvrir une liste d'URL

Sorn

XLDnaute Nouveau
Bonjour (soir) à tous,

Venant de faire ma petite présentation, je me permets une nouvelle discussion à propos d'une macro.

Je suis actuellement en train d'apprendre VBA (j'ai commencé aujourd'hui) mais je n'ai malheureusement pas encore les ressources pour faire ce que je cherche à faire.

J'ai une liste d'URL (disons une plage ou de la cellule A1 à A50) et j'aimerais créer une macro qui me permettrait de toutes les ouvrir dans un onglet pour chacune dans une fenêtre de mon navigateur.

J'ai trouvé pour une liste ou plage de liens hypertextes mais pas d'URL.

Merci beaucoup pour votre aide !
Au plaisir,
Arthur
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Sorn,
Un exemple en PJ. La macro ouvre tous les URL présents en colonne A :
VB:
Sub OuvrirURL()
N = Application.CountIf(Range("A:A"), "*")  ' Nombre d'URL présent
For i = 1 To N                              ' Ouvrir chaque URL
    Range("A" & i).Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
Next i
End Sub
 

Pièces jointes

  • Ouvrir URL.xlsm
    20.4 KB · Affichages: 15

Sorn

XLDnaute Nouveau
Hello Sylvainu,

Dans un premier temps, merci beaucoup pour ton retour !
J'ai testé ta macro mais avec un fichier comme j'ai en PJ, cela ne fonctionne pas :(

Merci beaucoup pour ton aide en tous cas et bien joué la petite image de macro ahah

Sorn
 

Pièces jointes

  • Exemple URLs.xlsx
    8.8 KB · Affichages: 5

Sorn

XLDnaute Nouveau
Certes mais elles s'ouvrent quand même quand je les copie colle. Si j'ai bien compris le principe d'une macro, il va falloir rajouter à mes "URLs" www. devant pour qu'elles puissent s'ouvrir c'est ça ?

Merci encore pour votre aide.
 

Sorn

XLDnaute Nouveau
Hello :)

Merci beaucoup pour votre aide, je vais essayer d'utiliser la macro mais surtout essayer de comprendre comment elle fonctionne.

Est-ce qu'il y a une documentation pour mieux appréhender le contenu de celle-ci sans vous demander d'expliquer chacune des lignes ? :D

Un immense merci en tous cas !

Arthur
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonsoir @Sorn , Sylvanu, le Forum

Voici ma macro avec commentaires :
VB:
Sub Build_URL()
Dim Ws As Worksheet                                                          ' Déclaration de variable Objet type WorkSheet (Feuille)
Dim N As Integer, i As Integer                                               ' déclaration variable de type nombre entier

Set Ws = ActiveSheet                                                         ' Paramétrage de la variable Objet "Ws" sur Feuille Active

N = Application.CountIf(Range("A:A"), "*")                                   ' trouve la dernière ligne non vide en "A"

For i = 1 To N                                                               ' Boucle sur chaque Cellule
    With Ws.Range("A" & i)                                                   ' Avec la Feuille (Active) Cellule "A" ET i de la boucle
            If Not Left(.Value, 8) = "https://" Then                         ' Si à les 8 caractères de Gauche ne sont pas déjà HTTPS://
            .Value = "https://" & .Value                                     ' La valeur de la Cellule scannée par la boucle conactène HTTP au début
             Ws.Hyperlinks.Add Anchor:=Ws.Range("A" & i), Address:=.Value    ' sur la Feuille j'ancre un Hyperlien sur la cellule et dont l'adresse est la valeur de la cellule
            End If                                                           ' fin de condition
    End With                                                                 ' fin de "avec"
Next i                                                                       ' fin de boucle

OuvrirURL                                                                    ' on lance la macro de Sylvanu

End Sub

La meilleure façon de commencer à apprendre c'est la touche de fonction "F1" quand on sélectionne un mot clef dans le code. Ensuite une fois l'aide de Microsoft ouverte, rien n'empêche d'utliser "googlouglou" avec les mots clefs pour trouver plus d'info et des exemples... Savoir lire l'anglais est un plus...

Bonne découverte du monde VBA
@+Thierry
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Comme je me souviens que le "With" m'avait un peu perturbé au tout début de mes premiers pas...

Voici la même chose sans ce With :
VB:
Sub Build_URL_Without_With()
Dim Ws As Worksheet
Dim N As Integer, i As Integer

Set Ws = ActiveSheet

N = Application.CountIf(Range("A:A"), "*")

For i = 1 To N
            If Not Left(Ws.Range("A" & i).Value, 8) = "https://" Then
                Ws.Range("A" & i).Value = "https://" & Ws.Range("A" & i).Value
                Ws.Hyperlinks.Add Anchor:=Ws.Range("A" & i), Address:=Ws.Range("A" & i).Value
            End If
Next i

OuvrirURL

End Sub

Non seulement c'est plus long à taper, mais en prime c'est moins optimisé car VBA doit retrouver à chaque fois l'objet, alors qu'avec With, il "sait" où on travaille...

@+Thierry
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 105
Messages
2 085 350
Membres
102 870
dernier inscrit
Armisa