tester l'existence d'une "référence"

  • 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 !

C

celegorm

Guest
bonsoir à tous,
ma première journée avec VBA aura été mouvementée.
là j'essaye de tester l'existence d'un groupe de valeurs.
le code Application.Goto Reference:="test" me pose problème car cette référence "test" n'existe pas forcément. Et lorsqu'elle existe, je veux la supprimer.
Je n'arrive pas à trouver comment tester cette "référence".
J'ai mis le bloc problématique en commentaire dans le code.
le "If (Reference.Name = "test") " ne fonctionne évidemment pas... et je ne trouve pas comment récupérer cette valeur.
D'avance merci de votre aide

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim strSearch As String
    strSearch = Range("A2").Value
    If Target.Address = "$A$2" Then

If (Left(strSearch, 4) = "http") Then
'If (Reference.Name = "test") Then
'MsgBox "la référence est inconnue et va être créée"
'Else
'    Application.Goto Reference:="test"
'    Selection.QueryTable.Delete
'    Selection.ClearContents
'  End If
    With ActiveSheet.QueryTables.Add(Connection:= _
        "URL;" & strSearch & "", _
        Destination:=Range("$D$2"))
        .Name = "test"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlOverwriteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 60
        .WebSelectionType = xlEntirePage
        .WebFormatting = xlWebFormattingNone
        .WebPreFormattedTextToColumns = True
        .WebConsecutiveDelimitersAsOne = True
        .WebSingleBlockTextImport = False
        .WebDisableDateRecognition = False
        .WebDisableRedirections = False
        .Refresh BackgroundQuery:=False
    End With

End If
End If
End Sub
 
Re : tester l'existence d'une "référence"

je vais être plus précis : lorsqu'on crée une querytable, elle prend un nom. je voudrais effacer la précédente querytable. Mais avant de l'effacer, il faut que je teste son existence (j'utilise toujours le même nom "test"). Comment faire pour récupérer ces nom de querytable ?
 
Re : tester l'existence d'une "référence"

je teste, merci beaucoup en tout cas 🙂
résultat: error 9
le "Set essai = ActiveSheet.QueryTables("Test")"
donne une erreur "l'indice n'appartient pas à la sélection"
 
Dernière modification par un modérateur:
Re : tester l'existence d'une "référence"

Bonsoir celegorm, wilfried,

Si j'ai bien compris, pour supprimer le nom "test" du classeur :

Code:
On Error Resume Next
ActiveWorkbook.Names("test").Delete
On Error GoTo 0 'facultatif

A+
 
Re : tester l'existence d'une "référence"

alors effectivement ça me supprime l'occurence test mais à ma grande surprise, le script crée un test_1... puis un test_2 etc. même si "test" a disparu. Du coup je me retrouve rapidement avec des dizaines de names....
o_0
edit: apparemment c'est un bug... si quelqu'un a trouvé le moyen de le contourner...
 
Dernière modification par un modérateur:
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
Microsoft 365 VBA sur outlook
Réponses
14
Affichages
1 K
B
  • Question Question
Réponses
2
Affichages
1 K
brice2020
B
Retour