Ajouter une colonne supplémentaire lors d'un import web
Résolu/Fermé
Goth!er
Messages postés
15
Date d'inscription
jeudi 10 novembre 2016
Statut
Membre
Dernière intervention
25 avril 2018
-
Modifié par Goth!er le 11/11/2016 à 14:52
yg_be Messages postés 23323 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 12 novembre 2024 - 11 nov. 2016 à 19:17
yg_be Messages postés 23323 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 12 novembre 2024 - 11 nov. 2016 à 19:17
A voir également:
- Activesheet.querytables.add
- Déplacer une colonne excel - Guide
- Web office - Guide
- Ajouter un profil netflix payant - Accueil - Guide streaming
- Formule somme excel colonne - Guide
- Traduire une page web - Guide
5 réponses
yg_be
Messages postés
23323
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
12 novembre 2024
Ambassadeur
1 552
11 nov. 2016 à 15:08
11 nov. 2016 à 15:08
Je suis impatient de voir ton code, et de le compléter.
yg_be
Messages postés
23323
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
12 novembre 2024
Ambassadeur
1 552
11 nov. 2016 à 17:13
11 nov. 2016 à 17:13
Proposition :
Je n'ai pas changé où il importait les données, je ne sais pas où tu souhaites que cela aille. Si tu veux le changer, c'est déterminé par :
Si tu changes cela, attention à changer aussi la logique de stockage de la source en colonne Z :
Option Explicit Sub test1() Sheets("Urls").Select ActiveCell.Select Dim I As Long, A As String Dim B As String Dim lrc As Long Dim newlrc As Long Dim nligne As Long ' declaring variables With ActiveSheet I = 2 Do A = .Cells(I, 1).Value B = .Cells(I, 2).Value 'source If A <> "" Then lrc = .Cells(Rows.Count, "A").End(xlUp).Row 'last row in C column With ActiveSheet.QueryTables.Add(Connection:= _ "URL;" & A, Destination:=Cells(lrc + 1, "A")) .Name = I .FieldNames = True .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .BackgroundQuery = True .RefreshStyle = xlInsertEntireRows .SavePassword = False .SaveData = True .AdjustColumnWidth = True .RefreshPeriod = 0 .WebSelectionType = xlAllTables .WebFormatting = xlWebFormattingNone '.WebTables = "1,2" .WebPreFormattedTextToColumns = True .WebConsecutiveDelimitersAsOne = True .WebSingleBlockTextImport = False .WebDisableDateRecognition = False .WebDisableRedirections = False .Refresh BackgroundQuery:=False End With newlrc = .Cells(Rows.Count, "A").End(xlUp).Row ' new last row For nligne = lrc + 1 To newlrc .Cells(nligne, 26) = B Next End If I = I + 1 Loop Until A = "" End With Beep Sheets("Checking").Select End Sub
Je n'ai pas changé où il importait les données, je ne sais pas où tu souhaites que cela aille. Si tu veux le changer, c'est déterminé par :
Destination:=Cells(lrc + 1, "A")
Si tu changes cela, attention à changer aussi la logique de stockage de la source en colonne Z :
For nligne = lrc + 1 To newlrc .Cells(nligne, 26) = B Next
yg_be
Messages postés
23323
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
12 novembre 2024
Ambassadeur
1 552
11 nov. 2016 à 17:28
11 nov. 2016 à 17:28
Tout vers "Sheet2" :
Option Explicit Sub test1() Sheets("Urls").Select ActiveCell.Select Dim I As Long, A As String Dim B As String Dim lrc As Long Dim newlrc As Long Dim nligne As Long ' declaring variables With ActiveSheet I = 2 Do A = .Cells(I, 1).Value B = .Cells(I, 2).Value 'source If A <> "" Then lrc = Sheets("Sheet2").Cells(Rows.Count, "A").End(xlUp).Row 'last row in C column With Sheets("Sheet2").QueryTables.Add(Connection:= _ "URL;" & A, Destination:=Sheets("Sheet2").Cells(lrc + 1, "A")) .Name = I .FieldNames = True .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .BackgroundQuery = True .RefreshStyle = xlInsertEntireRows .SavePassword = False .SaveData = True .AdjustColumnWidth = True .RefreshPeriod = 0 .WebSelectionType = xlAllTables .WebFormatting = xlWebFormattingNone '.WebTables = "1,2" .WebPreFormattedTextToColumns = True .WebConsecutiveDelimitersAsOne = True .WebSingleBlockTextImport = False .WebDisableDateRecognition = False .WebDisableRedirections = False .Refresh BackgroundQuery:=False End With newlrc = Sheets("Sheet2").Cells(Rows.Count, "A").End(xlUp).Row ' new last row For nligne = lrc + 1 To newlrc Sheets("Sheet2").Cells(nligne, 26) = B Next End If I = I + 1 Loop Until A = "" End With Beep Sheets("Checking").Select End Sub
yg_be
Messages postés
23323
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
12 novembre 2024
1 552
11 nov. 2016 à 18:24
11 nov. 2016 à 18:24
Pas d'idée. Et si tu changes l'ordre des urls? C'est peut-être la première qui est spéciale?
Je peux tester si tu m'envoies quelques exemples d'urls : ce que j'essaie donne un peu n'importe quoi.
(vois ci-dessous une version meilleure, mais rien à voir avec ton dernier soucis)
Je peux tester si tu m'envoies quelques exemples d'urls : ce que j'essaie donne un peu n'importe quoi.
(vois ci-dessous une version meilleure, mais rien à voir avec ton dernier soucis)
yg_be
Messages postés
23323
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
12 novembre 2024
Ambassadeur
1 552
11 nov. 2016 à 18:07
11 nov. 2016 à 18:07
Mon dernier mot :
Option Explicit Sub test1() Dim I As Long, A As String Dim B As String Dim lrc As Long Dim newlrc As Long Dim nligne As Long Dim fsource As Worksheet, fdest As Worksheet Dim qt As QueryTable Set fsource = Sheets("Urls") Set fdest = Sheets("Sheet2") For Each qt In fdest.QueryTables 'nettoyage des anciens "QueryTables.Add" qt.Delete Next I = 2 Do A = fsource.Cells(I, 1).Value B = fsource.Cells(I, 2).Value 'source If A <> "" Then lrc = fdest.Cells(Rows.Count, "A").End(xlUp).Row 'last row in C column With fdest.QueryTables.Add(Connection:= _ "URL;" & A, Destination:=fdest.Cells(lrc + 1, "A")) .Name = I .FieldNames = True .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .BackgroundQuery = True .RefreshStyle = xlInsertEntireRows .SavePassword = False .SaveData = True .AdjustColumnWidth = True .RefreshPeriod = 0 .WebSelectionType = xlAllTables .WebFormatting = xlWebFormattingNone '.WebTables = "1,2" .WebPreFormattedTextToColumns = True .WebConsecutiveDelimitersAsOne = True .WebSingleBlockTextImport = False .WebDisableDateRecognition = False .WebDisableRedirections = False .Refresh BackgroundQuery:=False End With newlrc = fdest.Cells(Rows.Count, "A").End(xlUp).Row ' new last row For nligne = lrc + 1 To newlrc fdest.Cells(nligne, 26) = B Next End If I = I + 1 Loop Until A = "" Beep 'Sheets("Checking").Select End Sub
Re,
Idem , le premier import est décalé ...
Je teste tout simplement avec :
A2 :https://forums.commentcamarche.net/forum/bureautique-25 B2:bureautique
A3: https://forums.commentcamarche.net/forum/excel-145 B3 :Excel
En sheet2 , le 1er import débute en colonne D , le suivant en colonne A ...
Idem , le premier import est décalé ...
Je teste tout simplement avec :
A2 :https://forums.commentcamarche.net/forum/bureautique-25 B2:bureautique
A3: https://forums.commentcamarche.net/forum/excel-145 B3 :Excel
En sheet2 , le 1er import débute en colonne D , le suivant en colonne A ...
yg_be
Messages postés
23323
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
12 novembre 2024
1 552
11 nov. 2016 à 18:47
11 nov. 2016 à 18:47
En fait, c'est plus compliqué et plus embêtant que cela : les premiers urls se mettent bien, et, parfois, un url suivant insère trois colonnes, donc décale les premiers (inclus la colonne Z des premiers).
Je suspecte que c'est lié à la logique qui met le texte en colonnes.
Ce comportement disparaît en changeant :
Tu avais besoin de mettre le texte en colonnes? Maintenant tout le texte est en A.
Je suspecte que c'est lié à la logique qui met le texte en colonnes.
Ce comportement disparaît en changeant :
.WebPreFormattedTextToColumns = False
Tu avais besoin de mettre le texte en colonnes? Maintenant tout le texte est en A.
mmh ... j'ai effectivement besoin des colonnes.
En réalité, j'importe des données clients via ce procédé , ce qui constitue la base de données.
Ca fonctionnais nickel, excepté 1 chose , je ne parvenais pas identifier de quel magasin était le client... la donnée de magasin n’étant pas dans l'import.
Ton complément fonctionne parfaitement et rempli ce manquement !
Reste juste ce petit décalage énervant , la recherche client étant basée sur un VLOOKUP par numéro de client dans la colonne A ... les clients de l'import décalés ne seront pas détecté et les infos non remontées..
En réalité, j'importe des données clients via ce procédé , ce qui constitue la base de données.
Ca fonctionnais nickel, excepté 1 chose , je ne parvenais pas identifier de quel magasin était le client... la donnée de magasin n’étant pas dans l'import.
Ton complément fonctionne parfaitement et rempli ce manquement !
Reste juste ce petit décalage énervant , la recherche client étant basée sur un VLOOKUP par numéro de client dans la colonne A ... les clients de l'import décalés ne seront pas détecté et les infos non remontées..
yg_be
Messages postés
23323
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
12 novembre 2024
1 552
11 nov. 2016 à 19:03
11 nov. 2016 à 19:03
Et tu as également ce décalage avec tes "vrais" urls? C'est peut-être lié au contenu des réponses.
Ca fonctionne !!!
l'erreur était dans le code ...
WebTables est en commentaire !!!
et ca a l'air de fonctionner !!!!
Mille Mercis !!!
Pour un premier post sur un forum, l’expérience fut extra et cela grâce à toi !!
l'erreur était dans le code ...
.WebFormatting = xlWebFormattingNone
'.WebTables = "1,2"
.WebPreFormattedTextToColumns = Tru
WebTables est en commentaire !!!
.WebFormatting = xlWebFormattingNone
.WebTables = "1,2"
.WebPreFormattedTextToColumns = True
et ca a l'air de fonctionner !!!!
Mille Mercis !!!
Pour un premier post sur un forum, l’expérience fut extra et cela grâce à toi !!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Utilisateur anonyme
11 nov. 2016 à 15:14
11 nov. 2016 à 15:14
Bonjour Goth!er, tu es un fan d'Ach!lle Talon ? Greg 😉
11 nov. 2016 à 16:36
Merci pour ton intérêt
Fonctionne tres bien si ce n'est qu'il importe les données sous la liste d' URLS... si tu sais comment modifier cela aussi ce serait nickel :-)