[VBA] Macro generer page web

leponge85

XLDnaute Nouveau
Boujour tout le monde,
Voila je doit réaliser une macro permettant de generer des pages web a partir de mon fichier Excel. Ce fichier Excel comporte beauceaup de feuilles ains que beaucoup de lien hypertextes.
J'ai commencer un peu de code cependant cela ne marche pas je n'arrive pas a récuperer les liens entre les pages web comme sur l'excel.

Voila le code :

Code:
Sub HTML()
Dim i As Byte, Chemin As String, oLink As Hyperlink
Dim Cel As Range, Lien As String, LienFeuille As String
 
Chemin = ActiveWorkbook.Path & "C:\test"
 
For i = 1 To Sheets.Count
    For Each Cel In Sheets(i).Range("A1:Q2000")
        If Cel.Hyperlinks.Count > 0 Then
            Lien = Cel.Hyperlinks(1).SubAddress
            If Lien <> "" Then
                Cel.Hyperlinks.Delete
                LienFeuille = Split(Lien, "!")(0)
                Set oLink = Sheets(i).Hyperlinks.Add(Cel, LienFeuille & ".htm")
            End If
        End If
    Next
 
ActiveWorkbook.PublishObjects.Add(SourceType:=xlSourceSheet, Filename:=Chemin & Sheets(i).Name & ".htm", Sheet:=Sheets(i).Name).Publish
Next
 
End Sub

Pouvez vous m'aider svp a le corriger et a le rendre plus performant puisque une fois lancer tous les liens hypertextes du fichiers XLS sont supprimer.
Merci d'avance pour votre aide.
 
G

Guest

Guest
Re : [VBA] Macro generer page web

Bonjour Leponge,

Pour ce qui est de la suppression des liens du fichier excel, c'est cette ligne qu'il faut enlever

Cel.Hyperlinks.Delete

Quant à
je n'arrive pas a récuperer les liens entre les pages web comme sur l'excel.

Je necomprends pas bien ce que tu veux dire...

P.S : un petit classeur exemple dépouillé serait le bienvenu

A bientôt
 

leponge85

XLDnaute Nouveau
Re : [VBA] Macro generer page web

Tu as une adresse email et je te l'envoye parce que ces un fichier assez lourd 10 MO environ.

Tu vois dans le fichier excel j'ai beaucoup de liens hypertextes qui relie les differentes feuille et quand je lance cette macro se ne marche pas.
Merci a toi
 
G

Guest

Guest
Re : [VBA] Macro generer page web

Re bonjour,

Essaie d'élaguer ton fichier pour en faire un fichier exemple < à 50 ko qui sera du plus profitable à tout le monde.

Essaie de recréer la situation de façon à ce que l'on puisse t'aider ici.

Merci de tes efforts.

A bientôt
 
G

Guest

Guest
Re : [VBA] Macro generer page web

re:

en examinant de plus près je crois avoir trouvé quelque erreurs dans la macro (erreurs corrigées en rouges) si toutefois j'ai bien compris ce que tu voulais faire avec tes liens.

Code:
Sub HTML()
Dim i As Byte, Chemin As String, oLink As Hyperlink
Dim Cel As Range, Lien As String, LienFeuille As String
 
Chemin = [COLOR=red]This[/COLOR]Workbook.Path & [COLOR=red]"\tests\"
[/COLOR] 
For i = 1 To Sheets.Count
    For Each Cel In Sheets(i).Range("A1:Q2000")
        If Cel.Hyperlinks.Count > 0 Then
            Lien = Cel.Hyperlinks(1).SubAddress
            If Lien <> "" Then
                Cel.Hyperlinks.Delete
                LienFeuille = Split(Lien, "!")(0)
                Set oLink = Sheets(i).Hyperlinks.Add(Cel, [COLOR=red]Chemin & LienFeuille[/COLOR] & ".htm")
            End If
        End If
    Next
 
ActiveWorkbook.PublishObjects.Add(SourceType:=xlSourceSheet, Filename:=[COLOR=red]Chemin &[/COLOR] Sheets(i).Name & ".htm", Sheet:=Sheets(i).Name).Publish
Next
 
End Sub

Dis nous si cela correspond à ton besoin.

A bientôt
 

leponge85

XLDnaute Nouveau
Re : [VBA] Macro generer page web

Re
sa ne fonctionne pas,
sa me fait une erreur: Erreur définie par l'objet ou par l'application
sur cette ligne la:

Code:
ActiveWorkbook.PublishObjects.Add(SourceType:=xlSourceSheet, Filename:=Chemin & Sheets(i).Name & ".htm", Sheet:=Sheets(i).Name).Publish
 
G

Guest

Guest
Re : [VBA] Macro generer page web

Hello,

bon ben il faut que tu affiche les variables locales lorsque ton programme s'arrête (menu affichage de l'IDE).

tu peux également les vérifier en incluant des lignes comme:
Debug.Print Chemin & Sheets(i).Name & ".htm"

Cela affichera la valeur dans la fenêtre execution

Car je pense que ce sont tes chemins qui sont mal construit et tes liens vers les pages html. Donc il faut les vérifier en cours d'exécution par un méthode ou une aute. Chez moi j'ai réussit à faire fonctionner la macro en faisant un test sur une cellule et un seul lien.

Si tu ne trouve toujours pas, il faudra te résigner à nous produire un fichier exemple de ton problème.

A bientôt
 

Discussions similaires

Statistiques des forums

Discussions
312 175
Messages
2 085 953
Membres
103 059
dernier inscrit
gib17