PB Macro avec différents utilisateurs

N

Noeste

Guest
Bonjour à tous,

Je débute sur excel et j'ai un soucis ave une macro que j'ai réalisé grâce à l'enregistreur de macro, c'est une macro qui permet d'importer des données des plusieurs fichier html dans un classeur excel, et modifiant la présentation de ces données.

Sur mon pc ça fonctionne parfaitement, je l'ai testé en changeant mes fichier html sans probléme, mais ca n'a pas l'air de marcher chez d'autres utilisateurs.

La macro plante chez eux dès le début et je ne vois pourquoi ??
Est ce dû aux différentes versions d'excel ...mon manque de connaissance sur vb m'empêche d'avancer

Merci de m'éclairer

Noeste
 
N

Noeste

Guest
Bonjour,

pour le code vba, est ce que c'est cela ?

Sub Importation()


'
' Importation Macro
' Macro enregistrée par Noeste
'
' Touche de raccourci du clavier: Ctrl+a
'
With ActiveSheet.QueryTables.Add(Connection:= _
'FINDER;file:///C:/Documents%20and%20Settings/Stephane/Bureau/ANALYSE%20STATS%20FM%202005/NOESTATS/1%20Physique.html' _
, Destination:=Range('A1'))
.Name = '1%20Physique'
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlEntirePage
.WebFormatting = xlWebFormattingNone
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
Range('M1').Select
With ActiveSheet.QueryTables.Add(Connection:= _
'FINDER;file:///C:/Documents%20and%20Settings/Stephane/Bureau/ANALYSE%20STATS%20FM%202005/NOESTATS/2%20Mental.html' _
, Destination:=Range('M1'))
.Name = '2%20Mental_32'
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlEntirePage
.WebFormatting = xlWebFormattingNone
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
Range('Y1').Select
With ActiveSheet.QueryTables.Add(Connection:= _
'FINDER;file:///C:/Documents%20and%20Settings/Stephane/Bureau/ANALYSE%20STATS%20FM%202005/NOESTATS/3%20Technique.html' _
, Destination:=Range('Y1'))
.Name = '3%20Technique'
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlEntirePage
.WebFormatting = xlWebFormattingNone
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
Range('AL1').Select
With ActiveSheet.QueryTables.Add(Connection:= _
'FINDER;file:///C:/Documents%20and%20Settings/Stephane/Bureau/ANALYSE%20STATS%20FM%202005/NOESTATS/4%20Gardien.html' _
, Destination:=Range('AL1'))
.Name = '4%20Gardien'
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlEntirePage
.WebFormatting = xlWebFormattingNone
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
Range('AZ1').Select
With ActiveSheet.QueryTables.Add(Connection:= _
'FINDER;file:///C:/Documents%20and%20Settings/Stephane/Bureau/ANALYSE%20STATS%20FM%202005/NOESTATS/5%20D%E9fensif.html' _
, Destination:=Range('AZ1'))
.Name = '5%20D%E9fensif'
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlEntirePage
.WebFormatting = xlWebFormattingNone
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
Range('BM1').Select
With ActiveSheet.QueryTables.Add(Connection:= _
'FINDER;file:///C:/Documents%20and%20Settings/Stephane/Bureau/ANALYSE%20STATS%20FM%202005/NOESTATS/6%20Offensif.html' _
, Destination:=Range('BM1'))
.Name = '6%20Offensif'
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlEntirePage
.WebFormatting = xlWebFormattingNone
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
Range('BM:BO,AZ:BB').Select
Range('AZ1').Activate
Selection.Delete Shift:=xlToLeft
Columns('AL:AN').Select
Columns('Y:Y').ColumnWidth = 4.14
Range('AL:AN,Y:AA').Select
Range('Y1').Activate
Selection.Delete Shift:=xlToLeft
Range('A:B,M:O').Select
Range('M1').Activate
Selection.Delete Shift:=xlToLeft
Range('AO:AO,AP:AP').Select
Range('AP1').Activate
ActiveWindow.ScrollColumn = 26
ActiveWindow.ScrollColumn = 27
ActiveWindow.ScrollColumn = 28
Range('AO:AO,AP:AP,BG:BG,BB:BB,AY:AY,AV:AV,BE:BE,AW:AW,AU:AU,AR:AR,AQ:AQ,AT:AT' _
).Select
Range('AT1').Activate
Selection.Delete Shift:=xlToLeft
Cells.Select
Selection.Replace What:='-', Replacement:='0', LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Cells.Select
Selection.Copy
Sheets('Report Macro').Select
ActiveSheet.Paste
Range('A1').Select
Sheets('Macro Ctrl a').Select
Range('A26').Select
Application.CutCopyMode = False
Selection.ClearContents
Cells.Select
Selection.ClearContents
Selection.QueryTable.Delete
Range('A1').Select
Sheets('Macro Ctrl a').Select
Msg = ' N'oublies pas sauvegarder ton fichier sous un autre nom'
Title = ' Salut '
Style = vbOKOnly + vbInformation
Reponse = MsgBox(Msg, Style, Title)
End Sub
 

