ActiveSheet.QueryTables.Add gestion des données

  • Initiateur de la discussion Initiateur de la discussion celegorm
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

celegorm

XLDnaute Nouveau
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:
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
D'avance merci de votre aide.
 
Re : ActiveSheet.QueryTables.Add gestion des données

Re Celegorm 🙂,
A partir du moment où tu supprimes l'ancienne connexion, je ne vois pas... L'utilisateur sélectionne un site, mais où as-tu en mémoire la première importation ? Pour faire une comparaison, il faudrait l'ancienne connexion dans une feuille et la nouvelle dans une autre. Affine un peu ton problème, que l'on puise t'aider (un petit fichier exemple ne serait pas un mal non plus...).
Bon courage 😎
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
479
Réponses
10
Affichages
281
Réponses
2
Affichages
153
Réponses
4
Affichages
177
Réponses
7
Affichages
163
Retour