IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Membre actif
    Inscrit en
    août 2009
    Messages
    767
    Détails du profil
    Informations forums :
    Inscription : août 2009
    Messages : 767
    Points : 285
    Points
    285
    Par défaut Problème de nom dans un tableau structuré Règle des caractères autorisés dans les noms ?
    Bonjour,

    Je galère depuis un bout de temps sur la remontée des données d'un tableau structuré dans un USF.
    Certains champs marchent et d'autres pas.

    J'ai fini par arriver à la conclusion qu'il y avait un problème avec le nom du champ, par contre je n'arrive pas à fixer la logique.
    Même en copiant le nom du champ dans le code ça ne fonctionne pas.

    existe-t-il une règle fiable ?
    Car sans pouvoir le prouver je suis quasiment sûr que cela avait fonctionné dans un premier temps

    Voici le code: Comme souvent Excel n'aime pas les espaces, j'ai ajouté un "_" dans le nom mais il semble que ce soit pire.

    J'ai recherché d'éventuels doublons, j'ai renomé mon tableau.
    Je suis repassé en mode normal puis retoruné en tableau.

    Ou alors c'est ma syntaxe dans le with qui n'est pas fiable et qui 'marchouile"

    Rappel je souhaite utiliser le nom du champ plutot que le N° de la colonne pour que cela continue à fonctionner en cas de déplacement ou d'ajout de colonnes.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    With ThisWorkbook.Worksheets("FNC")
    Me.TextBox1.Value = .ListObjects("Tab_FNC").ListColumns("IQF_Cause").DataBodyRange(Maligne)
    End With
    Merci
    Denis

  2. #2
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    novembre 2003
    Messages
    17 148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 17 148
    Points : 49 407
    Points
    49 407
    Billets dans le blog
    92
    Par défaut
    Salut.

    Ton code fonctionne chez moi... Tu n'aurais pas un espace qui traine à droite du nom de la colonne dans le tableau structuré?

    Nom : 2021-04-07_103635.png
Affichages : 33
Taille : 84,1 Ko



    Perso, j'utilise les références structurées plutôt que le listobject, car ça détache le code de l'emplacement du tableau structuré (je ne dis pas que c'est une meilleure pratique, c'est juste pour ouvrir sur d'autres solutions):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub UserForm_Initialize()
    Dim MaLigne As Long
     
    MaLigne = 2
    TextBox1.Value = Range("tab_fnc[iqf cause]")(MaLigne).Value
    End Sub

    Au passage, Me n'est pas nécessaire dans le module du userform, sauf si tu l'utilises pour récupérer la liste des contrôles après Me.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  3. #3
    Membre actif
    Inscrit en
    août 2009
    Messages
    767
    Détails du profil
    Informations forums :
    Inscription : août 2009
    Messages : 767
    Points : 285
    Points
    285
    Par défaut
    Merci Pierre pour la réponse.

    Désolé j'avais pas mis le post dans la bonne catégorie.

    Je viens de comprendre, losrqu'on attaque le tableau c'est le N° de ligne tu tableau qui commence à 0 et pas le N) de la ligne de la feuille !

    il faut donc retrancher 1à la variable maligne.

    Merci pour le test qui m'a forcé à tout reprendre, je voulais préparer un exemple et c'est là que je me suis rendu compte du pb.

    donc tu m'as mis sur la voie.

    merci encore
    les tableaux j'en use et j'en abuse !

    Denis

  4. #4
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    novembre 2003
    Messages
    17 148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 17 148
    Points : 49 407
    Points
    49 407
    Billets dans le blog
    92
    Par défaut
    En effet. Lorsque tu utilises DatabodyRange(MaLigne), MaLigne se rapporte à DataBodyrange, et pas à la feuille.

    Pour généraliser le propos, avec Range(x), on pointe vers la xième cellule du range, le coin supérieur gauche étant Range(1)...

    L'exemple suivant illustre bien cela:

    Nom : 2021-04-07_120612.png
Affichages : 17
Taille : 1,5 Ko


    Attention toutefois qu'ici, tu décales bien vers le bas parce que ton range est ici monocolonne (listcolumn.databodyrange), mais il faut noter qu'un (x) sur une plage de plusieurs colonnes peut amener des résultats étonnants...
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de joker dans les noms de REFERER
    Par saxrub dans le forum IGN API Géoportail
    Réponses: 5
    Dernier message: 01/08/2020, 08h57
  2. [Python 3.X] Problème d'espace dans les noms de fichier
    Par F6AAP dans le forum Programmation multimédia/Jeux
    Réponses: 2
    Dernier message: 26/07/2016, 13h11
  3. Problème de casse dans les noms d'utilisateurs
    Par cfillion dans le forum ASP.NET
    Réponses: 3
    Dernier message: 08/06/2010, 17h45
  4. Problème d'apostrophe dans les noms des tables
    Par anaranjado dans le forum Débuter
    Réponses: 2
    Dernier message: 11/03/2010, 18h16
  5. [VB.NET] [Débutant] Probléme de variable dans les requettes
    Par Silvia12 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 07/03/2005, 13h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo