bonjour à tous,
je tente de trouver une méthode pour comparer deux querytables en provenance d'un site web (pour voir si le site a changé).
Le nom du site web est paramétrable par l'utilisateur (mis dans strsearch)
je ne sais pas par quel bout prendre ce problème car :
la querytables se "répand" sur plusieurs lignes et colonne sans qu'il soit apparemment possible de tout mettre dans une cellule ou au moins une colonne voir dans un fichier...
De plus le nom de la zone créée par le ActiveSheet.QueryTables.Add s'incrémente (bug apparemment connu) sans qu'il soit possible de le fixer.( du coup je supprime l'ancien nom avant d'en créer une nouvelle)
je pourrais traiter cette zone cellule par cellule (mais je ne sais pas comment savoir quel sera le nom de la zone vu qu'elle change à chaque fois)... et en plus je ne sais pas comment connaitre l'étendue d'une zone.
je peux ptet envoyer tout ça dans un fichier... et le rouvrir sous forme d'une chaine de caractère mais je ne sais pas enregistrer une zone dans un fichier texte.
voici mon code:
D'avance merci de votre aide.
je tente de trouver une méthode pour comparer deux querytables en provenance d'un site web (pour voir si le site a changé).
Le nom du site web est paramétrable par l'utilisateur (mis dans strsearch)
je ne sais pas par quel bout prendre ce problème car :
la querytables se "répand" sur plusieurs lignes et colonne sans qu'il soit apparemment possible de tout mettre dans une cellule ou au moins une colonne voir dans un fichier...
De plus le nom de la zone créée par le ActiveSheet.QueryTables.Add s'incrémente (bug apparemment connu) sans qu'il soit possible de le fixer.( du coup je supprime l'ancien nom avant d'en créer une nouvelle)
je pourrais traiter cette zone cellule par cellule (mais je ne sais pas comment savoir quel sera le nom de la zone vu qu'elle change à chaque fois)... et en plus je ne sais pas comment connaitre l'étendue d'une zone.
je peux ptet envoyer tout ça dans un fichier... et le rouvrir sous forme d'une chaine de caractère mais je ne sais pas enregistrer une zone dans un fichier texte.
voici mon code:
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim strSearch As String
Dim QueryTable As Object
If (Range("A2").Value <> "") Then
strSearch = Range("A2").Value
'le script s'active lorsque la target est A2
If Target.Address = "$A$2" Then
Range("C2").Value = ""
'on vérifie la présence de http (a améliorer)
If (Left(strSearch, 4) = "http") Then
'supprime les anciennes zones
If (ActiveWorkbook.Names.Count > 0) Then
Dim i As Integer
Set nms = ActiveWorkbook.Names
For i = nms.Count To 1 Step -1
ActiveWorkbook.Names(i).Delete
Next
End If
'appel au site strsearch
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;" & strSearch & "", _
Destination:=Range("$D$2"))
.Name = "test"
.FieldNames = False
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = False
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlOverwriteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 1
.WebSelectionType = xlEntirePage
.WebFormatting = xlWebFormattingNone
.WebPreFormattedTextToColumns = False
.WebConsecutiveDelimitersAsOne = False
.WebSingleBlockTextImport = True
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
End If
End If
End If
End Sub