Bonjour,
J'ai à nouveau besoin de votre aide. En effet, je recherche à importer plusieurs tableaux d'un site sur excel 2007. Pour le moment j'arrive à importer un par un les tableaux, et je suis actuellement en train de créer plusieurs long macros pour tout importer.
Cependant, j'aurai voulu savoir s'il était possible d'importer plusieurs tableaux de différentes pages web en un coup (ou un peu +), à l'aide d'un macro ou autre. Le site contient environ 1600 pages de tableaux et les tableaux ont une cinquantaine de ligne et 5 colonnes. De plus je souhaiterai également savoir s'il était possible de présenter les données de l'importation de manière verticale, càd que chaque tableau va en dessous de l'autre automatiquement.
Merci d'avance pour votre aide.
Importer plusieurs tableaux web
Importer plusieurs tableaux web
Dernière édition par sam20lionel le 10 Mai 2010, 21:25, édité 3 fois.
- sam20lionel
- Utilisateur occasionnel
- Messages: 10
- Inscription: 13 Août 2009, 16:31
- Version Excel: 2007 FR
Salut le forum
Il faudrait voir la structure du site Web, l'emplacement des tableaux à récupérer.
Ensuite on pourra voir pour te batir une macro qui te feras l'importation dans Excel.
A te relire
Mytå
Il faudrait voir la structure du site Web, l'emplacement des tableaux à récupérer.
Ensuite on pourra voir pour te batir une macro qui te feras l'importation dans Excel.
A te relire
Mytå
.
.
.-