Sylvie

XLDnaute Accro
Bonjour Noeste,Stapple 1600,

ton code fait référence au chemin d'accès de ton fichier
Code:
\\'FINDER;file:///C:/Documents%20and%20Settings/Stephane/Bureau/ANALYSE%20STATS%20FM%202005/NOESTATS/
le chemin étant très certainement différent sur les pc des autres utilisateurs sans doute est ce cela qui bloque.

Essaie de modifier cette référence.

A+
Bon dimanche
 
N

Noeste

Guest
Merci Sylvie,

Effectivement tu dois avoir raison, donc si je résume en faisant modifier le code de référence du chemin d'accès de mon fichier par chaque utilisateur, la macro devrait fonctionner.

Peut etre que je me trompe

mais merci de ta réactivité.

noeste
 
N

Noeste

Guest
Sylvie,

A l'aide, en reprennant ma macro sur mon pc au travail, j'ai modifié le chemin d'accès de ma macro comme tu me la conseillé avec les références de mon profil, et la macro ne marche toujours pas.

Maintenant, le débug me surligne en jaune la ligne suivante :

.Refresh BackgroundQuery:=False

Je sais pas quoi faire ...
 

Sylvie

XLDnaute Accro
Bonjour Noeste,

mes compétences en VBA n'etant qu'à l'état embryonnaires, je ne vais pas pouvoir beaucoup t'aider. Cependant, j'ai lu différents codes sur le forum et je n'ai pas trouvé trace de la ligne
Code:
.BackgroundQuery = True
.

Il y a uniquement en fin de code la ligne
.Refresh BackgroundQuery:=False

Donc je serais tentée de t'inviter à neutraliser la première ligne
'.BackgroundQuery = True mais ce n'est qu'une intuition et rien de plus.
Reviens nous dire ce qui se passe; je suis persuadée que d'ici peu un XLDien compétent en VBA va passer sur ton post.

A+
 
N

Noeste

Guest
Sylvie,

J'avais déjà essayé cette méthode mais sans résultat non plus

Merci quand même

C'est rageant car cette macro fonctionne parfaitement chez moi et je ne peux pas la faire partager.

En espérant qu'une âme charitable pourra m'aider ....

Noeste
 

Creepy

XLDnaute Accro
Bonsoir à toutes et tous,

Le problème c'est que l'enregistreur de macro balance tout un tas de ligne completement inutile et qui rallonge le code pour rien.

En faites 80% des lignes ne servent à rine !!

Essaie de mettre un ' (Apostrophe) devant ta ligne qui te pose problème pour la transformer en commentaire.

Ca ne devrait pas impacter ta mise en page.

Si tu veux un exemple de macro plus propre et surtout plus clair, met en PJ un exemple de ton fichier et des fichiers HTML.

Je regarderais ce que je peux faire.

@+

Creepy
 
N

Noeste

Guest
Bonjour Creepy,

j'ai essayé de mettre un ' devant la ligne qui bloque ma macro, maintenant la macro à l'air de tourner mais sans importer les données des fichiers html donc plus de bug mais mon fichier reste vide.


Pour que ce soit plus clair par la suite je dois résumer mon projet, en prennant comme base de départ un célébre jeu de management de football (FM 2005 pour les connaisseurs), j'ai mis au point un classeur excel avec plusieurs feuilles de calcul permettant à un joueurs lambda d'analyser les statistiques des ses footballeurs quelque soit sa partie, donc les fichiers html seront toujours sur le même format mais les données à importer dans les feuilles de calcul grâce à la macro seront différentes.

J'ai donc réalisé cette macro avec l'enregistreur ( je suis débutant ....), la macro fonctionne parfaitement chez moi mais chez d'autre utilisateurs ca plante, je sais que le pb vient du chemin d'accés comme me la dit Sylvie, mais même en modifiant le code d'accés dans visual basic, ca ne marche toujours pas.

Sinon pour le côté technique je veux que la macro importe 6 fichier html sur une feuille excel selon un ordre bien précis comme cela :
1 Physique.html
2 Mental.html
3 Technique.html
4 Gardien.html
5 Défensif.html
6 Offensif.html

Puis que certaines colonnes soient supprimées, que les - soient remplacés par des 0 et qu'au final le résultat de cette feuille soit coupé puis collé sur un autre onglet du même classeur
 
N

Noeste

Guest
Creepy,

Je ne peux pas te joindre de fichier joint car trop volumineux mais tu trouveras ci-joint un lien pour télécharger tout le dossier, avec un guide pour montrer exactement ce que je veux faire des fichiers html,
j'ai joints les 6 fichiers html ainsi qu'un classeur excel avec les 3 derniers onglets qui sont concernés par la macro.


Ce lien n'existe plus

En espérant que tu pourras me trouver une solution.

Merci d'avance

@+
Noeste