Bug FilterAll => JSONArray
Hey salut à tous,
Je viens à vous aujourd'hui car je suis confronté à un problème que je n'arrive pas à résoudre après des dizaines de tentatives différentes.
J'ai une base de données avec des fonds d'investissements qui peuvent être disponible ou non sur certains contrats.
J'ai une feuille d'interface utilisateur "Menu Principal" où le conseiller peut sélectionner le contrat sur lequel il veut voir les fonds dispo sur la feuille "Base de données" pour créer son allocation.
Voici le code écrit à cette fin :
Sub FilterFundsByContract()
Dim wsMenu As Worksheet
Dim wsData As Worksheet
Dim contractColumn As Long
Dim lastRow As Long
Dim i As Long
' Définir les feuilles de calcul
Set wsMenu = ThisWorkbook.Sheets("MENU PRINCIPAL")
Set wsData = ThisWorkbook.Sheets("Base de données")
' Obtenir le contrat sélectionné par l'utilisateur
Dim selectedContract As String
selectedContract = wsMenu.Range("F15").Value ' Liste déroulante pour le contrat
' Déterminer la colonne correspondant au contrat sélectionné
Select Case selectedContract
Case "Generali France"
contractColumn = 9 ' Utiliser un numéro de colonne fixe pour tester
Case "Pertinence Retraite"
contractColumn = 10
Case "Generali Lux"
contractColumn = 11
Case "Cardif Elite"
contractColumn = 12
Case Else
MsgBox "Veuillez sélectionner un contrat valide."
Exit Sub
End Select
' Trouver la dernière ligne avec des données dans la feuille "Base de données"
lastRow = wsData.Cells(wsData.Rows.Count, "A").End(xlUp).Row
' Réinitialiser la colonne "Inclure ?"
For i = 2 To lastRow
wsData.Cells(i, 8).Value = False ' Colonne H pour "Inclure ?"
Next i
' Appliquer le filtre pour n'afficher que les fonds disponibles sur le contrat sélectionné
Range("A1:L" & lastRow).AutoFilter Field:=contractColumn, Criteria1:=True
' Informer l'utilisateur que l'opération est terminée
MsgBox "Les fonds ont été filtrés pour le contrat sélectionné : " & selectedContract
End SubOr à l'exécution, voici l'erreur : Encountered error at line 439 : A JSONArray text must start with '[' at character 0 of
Je ne sais pas ce qu'est du JSON, encore moins "Array" et je ne vois pas ce que ça vient faire là ...
Pouvez-vous m'aider s'il vous plait ?
Merci d'avance :)
Bonjour Barxis,
Sans fichier et sans voir les données, il est très, voir impossible, de répondre. Avec l'extrait de code ci-dessous, on ne peur pas savoir où se situe la ligne 439 ni même si elle est dans cette portion de code ... Lors du plantage, si tu as l'option "Débogage", cliques dessus et à minima indiques la ligne qui est concernée.
Est-il possible d'avoir un fichier de test avec des données anonymisées (ou non confidentielles) et sur lequel tu reproduis l'erreur ?
Sinon :
- si tu modifies la ligne comme suit (ajout de wsdata.) cela plante pareil ?
wsData.Range("A1:L" & lastRow).AutoFilter Field:=contractColumn, Criteria1:=True - Si ça plante toujours, comment sont chargées les données des colonnes des contrats ?
Cdlt,
Cylfo
Bonjour Cylfo et merci pour votre retour rapide.
La ligne 439 est la ligne : Range("A1:L" & lastRow).AutoFilter Field:=contractColumn, Criteria1:=True
Une fois que l'user a sélectionné son contrat sur cette feuille :
J'aimerais que n'apparaissent que les lignes où les fonds sont disponibles pour le contrat choisi (coché) sur cette feuille (les données sont chargées manuellement) :
Or, quand j'exécute le code, malgré l'ajout de wsData, cette erreur persiste :
J'ai fait une demande afin de savoir si je peux partager le fichier anonymisé !
Merci beaucoup
barxis