Usb512 - Membre fidèle
- Messages: 266
- Inscription: 15 Juin 2009, 01:06
- Localisation: Québec
- Version Excel: 2007 FR
- sam20lionel
- Utilisateur occasionnel
- Messages: 10
- Inscription: 13 Août 2009, 16:31
- Version Excel: 2007 FR
Bonjour à tous,
Essaie avec ce code (fait avec l'enregistreur de macro puis modifié) :
Fais attention c'est très long vu qu'il y a plus de 1600 pages!
J'ai fait en sorte que si on dépasse le nombre max de lignes d'une feuille on passe à la feuille suivante.
J'ai également mis un bout de code qui supprime les entêtes de colonnes.
Lance la macro à partir d'un classeur vierge, c'est plus sûr.
Ce code doit être optimisable par de plus aguerris que moi
Essaie avec ce code (fait avec l'enregistreur de macro puis modifié) :
- Code: Tout sélectionner
Sub rapatrie()
Dim i As Long
Dim finTableau As Long
Dim numFeuille As Byte
Application.ScreenUpdating = False
numFeuille = 1
For i = 150 To 83100 Step 50
finTableau = Range("A65536").End(xlUp).Row
If finTableau + 50 < 65536 Then
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;http://www.slayersonline.net/communaute/player.php?offset=" & i, _
Destination:=Range("A" & finTableau))
.Name = "player.php?offset=" & i
'.RowNumbers = False
'.FillAdjacentFormulas = False
'.PreserveFormatting = True
'.RefreshOnFileOpen = False
'.BackgroundQuery = True
.RefreshStyle = xlOverwriteCells
'.SavePassword = False
'.SaveData = True
'.AdjustColumnWidth = True
'.RefreshPeriod = 0
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingNone
.WebTables = "2"
'.WebPreFormattedTextToColumns = True
'.WebConsecutiveDelimitersAsOne = True
'.WebSingleBlockTextImport = false
'.WebDisableDateRecognition = False
'.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
Else
numFeuille = numFeuille + 1
Sheets(numFeuille).Activate
End If
Next i
For numFeuille = 1 To Sheets.Count
With Sheets(numFeuille)
For i = .Cells(65536, 1).End(xlUp).Row To 1 Step -1
If .Cells(i, 1) = "#" Then .Rows(i).Delete
Next i
End With
Next numFeuille
End Sub
Fais attention c'est très long vu qu'il y a plus de 1600 pages!
J'ai fait en sorte que si on dépasse le nombre max de lignes d'une feuille on passe à la feuille suivante.
J'ai également mis un bout de code qui supprime les entêtes de colonnes.
Lance la macro à partir d'un classeur vierge, c'est plus sûr.
Ce code doit être optimisable par de plus aguerris que moi
vba-new
- vba-new
- Membre impliqué
- Messages: 2586
- Inscription: 13 Mai 2009, 10:27
- Version Excel: 2010 FR
Enfin le chargement est fini.
C'est presque parfait, merci. Le petit soucis est que, la 1ere page et la 2e page ne sont pas prises en compte. Le classement commence donc à partir de la troisième page (soit 151).
Auriez vous une solution pour y remédier?
Et, si je veux utiliser cette macro, dans un second temps, en la modifiant, avec d'autres tableaux du même site, quels sont les parties dans le code à modifier? (Juste l'url et "For i"?) Les tableaux sont les mêmes mais les chiffres sont différents.
Merci.
C'est presque parfait, merci. Le petit soucis est que, la 1ere page et la 2e page ne sont pas prises en compte. Le classement commence donc à partir de la troisième page (soit 151).
Auriez vous une solution pour y remédier?
Et, si je veux utiliser cette macro, dans un second temps, en la modifiant, avec d'autres tableaux du même site, quels sont les parties dans le code à modifier? (Juste l'url et "For i"?) Les tableaux sont les mêmes mais les chiffres sont différents.
Merci.
- sam20lionel
- Utilisateur occasionnel
- Messages: 10
- Inscription: 13 Août 2009, 16:31
- Version Excel: 2007 FR
Ah effectivement!
Pour commencer de la 1ere page, t'as juste à remplacer :
Pour utiliser le tableau avec d'autres sites ça dépend de l'URL.
S'il y a une partie de l'URL qui est fixe et une partie qui s'incrémente (comme dans le premier cas) alors oui tu dois changer l'URL et le for i.
Enlève également le
Quant à la partie :
elle permet de supprimer les entêtes (efface les lignes contenant "#").
Pour commencer de la 1ere page, t'as juste à remplacer :
- Code: Tout sélectionner
For i = 150 To 83100 Step 50
- Code: Tout sélectionner
For i = 0 To 83100 Step 50
Pour utiliser le tableau avec d'autres sites ça dépend de l'URL.
S'il y a une partie de l'URL qui est fixe et une partie qui s'incrémente (comme dans le premier cas) alors oui tu dois changer l'URL et le for i.
Enlève également le
- Code: Tout sélectionner
.Name = "player.php?offset=" & i
Quant à la partie :
- Code: Tout sélectionner
For numFeuille = 1 To Sheets.Count
With Sheets(numFeuille)
For i = .Cells(65536, 1).End(xlUp).Row To 1 Step -1
If .Cells(i, 1) = "#" Then .Rows(i).Delete
Next i
End With
Next numFeuille
elle permet de supprimer les entêtes (efface les lignes contenant "#").
vba-new
- vba-new
- Membre impliqué
- Messages: 2586
- Inscription: 13 Mai 2009, 10:27
- Version Excel: 2010 FR
- sam20lionel
- Utilisateur occasionnel
- Messages: 10
- Inscription: 13 Août 2009, 16:31
- Version Excel: 2007 FR
Re: Importer plusieurs tableaux web
Bonjour,
Cette macro a longtemps marché et pourtant depuis quelques mois il rencontre quelques difficultés. Seuls 2 ou 3 pages du site en question sont prises en compte. Voici le code en fonction d'une autre page, plus rapide à charger, qui auparavant marchait bien.
D'après excel 2007, le problème viendrait de ce code:
Pourtant celui marchait il y a quelques mois!
Auriez vous une solution?
Merci d'avance!
Cette macro a longtemps marché et pourtant depuis quelques mois il rencontre quelques difficultés. Seuls 2 ou 3 pages du site en question sont prises en compte. Voici le code en fonction d'une autre page, plus rapide à charger, qui auparavant marchait bien.
- Code: Tout sélectionner
Sub rapatrie()
Dim i As Long
Dim finTableau As Long
Dim numFeuille As Byte
Application.ScreenUpdating = False
numFeuille = 1
For i = 0 To 1850 Step 50
finTableau = Range("A65536").End(xlUp).Row
If finTableau + 50 < 65536 Then
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;http://www.slayersonline.net/communaute/listeguildegold.php?offset=" & i, _
Destination:=Range("A" & finTableau))
'.RowNumbers = False
'.FillAdjacentFormulas = False
'.PreserveFormatting = True
'.RefreshOnFileOpen = False
'.BackgroundQuery = True
.RefreshStyle = xlOverwriteCells
'.SavePassword = False
'.SaveData = True
'.AdjustColumnWidth = True
'.RefreshPeriod = 0
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingNone
.WebTables = "2"
'.WebPreFormattedTextToColumns = True
'.WebConsecutiveDelimitersAsOne = True
'.WebSingleBlockTextImport = false
'.WebDisableDateRecognition = False
'.WebDisableRedirections = False
.Refresh BackgroundQuery:= False
End With
Else
numFeuille = numFeuille + 1
Sheets(numFeuille).Activate
End If
Next i
For numFeuille = 1 To Sheets.Count
With Sheets(numFeuille)
For i = .Cells(65536, 1).End(xlUp).Row To 1 Step -1
If .Cells(i, 1) = "#" Then .Rows(i).Delete
Next i
End With
Next numFeuille
End Sub
D'après excel 2007, le problème viendrait de ce code:
- Code: Tout sélectionner
.Refresh BackgroundQuery:= False
Pourtant celui marchait il y a quelques mois!
Auriez vous une solution?
Merci d'avance!
- sam20lionel
- Utilisateur occasionnel
- Messages: 10
- Inscription: 13 Août 2009, 16:31
- Version Excel: 2007 FR
Re: Importer plusieurs tableaux web
Bonsoir sam20lionel, forum,
Je viens de faire un certain nombre de tests mais j'ai bien peur de ne pas savoir d'où pourrait provenir l'erreur ! Espérons que quelqu'un aura plus de succès !
Je viens de faire un certain nombre de tests mais j'ai bien peur de ne pas savoir d'où pourrait provenir l'erreur ! Espérons que quelqu'un aura plus de succès !
vba-new
- vba-new
- Membre impliqué
- Messages: 2586
- Inscription: 13 Mai 2009, 10:27
- Version Excel: 2010 FR
Re: Importer plusieurs tableaux web
Bonjour,
Merci d'avoir essayé. C'est quand même bizarre, cela marchait il y a quelques mois, et le site en question n'a subi aucune modification.
Merci d'avoir essayé. C'est quand même bizarre, cela marchait il y a quelques mois, et le site en question n'a subi aucune modification.
- sam20lionel
- Utilisateur occasionnel
- Messages: 10
- Inscription: 13 Août 2009, 16:31
- Version Excel: 2007 FR
12 messages
• Page 1 sur 2 • 1, 2
-
- Sujets similaires
- Réponses
- Vus
- Dernier message
-
- Importer des données du web
par OMD7590 » 03 Jan 2012, 16:43
- 0 Réponses
- 79 Vus
- Dernier message par OMD7590

03 Jan 2012, 16:43
- Importer des données du web
-
- Importer et trier des données du web
par zoolander » 06 Juil 2007, 00:30 - 1 Réponses
- 656 Vus
- Dernier message par souri84

06 Juil 2007, 22:58
- Importer et trier des données du web
-
- Publication web de tableaux croisés
par gauguin » 04 Déc 2008, 00:26 - 2 Réponses
- 415 Vus
- Dernier message par gauguin

07 Déc 2008, 23:44
- Publication web de tableaux croisés
-
- Importer sous Excel des données d'un site Web dynamique
par pagwai » 22 Juil 2008, 15:49 - 5 Réponses
- 881 Vus
- Dernier message par pagwai

23 Juil 2008, 09:14
- Importer sous Excel des données d'un site Web dynamique
-
- Importer le contenu (texte+image) d'une page web sous excel
par Walden » 14 Mars 2012, 09:31 - 0 Réponses
- 50 Vus
- Dernier message par Walden

14 Mars 2012, 09:31
- Importer le contenu (texte+image) d'une page web sous excel
-
- Importer plusieurs fichier avec la même largeur fixe
par elo_wiwi » 12 Sep 2008, 15:30 - 1 Réponses
- 590 Vus
- Dernier message par xlzalup

12 Oct 2008, 16:27
- Importer plusieurs fichier avec la même largeur fixe
Utilisateurs en ligne
Utilisateurs parcourant ce forum: Bing [Bot], doum_75, prasikall32, rico95 et 37 invités